From 79664a474828d54db7fd5411db5f21aecab6b0ae Mon Sep 17 00:00:00 2001 From: Vivek Vardhan Adepu Date: Wed, 15 Dec 2021 11:20:44 +0530 Subject: [PATCH] addObserver issue fix: using context rather than activity in LocationServices --- .../locationenabler/RNAndroidLocationEnablerModule.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/android/src/main/java/com/heanoria/library/reactnative/locationenabler/RNAndroidLocationEnablerModule.java b/android/src/main/java/com/heanoria/library/reactnative/locationenabler/RNAndroidLocationEnablerModule.java index a24737e..3f7e2ba 100644 --- a/android/src/main/java/com/heanoria/library/reactnative/locationenabler/RNAndroidLocationEnablerModule.java +++ b/android/src/main/java/com/heanoria/library/reactnative/locationenabler/RNAndroidLocationEnablerModule.java @@ -36,6 +36,7 @@ */ public class RNAndroidLocationEnablerModule extends ReactContextBaseJavaModule implements ActivityEventListener, OnCompleteListener { + private final ReactApplicationContext context; private static final String SELF_MODULE_NAME = "RNAndroidLocationEnabler"; private static final String LOCATION_INTERVAL_DURATION_PARAMS_KEY = "interval"; private static final String LOCATION_FAST_INTERVAL_DURATION_PARAMS_KEY = "fastInterval"; @@ -54,12 +55,13 @@ public class RNAndroidLocationEnablerModule extends ReactContextBaseJavaModule i public RNAndroidLocationEnablerModule(ReactApplicationContext reactContext) { super(reactContext); + this.context = reactContext; reactContext.addActivityEventListener(this); } @ReactMethod public void promptForEnableLocationIfNeeded(ReadableMap params, Promise promise) { - if (getCurrentActivity() == null || params == null || promise == null) return; + if (getCurrentActivity() == null || params == null || promise == null || this.context == null) return; this.promise = promise; @@ -70,7 +72,7 @@ public void promptForEnableLocationIfNeeded(ReadableMap params, Promise promise) LocationSettingsRequest.Builder builder = new LocationSettingsRequest.Builder() .addLocationRequest(locationRequest); builder.setAlwaysShow(true); - Task task = LocationServices.getSettingsClient(getCurrentActivity()).checkLocationSettings(builder.build()); + Task task = LocationServices.getSettingsClient(this.context).checkLocationSettings(builder.build()); task.addOnCompleteListener(this); }