summaryrefslogtreecommitdiff
path: root/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/location/LocationModesActivity.java
diff options
context:
space:
mode:
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.java51
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