[android] option to provide custom values for location camera transition

This commit is contained in:
Łukasz Paczos
2019-05-07 17:42:16 +02:00
committed by Łukasz Paczos
parent dbfab81e2c
commit 6fa1d357b3
6 changed files with 155 additions and 50 deletions

View File

@@ -16,7 +16,6 @@ import android.widget.Toast;
import com.mapbox.android.core.location.LocationEngineRequest;
import com.mapbox.android.core.permissions.PermissionsListener;
import com.mapbox.android.core.permissions.PermissionsManager;
import com.mapbox.mapboxsdk.camera.CameraUpdateFactory;
import com.mapbox.mapboxsdk.location.LocationComponent;
import com.mapbox.mapboxsdk.location.LocationComponentActivationOptions;
import com.mapbox.mapboxsdk.location.LocationComponentOptions;
@@ -183,6 +182,22 @@ public class LocationModesActivity extends AppCompatActivity implements OnMapRea
locationComponent.setMaxAnimationFps(5);
} else if (id == R.id.action_component_throttling_disabled) {
locationComponent.setMaxAnimationFps(Integer.MAX_VALUE);
} else if (id == R.id.action_component_animate_while_tracking) {
locationComponent.zoomWhileTracking(17, 750, new MapboxMap.CancelableCallback() {
@Override
public void onCancel() {
// No impl
}
@Override
public void onFinish() {
locationComponent.tiltWhileTracking(60);
}
});
if (locationComponent.getCameraMode() == CameraMode.NONE) {
Toast.makeText(this, "Not possible to animate - not tracking", Toast.LENGTH_SHORT).show();
}
}
return super.onOptionsItemSelected(item);
@@ -370,31 +385,18 @@ public class LocationModesActivity extends AppCompatActivity implements OnMapRea
}
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));
locationComponent.setCameraMode(mode, 1200, 16.0, null, 45.0,
new OnLocationCameraTransitionListener() {
@Override
public void onLocationCameraTransitionFinished(@CameraMode.Mode int cameraMode) {
Toast.makeText(LocationModesActivity.this, "Transition finished", Toast.LENGTH_SHORT).show();
}
}
@Override
public void onLocationCameraTransitionCanceled(@CameraMode.Mode int cameraMode) {
// No impl
}
});
@Override
public void onLocationCameraTransitionCanceled(@CameraMode.Mode int cameraMode) {
Toast.makeText(LocationModesActivity.this, "Transition canceled", Toast.LENGTH_SHORT).show();
}
});
}
@Override

View File

@@ -32,4 +32,8 @@
<item android:id="@+id/action_component_throttling_disabled"
android:title="Disable animation throttling"
app:showAsAction="never"/>
<item android:id="@+id/action_component_animate_while_tracking"
android:title="Animate while tracking"
app:showAsAction="never"/>
</menu>