diff options
author | Łukasz Paczos <lukas.paczos@gmail.com> | 2018-09-06 14:04:02 +0200 |
---|---|---|
committer | Łukasz Paczos <lukasz.paczos@mapbox.com> | 2018-09-12 13:59:11 +0200 |
commit | caebcd08e3803f5758353fbadefc9b75093b4015 (patch) | |
tree | 5189e182b0d11c8271396a73a89ef6a892a3a009 /platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/location | |
parent | d4a2123bec4289848a4a0634d2727e2d4c77f180 (diff) | |
download | qtlocation-mapboxgl-caebcd08e3803f5758353fbadefc9b75093b4015.tar.gz |
[android] LocationComponent - javadoc fixes, improved initialization, removed location save state
Diffstat (limited to 'platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/location')
4 files changed, 51 insertions, 39 deletions
diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/location/LocationFragmentActivity.kt b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/location/LocationFragmentActivity.kt index 974dc5c571..035ad67e12 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/location/LocationFragmentActivity.kt +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/location/LocationFragmentActivity.kt @@ -102,6 +102,7 @@ class LocationFragmentActivity : AppCompatActivity() { mapboxMap = it component = mapboxMap.locationComponent component?.activateLocationComponent(activity) + component?.isLocationComponentEnabled = true component?.locationEngine?.addLocationEngineListener(this) } } diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/location/LocationMapChangeActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/location/LocationMapChangeActivity.java index 6fa514e28b..e53604fdd4 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/location/LocationMapChangeActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/location/LocationMapChangeActivity.java @@ -84,6 +84,7 @@ public class LocationMapChangeActivity extends AppCompatActivity implements OnMa private void activateLocationComponent() { LocationComponent locationComponent = mapboxMap.getLocationComponent(); locationComponent.activateLocationComponent(this); + locationComponent.setLocationComponentEnabled(true); locationComponent.setRenderMode(RenderMode.COMPASS); } 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 72bd91108a..86feb00dec 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 @@ -22,13 +22,13 @@ import com.mapbox.android.core.permissions.PermissionsListener; import com.mapbox.android.core.permissions.PermissionsManager; import com.mapbox.mapboxsdk.camera.CameraUpdateFactory; import com.mapbox.mapboxsdk.constants.Style; +import com.mapbox.mapboxsdk.location.OnLocationClickListener; import com.mapbox.mapboxsdk.maps.MapView; import com.mapbox.mapboxsdk.maps.MapboxMap; import com.mapbox.mapboxsdk.maps.OnMapReadyCallback; import com.mapbox.mapboxsdk.location.LocationComponentOptions; import com.mapbox.mapboxsdk.location.LocationComponent; import com.mapbox.mapboxsdk.location.OnCameraTrackingChangedListener; -import com.mapbox.mapboxsdk.location.OnLocationComponentClickListener; import com.mapbox.mapboxsdk.location.modes.CameraMode; import com.mapbox.mapboxsdk.location.modes.RenderMode; import com.mapbox.mapboxsdk.testapp.R; @@ -37,7 +37,7 @@ import java.util.ArrayList; import java.util.List; public class LocationModesActivity extends AppCompatActivity implements OnMapReadyCallback, - LocationEngineListener, OnLocationComponentClickListener, OnCameraTrackingChangedListener { + LocationEngineListener, OnLocationClickListener, OnCameraTrackingChangedListener { private MapView mapView; private Button locationModeBtn; @@ -50,7 +50,17 @@ public class LocationModesActivity extends AppCompatActivity implements OnMapRea private MapboxMap mapboxMap; private boolean customStyle; - private Bundle savedInstanceState; + private static final String SAVED_STATE_CAMERA = "saved_state_camera"; + private static final String SAVED_STATE_RENDER = "saved_state_render"; + private static final String SAVED_STATE_LOCATION = "saved_state_location"; + + @CameraMode.Mode + private int cameraMode = CameraMode.TRACKING; + + @RenderMode.Mode + private int renderMode = RenderMode.NORMAL; + + private Location lastLocation; @Override protected void onCreate(Bundle savedInstanceState) { @@ -81,6 +91,13 @@ public class LocationModesActivity extends AppCompatActivity implements OnMapRea } }); + + if (savedInstanceState != null) { + cameraMode = savedInstanceState.getInt(SAVED_STATE_CAMERA); + renderMode = savedInstanceState.getInt(SAVED_STATE_RENDER); + lastLocation = savedInstanceState.getParcelable(SAVED_STATE_LOCATION); + } + mapView.onCreate(savedInstanceState); if (PermissionsManager.areLocationPermissionsGranted(this)) { @@ -104,8 +121,6 @@ public class LocationModesActivity extends AppCompatActivity implements OnMapRea }); permissionsManager.requestLocationPermissions(this); } - - this.savedInstanceState = savedInstanceState; } @Override @@ -125,11 +140,26 @@ public class LocationModesActivity extends AppCompatActivity implements OnMapRea locationEngine.addLocationEngineListener(this); locationEngine.activate(); + int[] padding; + if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) { + padding = new int[] {0, 750, 0, 0}; + } else { + padding = new int[] {0, 250, 0, 0}; + } + + LocationComponentOptions options = LocationComponentOptions.builder(this) + .padding(padding) + .layerBelow("waterway-label") + .build(); + locationComponent = mapboxMap.getLocationComponent(); + locationComponent.activateLocationComponent(this, locationEngine, options); + locationComponent.setLocationComponentEnabled(true); locationComponent.addOnLocationClickListener(this); locationComponent.addOnCameraTrackingChangedListener(this); - - activateLocationComponent(); + locationComponent.setCameraMode(cameraMode); + setRendererMode(renderMode); + locationComponent.forceLocationUpdate(lastLocation); } @Override @@ -153,10 +183,10 @@ public class LocationModesActivity extends AppCompatActivity implements OnMapRea toggleMapStyle(); return true; } else if (id == R.id.action_component_disable) { - locationComponent.deactivateLocationComponent(); + locationComponent.setLocationComponentEnabled(false); return true; } else if (id == R.id.action_component_enabled) { - activateLocationComponent(); + locationComponent.setLocationComponentEnabled(true); return true; } else if (id == R.id.action_gestures_management_disabled) { disableGesturesManagement(); @@ -169,35 +199,6 @@ public class LocationModesActivity extends AppCompatActivity implements OnMapRea return super.onOptionsItemSelected(item); } - private void activateLocationComponent() { - if (locationComponent != null) { - int[] padding; - if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) { - padding = new int[] {0, 750, 0, 0}; - } else { - padding = new int[] {0, 250, 0, 0}; - } - - if (savedInstanceState == null) { - LocationComponentOptions options = LocationComponentOptions.builder(this) - .padding(padding) - .layerBelow("waterway-label") - .build(); - - locationComponent.activateLocationComponent(locationEngine, options); - } else { - LocationComponentOptions options = locationComponent - .getLocationComponentOptions() - .toBuilder() - .padding(padding) - .build(); - - locationComponent.setLocationEngine(locationEngine); - locationComponent.applyStyle(options); - } - } - } - private void toggleStyle() { customStyle = !customStyle; locationComponent.applyStyle( @@ -265,10 +266,16 @@ public class LocationModesActivity extends AppCompatActivity implements OnMapRea } } + @SuppressLint("MissingPermission") @Override protected void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); mapView.onSaveInstanceState(outState); + outState.putInt(SAVED_STATE_CAMERA, cameraMode); + outState.putInt(SAVED_STATE_RENDER, renderMode); + if (locationComponent != null) { + outState.putParcelable(SAVED_STATE_LOCATION, locationComponent.getLastKnownLocation()); + } } @Override @@ -299,7 +306,7 @@ public class LocationModesActivity extends AppCompatActivity implements OnMapRea @Override public void onLocationComponentClick() { - Toast.makeText(this, "OnlocationComponentClick", Toast.LENGTH_LONG).show(); + Toast.makeText(this, "OnLocationComponentClick", Toast.LENGTH_LONG).show(); } private void showModeListDialog() { @@ -328,6 +335,7 @@ public class LocationModesActivity extends AppCompatActivity implements OnMapRea } private void setRendererMode(@RenderMode.Mode int mode) { + renderMode = mode; locationComponent.setRenderMode(mode); if (mode == RenderMode.NORMAL) { locationModeBtn.setText("Normal"); @@ -392,6 +400,7 @@ public class LocationModesActivity extends AppCompatActivity implements OnMapRea @Override public void onCameraTrackingChanged(int currentMode) { + this.cameraMode = currentMode; if (currentMode == CameraMode.NONE) { locationTrackingBtn.setText("None"); } else if (currentMode == CameraMode.TRACKING) { diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/location/ManualLocationUpdatesActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/location/ManualLocationUpdatesActivity.java index 5750e97d63..2651137273 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/location/ManualLocationUpdatesActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/location/ManualLocationUpdatesActivity.java @@ -120,6 +120,7 @@ public class ManualLocationUpdatesActivity extends AppCompatActivity implements locationEngine.activate(); locationComponent = mapboxMap.getLocationComponent(); locationComponent.activateLocationComponent(this, locationEngine); + locationComponent.setLocationComponentEnabled(true); locationComponent.setRenderMode(RenderMode.COMPASS); } |