Skip to content
This repository was archived by the owner on Aug 8, 2023. It is now read-only.

Commit 8175da0

Browse files
committed
[android] - move ZoomButtonController creation to view initalisation
1 parent c0efad5 commit 8175da0

File tree

2 files changed

+18
-14
lines changed

2 files changed

+18
-14
lines changed

platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java

+5-5
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,7 @@ private void initialise(@NonNull final Context context, @NonNull final MapboxMap
118118
myLocationView = (MyLocationView) view.findViewById(R.id.userLocationView);
119119
attrView = (ImageView) view.findViewById(R.id.attributionView);
120120
logoView = (ImageView) view.findViewById(R.id.logoView);
121+
mapZoomButtonController = new MapZoomButtonController(new ZoomButtonsController(this));
121122

122123
// add accessibility support
123124
setContentDescription(context.getString(R.string.mapbox_mapActionDescription));
@@ -166,7 +167,7 @@ private void initialiseMap() {
166167
mapKeyListener = new MapKeyListener(transform, trackingSettings, uiSettings);
167168

168169
MapZoomControllerListener zoomListener = new MapZoomControllerListener(mapGestureDetector, uiSettings, transform);
169-
mapZoomButtonController = new MapZoomButtonController(this, uiSettings, zoomListener);
170+
mapZoomButtonController.bind(uiSettings, zoomListener);
170171

171172
// inject widgets with MapboxMap
172173
compassView.setMapboxMap(mapboxMap);
@@ -542,9 +543,7 @@ public void onSurfaceTextureUpdated(SurfaceTexture surface) {
542543
@CallSuper
543544
protected void onDetachedFromWindow() {
544545
super.onDetachedFromWindow();
545-
if (mapZoomButtonController != null) {
546-
mapZoomButtonController.setVisible(false);
547-
}
546+
mapZoomButtonController.setVisible(false);
548547
}
549548

550549
// Called when view is hidden and shown
@@ -553,11 +552,12 @@ protected void onVisibilityChanged(@NonNull View changedView, int visibility) {
553552
if (isInEditMode()) {
554553
return;
555554
}
555+
556556
if (visibility == View.VISIBLE && nativeMapView == null) {
557557
initialiseDrawingSurface(mapboxMapOptions.getTextureMode());
558558
}
559559

560-
if (mapZoomButtonController != null && nativeMapView != null) {
560+
if (nativeMapView != null) {
561561
mapZoomButtonController.setVisible(visibility == View.VISIBLE);
562562
}
563563
}

platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapZoomButtonController.java

+13-9
Original file line numberDiff line numberDiff line change
@@ -12,21 +12,25 @@
1212
* Allows single touch only devices to zoom in and out.
1313
* </p>
1414
*/
15-
final class MapZoomButtonController extends ZoomButtonsController {
15+
final class MapZoomButtonController {
1616

1717
private UiSettings uiSettings;
18+
private ZoomButtonsController zoomButtonsController;
1819

19-
MapZoomButtonController(@NonNull View ownerView, @NonNull UiSettings uiSettings, @NonNull OnZoomListener listener) {
20-
super(ownerView);
20+
MapZoomButtonController(@NonNull ZoomButtonsController zoomButtonsController) {
21+
this.zoomButtonsController = zoomButtonsController;
22+
this.zoomButtonsController.setZoomSpeed(MapboxConstants.ANIMATION_DURATION);
23+
}
24+
25+
void bind(UiSettings uiSettings, ZoomButtonsController.OnZoomListener onZoomListener) {
2126
this.uiSettings = uiSettings;
22-
setZoomSpeed(MapboxConstants.ANIMATION_DURATION);
23-
setOnZoomListener(listener);
27+
zoomButtonsController.setOnZoomListener(onZoomListener);
2428
}
2529

26-
@Override
27-
public void setVisible(boolean visible) {
28-
if (uiSettings.isZoomControlsEnabled()) {
29-
super.setVisible(visible);
30+
void setVisible(boolean visible) {
31+
if (uiSettings != null && !uiSettings.isZoomControlsEnabled()) {
32+
return;
3033
}
34+
zoomButtonsController.setVisible(visible);
3135
}
3236
}

0 commit comments

Comments
 (0)