summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLangston Smith <langston.smith@mapbox.com>2019-01-31 07:20:25 -0800
committerGitHub <noreply@github.com>2019-01-31 07:20:25 -0800
commita2b49e9d22ad9c5bfb6a2ec05dc996be7c9449ea (patch)
tree3a5c860136604761cddf23f55b235b901663526a
parent429ea6aba5a2600628278d647cbd4eb0b1b7c968 (diff)
downloadqtlocation-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
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/location/LocationComponent.java24
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/location/LocationComponentTest.kt14
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)