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

Commit 1b0567d

Browse files
committed
[android] - move ZoomButtonController creation to view initalisation
1 parent a282280 commit 1b0567d

File tree

2 files changed

+18
-15
lines changed

2 files changed

+18
-15
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
}
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)