diff options
author | Langston Smith <langston.smith@mapbox.com> | 2019-01-31 07:20:25 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-01-31 07:20:25 -0800 |
commit | a2b49e9d22ad9c5bfb6a2ec05dc996be7c9449ea (patch) | |
tree | 3a5c860136604761cddf23f55b235b901663526a /platform/android/MapboxGLAndroidSDK | |
parent | 429ea6aba5a2600628278d647cbd4eb0b1b7c968 (diff) | |
download | qtlocation-mapboxgl-a2b49e9d22ad9c5bfb6a2ec05dc996be7c9449ea.tar.gz |
[android] Adding new variation of LocationComponent#activateLocationComponent (#13829)
* [android] added new activateLocationComponent method
* [android] added new test for the new way to activate the LocationComponent
* [android] tweak to test after lukasz review
* [android] adding tests to assert LocationEngine status
Diffstat (limited to 'platform/android/MapboxGLAndroidSDK')
2 files changed, 38 insertions, 0 deletions
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/location/LocationComponent.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/location/LocationComponent.java index f27af0a517..ddb211f8f6 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/location/LocationComponent.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/location/LocationComponent.java @@ -268,6 +268,30 @@ public final class LocationComponent { /** * This method initializes the component and needs to be called before any other operations are performed. * Afterwards, you can manage component's visibility by {@link #setLocationComponentEnabled(boolean)}. + * + * @param context the context + * @param style the proxy object for current map style. More info at {@link Style} + * @param useDefaultLocationEngine true if you want to initialize and use the built-in location engine or false if + * there should be no location engine initialized + * @param locationEngineRequest the location request + * @param options the options + */ + @RequiresPermission(anyOf = {ACCESS_FINE_LOCATION, ACCESS_COARSE_LOCATION}) + public void activateLocationComponent(@NonNull Context context, @NonNull Style style, + boolean useDefaultLocationEngine, + @NonNull LocationEngineRequest locationEngineRequest, + @NonNull LocationComponentOptions options) { + setLocationEngineRequest(locationEngineRequest); + if (useDefaultLocationEngine) { + activateLocationComponent(context, style, options); + } else { + activateLocationComponent(context, style, null, options); + } + } + + /** + * This method initializes the component and needs to be called before any other operations are performed. + * Afterwards, you can manage component's visibility by {@link #setLocationComponentEnabled(boolean)}. * <p> * <strong>Note</strong>: This method will initialize and use an internal {@link LocationEngine} when enabled. * diff --git a/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/location/LocationComponentTest.kt b/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/location/LocationComponentTest.kt index cf513068ac..0f316fa483 100644 --- a/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/location/LocationComponentTest.kt +++ b/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/location/LocationComponentTest.kt @@ -98,6 +98,20 @@ class LocationComponentTest { } @Test + fun activateWithDefaultLocationEngineRequestAndOptionsTestDefaultLocationEngine() { + locationComponent.activateLocationComponent(context, mockk(), true, locationEngineRequest, locationComponentOptions) + Assert.assertEquals(locationEngineRequest, locationComponent.locationEngineRequest) + Assert.assertNotNull(locationComponent.locationEngine) + } + + @Test + fun activateWithDefaultLocationEngineRequestAndOptionsTestCustomLocationEngine() { + locationComponent.activateLocationComponent(context, mockk(), false, locationEngineRequest, locationComponentOptions) + Assert.assertEquals(locationEngineRequest, locationComponent.locationEngineRequest) + Assert.assertNull(locationComponent.locationEngine) + } + + @Test fun locationUpdatesWhenEnabledDisableTest() { locationComponent.activateLocationComponent(context, mockk(), locationEngine, locationEngineRequest, locationComponentOptions) verify(locationEngine, times(0)).removeLocationUpdates(currentListener) |