Commit b825df3
Map view enabled settings fix (#7683)
[Jira ticket ](https://mapbox.atlassian.net/browse/MAPSAND-2223): Align
behaviour between `mapView.<plugin>.enabled = false` and
`mapView.<plugin>.updateSettings { enabled = false }`
### Fix: Camera listener not unsubscribed when disabling ScaleBar via
updateSettings
**Problem**
Calling `mapView.scalebar.updateSettings { enabled = false } ` didn't
unsubscribe the camera listener, causing unnecessary updates and
potential performance issues.
Root cause: `updateSettings()` bypassed the **enabled** property setter,
which contains the listener management logic in `ScaleBarPluginImpl.`
**Solution**
Updated the code generator template to route through the enabled
property setter:
```
override fun updateSettings(block: ScaleBarSettings.Builder.() -> Unit)
{
val newSettings = this.internalSettings.toBuilder().apply(block).build()
this.enabled = newSettings.enabled // ✅ Triggers listener management
this.internalSettings = newSettings
applySettings()
}
```
**Changes**
1. Template: Updated `config_abstract_class.kt.ejs` to call `this.enabled = newSettings.enabled` when enabled property exists
2. Generated code: Regenerated all plugin settings (ScaleBar, Compass, Logo, Attribution, LocationComponent)
3. Tests: Added 5 tests verifying listener subscription/cancellation behavior
cc @mapbox/maps-android
cc @mapbox/sdk-ci
GitOrigin-RevId: d155fc4b27df3b372c11ab97542f5a7491baacd41 parent 16a19b3 commit b825df3
File tree
8 files changed
+58
-7
lines changed- plugin-scalebar/src/test/java/com/mapbox/maps/plugin/scalebar
- sdk-base/src/main/java/com/mapbox/maps/plugin
- attribution/generated
- compass/generated
- gestures/generated
- locationcomponent/generated
- logo/generated
- scalebar/generated
8 files changed
+58
-7
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
| 9 | + | |
| 10 | + | |
9 | 11 | | |
10 | 12 | | |
11 | 13 | | |
12 | 14 | | |
13 | 15 | | |
14 | 16 | | |
| 17 | + | |
| 18 | + | |
15 | 19 | | |
16 | 20 | | |
17 | 21 | | |
| |||
56 | 60 | | |
57 | 61 | | |
58 | 62 | | |
59 | | - | |
60 | 63 | | |
61 | 64 | | |
62 | 65 | | |
| |||
Lines changed: 32 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
| 8 | + | |
8 | 9 | | |
9 | 10 | | |
10 | 11 | | |
| |||
40 | 41 | | |
41 | 42 | | |
42 | 43 | | |
| 44 | + | |
43 | 45 | | |
44 | 46 | | |
45 | 47 | | |
| |||
63 | 65 | | |
64 | 66 | | |
65 | 67 | | |
| 68 | + | |
66 | 69 | | |
67 | 70 | | |
68 | 71 | | |
| |||
85 | 88 | | |
86 | 89 | | |
87 | 90 | | |
| 91 | + | |
88 | 92 | | |
89 | 93 | | |
90 | 94 | | |
91 | 95 | | |
92 | 96 | | |
93 | 97 | | |
| 98 | + | |
94 | 99 | | |
95 | 100 | | |
96 | 101 | | |
| |||
113 | 118 | | |
114 | 119 | | |
115 | 120 | | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
116 | 148 | | |
Lines changed: 4 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 4 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 2 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 4 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 4 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 4 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
0 commit comments