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

Commit 11b8f2d

Browse files
authored
[android] - move ZoomButtonController creation to view initalisation (#9587)
1 parent 685b8b2 commit 11b8f2d

File tree

2 files changed

+17
-15
lines changed

2 files changed

+17
-15
lines changed

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

+4-5
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,7 @@ private void initialise(@NonNull final Context context, @NonNull final MapboxMap
120120
myLocationView = (MyLocationView) view.findViewById(R.id.userLocationView);
121121
attrView = (ImageView) view.findViewById(R.id.attributionView);
122122
logoView = (ImageView) view.findViewById(R.id.logoView);
123+
mapZoomButtonController = new MapZoomButtonController(new ZoomButtonsController(this));
123124

124125
// add accessibility support
125126
setContentDescription(context.getString(R.string.mapbox_mapActionDescription));
@@ -180,7 +181,7 @@ private void initialiseMap() {
180181
mapKeyListener = new MapKeyListener(transform, trackingSettings, uiSettings);
181182

182183
MapZoomControllerListener zoomListener = new MapZoomControllerListener(mapGestureDetector, uiSettings, transform);
183-
mapZoomButtonController = new MapZoomButtonController(this, uiSettings, zoomListener);
184+
mapZoomButtonController.bind(uiSettings, zoomListener);
184185

185186
// inject widgets with MapboxMap
186187
compassView.setMapboxMap(mapboxMap);
@@ -557,9 +558,7 @@ public void onSurfaceTextureUpdated(SurfaceTexture surface) {
557558
@CallSuper
558559
protected void onDetachedFromWindow() {
559560
super.onDetachedFromWindow();
560-
if (mapZoomButtonController != null) {
561-
mapZoomButtonController.setVisible(false);
562-
}
561+
mapZoomButtonController.setVisible(false);
563562
}
564563

565564
// Called when view is hidden and shown
@@ -569,7 +568,7 @@ protected void onVisibilityChanged(@NonNull View changedView, int visibility) {
569568
return;
570569
}
571570

572-
if (mapZoomButtonController != null && nativeMapView != null) {
571+
if (nativeMapView != null) {
573572
mapZoomButtonController.setVisible(visibility == View.VISIBLE);
574573
}
575574
}
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package com.mapbox.mapboxsdk.maps;
22

33
import android.support.annotation.NonNull;
4-
import android.view.View;
54
import android.widget.ZoomButtonsController;
65

76
import com.mapbox.mapboxsdk.constants.MapboxConstants;
@@ -12,21 +11,25 @@
1211
* Allows single touch only devices to zoom in and out.
1312
* </p>
1413
*/
15-
final class MapZoomButtonController extends ZoomButtonsController {
14+
final class MapZoomButtonController {
1615

1716
private UiSettings uiSettings;
17+
private ZoomButtonsController zoomButtonsController;
1818

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

26-
@Override
27-
public void setVisible(boolean visible) {
28-
if (uiSettings.isZoomControlsEnabled()) {
29-
super.setVisible(visible);
29+
void setVisible(boolean visible) {
30+
if (uiSettings != null && !uiSettings.isZoomControlsEnabled()) {
31+
return;
3032
}
33+
zoomButtonsController.setVisible(visible);
3134
}
3235
}

0 commit comments

Comments
 (0)