diff options
Diffstat (limited to 'platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/location/LocationModesActivity.java')
-rw-r--r-- | platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/location/LocationModesActivity.java | 51 |
1 files changed, 32 insertions, 19 deletions
diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/location/LocationModesActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/location/LocationModesActivity.java index 068aa487d2..618032f5e0 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/location/LocationModesActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/location/LocationModesActivity.java @@ -19,6 +19,7 @@ import com.mapbox.mapboxsdk.camera.CameraUpdateFactory; import com.mapbox.mapboxsdk.location.LocationComponent; import com.mapbox.mapboxsdk.location.LocationComponentOptions; import com.mapbox.mapboxsdk.location.OnCameraTrackingChangedListener; +import com.mapbox.mapboxsdk.location.OnLocationCameraTransitionListener; import com.mapbox.mapboxsdk.location.OnLocationClickListener; import com.mapbox.mapboxsdk.location.modes.CameraMode; import com.mapbox.mapboxsdk.location.modes.RenderMode; @@ -341,35 +342,47 @@ public class LocationModesActivity extends AppCompatActivity implements OnMapRea String selectedTrackingType = trackingTypes.get(position); locationTrackingBtn.setText(selectedTrackingType); if (selectedTrackingType.contentEquals("None")) { - locationComponent.setCameraMode(CameraMode.NONE); + setCameraTrackingMode(CameraMode.NONE); } else if (selectedTrackingType.contentEquals("Tracking")) { - locationComponent.setCameraMode(CameraMode.TRACKING); + setCameraTrackingMode(CameraMode.TRACKING); } else if (selectedTrackingType.contentEquals("Tracking Compass")) { - locationComponent.setCameraMode(CameraMode.TRACKING_COMPASS); + setCameraTrackingMode(CameraMode.TRACKING_COMPASS); } else if (selectedTrackingType.contentEquals("Tracking GPS")) { - locationComponent.setCameraMode(CameraMode.TRACKING_GPS); + setCameraTrackingMode(CameraMode.TRACKING_GPS); } else if (selectedTrackingType.contentEquals("Tracking GPS North")) { - locationComponent.setCameraMode(CameraMode.TRACKING_GPS_NORTH); + setCameraTrackingMode(CameraMode.TRACKING_GPS_NORTH); } listPopup.dismiss(); + }); + listPopup.show(); + } - if (locationComponent.getCameraMode() != CameraMode.NONE) { - locationComponent.zoomWhileTracking(15, 750, new MapboxMap.CancelableCallback() { - @Override - public void onCancel() { - // No impl - } + private void setCameraTrackingMode(@CameraMode.Mode int mode) { + locationComponent.setCameraMode(mode, new OnLocationCameraTransitionListener() { + @Override + public void onLocationCameraTransitionFinished(@CameraMode.Mode int cameraMode) { + if (mode != CameraMode.NONE) { + locationComponent.zoomWhileTracking(15, 750, new MapboxMap.CancelableCallback() { + @Override + public void onCancel() { + // No impl + } + + @Override + public void onFinish() { + locationComponent.tiltWhileTracking(45); + } + }); + } else { + mapboxMap.easeCamera(CameraUpdateFactory.tiltTo(0)); + } + } - @Override - public void onFinish() { - locationComponent.tiltWhileTracking(45); - } - }); - } else { - mapboxMap.easeCamera(CameraUpdateFactory.tiltTo(0)); + @Override + public void onLocationCameraTransitionCanceled(@CameraMode.Mode int cameraMode) { + // No impl } }); - listPopup.show(); } @Override |