diff options
author | Łukasz Paczos <lukas.paczos@gmail.com> | 2018-12-06 18:03:54 +0100 |
---|---|---|
committer | Łukasz Paczos <lukasz.paczos@mapbox.com> | 2018-12-12 12:31:40 +0100 |
commit | d592889e861fa28776ec41a7d9316e2e3ac1a229 (patch) | |
tree | ddfc89ad1397616ad4be93926e93a70758b490fb /platform/android/MapboxGLAndroidSDKTestApp | |
parent | 2d527c2af7224d03429b8b2ccb7c1712e8ffe12b (diff) | |
download | qtlocation-mapboxgl-d592889e861fa28776ec41a7d9316e2e3ac1a229.tar.gz |
[android] CameraMode transition animation and result listeners
Diffstat (limited to 'platform/android/MapboxGLAndroidSDKTestApp')
-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 |