[android] - move ZoomButtonController creation to view initalisation (#9587)
This commit is contained in:
@@ -120,6 +120,7 @@ public class MapView extends FrameLayout {
|
||||
myLocationView = (MyLocationView) view.findViewById(R.id.userLocationView);
|
||||
attrView = (ImageView) view.findViewById(R.id.attributionView);
|
||||
logoView = (ImageView) view.findViewById(R.id.logoView);
|
||||
mapZoomButtonController = new MapZoomButtonController(new ZoomButtonsController(this));
|
||||
|
||||
// add accessibility support
|
||||
setContentDescription(context.getString(R.string.mapbox_mapActionDescription));
|
||||
@@ -180,7 +181,7 @@ public class MapView extends FrameLayout {
|
||||
mapKeyListener = new MapKeyListener(transform, trackingSettings, uiSettings);
|
||||
|
||||
MapZoomControllerListener zoomListener = new MapZoomControllerListener(mapGestureDetector, uiSettings, transform);
|
||||
mapZoomButtonController = new MapZoomButtonController(this, uiSettings, zoomListener);
|
||||
mapZoomButtonController.bind(uiSettings, zoomListener);
|
||||
|
||||
// inject widgets with MapboxMap
|
||||
compassView.setMapboxMap(mapboxMap);
|
||||
@@ -557,9 +558,7 @@ public class MapView extends FrameLayout {
|
||||
@CallSuper
|
||||
protected void onDetachedFromWindow() {
|
||||
super.onDetachedFromWindow();
|
||||
if (mapZoomButtonController != null) {
|
||||
mapZoomButtonController.setVisible(false);
|
||||
}
|
||||
mapZoomButtonController.setVisible(false);
|
||||
}
|
||||
|
||||
// Called when view is hidden and shown
|
||||
@@ -569,7 +568,7 @@ public class MapView extends FrameLayout {
|
||||
return;
|
||||
}
|
||||
|
||||
if (mapZoomButtonController != null && nativeMapView != null) {
|
||||
if (nativeMapView != null) {
|
||||
mapZoomButtonController.setVisible(visibility == View.VISIBLE);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
package com.mapbox.mapboxsdk.maps;
|
||||
|
||||
import android.support.annotation.NonNull;
|
||||
import android.view.View;
|
||||
import android.widget.ZoomButtonsController;
|
||||
|
||||
import com.mapbox.mapboxsdk.constants.MapboxConstants;
|
||||
@@ -12,21 +11,25 @@ import com.mapbox.mapboxsdk.constants.MapboxConstants;
|
||||
* Allows single touch only devices to zoom in and out.
|
||||
* </p>
|
||||
*/
|
||||
final class MapZoomButtonController extends ZoomButtonsController {
|
||||
final class MapZoomButtonController {
|
||||
|
||||
private UiSettings uiSettings;
|
||||
private ZoomButtonsController zoomButtonsController;
|
||||
|
||||
MapZoomButtonController(@NonNull View ownerView, @NonNull UiSettings uiSettings, @NonNull OnZoomListener listener) {
|
||||
super(ownerView);
|
||||
this.uiSettings = uiSettings;
|
||||
setZoomSpeed(MapboxConstants.ANIMATION_DURATION);
|
||||
setOnZoomListener(listener);
|
||||
MapZoomButtonController(@NonNull ZoomButtonsController zoomButtonsController) {
|
||||
this.zoomButtonsController = zoomButtonsController;
|
||||
this.zoomButtonsController.setZoomSpeed(MapboxConstants.ANIMATION_DURATION);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setVisible(boolean visible) {
|
||||
if (uiSettings.isZoomControlsEnabled()) {
|
||||
super.setVisible(visible);
|
||||
void bind(UiSettings uiSettings, ZoomButtonsController.OnZoomListener onZoomListener) {
|
||||
this.uiSettings = uiSettings;
|
||||
zoomButtonsController.setOnZoomListener(onZoomListener);
|
||||
}
|
||||
|
||||
void setVisible(boolean visible) {
|
||||
if (uiSettings != null && !uiSettings.isZoomControlsEnabled()) {
|
||||
return;
|
||||
}
|
||||
zoomButtonsController.setVisible(visible);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user