@@ -52,7 +52,7 @@ public void getCurrentLocationData(ReadableMap options, Callback success, Callba
52
52
53
53
if (currentActivity == null ) {
54
54
mSingleLocationCallback = createSingleLocationCallback (success , error );
55
- checkLocationSettings (options , mSingleLocationCallback );
55
+ checkLocationSettings (options , mSingleLocationCallback , error );
56
56
return ;
57
57
}
58
58
@@ -63,7 +63,7 @@ public void getCurrentLocationData(ReadableMap options, Callback success, Callba
63
63
success .invoke (locationToMap (location ));
64
64
} else {
65
65
mSingleLocationCallback = createSingleLocationCallback (success , error );
66
- checkLocationSettings (options , mSingleLocationCallback );
66
+ checkLocationSettings (options , mSingleLocationCallback , error );
67
67
}
68
68
});
69
69
} catch (SecurityException e ) {
@@ -93,7 +93,7 @@ public void onLocationAvailability(LocationAvailability locationAvailability) {
93
93
}
94
94
};
95
95
96
- checkLocationSettings (options , mLocationCallback );
96
+ checkLocationSettings (options , mLocationCallback , null );
97
97
}
98
98
99
99
@ Override
@@ -104,7 +104,7 @@ public void stopObserving() {
104
104
mFusedLocationClient .removeLocationUpdates (mLocationCallback );
105
105
}
106
106
107
- private void checkLocationSettings (ReadableMap options , LocationCallback locationCallback ) {
107
+ private void checkLocationSettings (ReadableMap options , LocationCallback locationCallback , Callback error ) {
108
108
LocationOptions locationOptions = LocationOptions .fromReactMap (options );
109
109
LocationRequest locationRequest = LocationRequest .create ();
110
110
locationRequest .setInterval (locationOptions .interval );
@@ -129,6 +129,13 @@ private void checkLocationSettings(ReadableMap options, LocationCallback locatio
129
129
requestLocationUpdates (locationRequest , locationCallback );
130
130
return ;
131
131
}
132
+
133
+ if (error != null ) {
134
+ error .invoke (
135
+ PositionError .buildError (PositionError .POSITION_UNAVAILABLE , "Location not available (FusedLocationProvider/settings)." )
136
+ );
137
+ return ;
138
+ }
132
139
emitError (PositionError .POSITION_UNAVAILABLE , "Location not available (FusedLocationProvider/settings)." );
133
140
});
134
141
}
0 commit comments