Skip to content

Commit

Permalink
Set max update age instead of expiration duration. (#294)
Browse files Browse the repository at this point in the history
- Requires adopting `LocationRequest.Builder`.
  • Loading branch information
jkaufman committed Jan 4, 2024
1 parent 0cdeb3e commit 8f66b1a
Showing 1 changed file with 13 additions and 11 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -101,22 +101,24 @@ public void stopObserving() {

private void checkLocationSettings(ReadableMap options, LocationCallback locationCallback) {
LocationOptions locationOptions = LocationOptions.fromReactMap(options);
LocationRequest locationRequest = LocationRequest.create();
locationRequest.setInterval(locationOptions.interval);

LocationRequest.Builder requestBuilder = new LocationRequest.Builder(locationOptions.interval);
requestBuilder.setPriority(locationOptions.highAccuracy ? Priority.PRIORITY_HIGH_ACCURACY : Priority.PRIORITY_LOW_POWER);
requestBuilder.setMaxUpdateAgeMillis((long) locationOptions.maximumAge);

if (locationOptions.fastestInterval >= 0) {
locationRequest.setFastestInterval(locationOptions.fastestInterval);
requestBuilder.setMinUpdateIntervalMillis(locationOptions.fastestInterval);
}
locationRequest.setExpirationDuration((long) locationOptions.maximumAge);

if (locationOptions.distanceFilter >= 0) {
locationRequest.setSmallestDisplacement(locationOptions.distanceFilter);
requestBuilder.setMinUpdateDistanceMeters(locationOptions.distanceFilter);
}
locationRequest.setPriority(
locationOptions.highAccuracy ? LocationRequest.PRIORITY_HIGH_ACCURACY : LocationRequest.PRIORITY_LOW_POWER
);

LocationSettingsRequest.Builder builder = new LocationSettingsRequest.Builder();
builder.addLocationRequest(locationRequest);
LocationSettingsRequest locationSettingsRequest = builder.build();
LocationRequest locationRequest = requestBuilder.build();

LocationSettingsRequest.Builder settingsBuilder = new LocationSettingsRequest.Builder();
settingsBuilder.addLocationRequest(locationRequest);
LocationSettingsRequest locationSettingsRequest = settingsBuilder.build();

mLocationServicesSettingsClient.checkLocationSettings(locationSettingsRequest)
.addOnSuccessListener(locationSettingsResponse -> requestLocationUpdates(locationRequest, locationCallback))
Expand Down

0 comments on commit 8f66b1a

Please sign in to comment.