Skip to content

Commit e8c6b0a

Browse files
chore: set max update age instead of expiration duration
1 parent 99f5636 commit e8c6b0a

File tree

1 file changed

+12
-11
lines changed

1 file changed

+12
-11
lines changed

android/src/main/java/com/reactnativecommunity/geolocation/PlayServicesLocationManager.java

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import com.google.android.gms.location.LocationResult;
2424
import com.google.android.gms.location.LocationServices;
2525
import com.google.android.gms.location.LocationSettingsRequest;
26+
import com.google.android.gms.location.Priority;
2627
import com.google.android.gms.location.SettingsClient;
2728

2829
@SuppressLint("MissingPermission")
@@ -100,22 +101,22 @@ public void stopObserving() {
100101

101102
private void checkLocationSettings(ReadableMap options, LocationCallback locationCallback, Callback error) {
102103
LocationOptions locationOptions = LocationOptions.fromReactMap(options);
103-
LocationRequest locationRequest = LocationRequest.create();
104-
locationRequest.setInterval(locationOptions.interval);
104+
LocationRequest.Builder requestBuilder = new LocationRequest.Builder(locationOptions.interval);
105+
requestBuilder.setPriority(locationOptions.highAccuracy ? Priority.PRIORITY_HIGH_ACCURACY : Priority.PRIORITY_LOW_POWER);
106+
requestBuilder.setMaxUpdateAgeMillis((long) locationOptions.maximumAge);
107+
105108
if (locationOptions.fastestInterval >= 0) {
106-
locationRequest.setFastestInterval(locationOptions.fastestInterval);
109+
requestBuilder.setMinUpdateIntervalMillis(locationOptions.fastestInterval);
107110
}
108-
locationRequest.setExpirationDuration((long) locationOptions.maximumAge);
111+
109112
if (locationOptions.distanceFilter >= 0) {
110-
locationRequest.setSmallestDisplacement(locationOptions.distanceFilter);
113+
requestBuilder.setMinUpdateDistanceMeters(locationOptions.distanceFilter);
111114
}
112-
locationRequest.setPriority(
113-
locationOptions.highAccuracy ? LocationRequest.PRIORITY_HIGH_ACCURACY : LocationRequest.PRIORITY_LOW_POWER
114-
);
115+
LocationRequest locationRequest = requestBuilder.build();
115116

116-
LocationSettingsRequest.Builder builder = new LocationSettingsRequest.Builder();
117-
builder.addLocationRequest(locationRequest);
118-
LocationSettingsRequest locationSettingsRequest = builder.build();
117+
LocationSettingsRequest.Builder settingsBuilder = new LocationSettingsRequest.Builder();
118+
settingsBuilder.addLocationRequest(locationRequest);
119+
LocationSettingsRequest locationSettingsRequest = settingsBuilder.build();
119120
mLocationServicesSettingsClient.checkLocationSettings(locationSettingsRequest)
120121
.addOnSuccessListener(locationSettingsResponse -> requestLocationUpdates(locationRequest, locationCallback))
121122
.addOnFailureListener(err -> {

0 commit comments

Comments
 (0)