From e744f713a5f563fd8ad02dc286e8d796312f8b82 Mon Sep 17 00:00:00 2001 From: Ricardo Sohn Date: Mon, 6 Apr 2026 07:59:00 -0300 Subject: [PATCH] feat(android): support interval and maxWaitTime on watchers --- .../BackgroundGeolocation.java | 4 +++- .../BackgroundGeolocationService.java | 9 ++++++--- definitions.d.ts | 2 ++ 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/android/src/main/java/com/equimaps/capacitor_background_geolocation/BackgroundGeolocation.java b/android/src/main/java/com/equimaps/capacitor_background_geolocation/BackgroundGeolocation.java index a92fcf9..8e1eca3 100644 --- a/android/src/main/java/com/equimaps/capacitor_background_geolocation/BackgroundGeolocation.java +++ b/android/src/main/java/com/equimaps/capacitor_background_geolocation/BackgroundGeolocation.java @@ -159,7 +159,9 @@ public void addWatcher(final PluginCall call) { service.addWatcher( call.getCallbackId(), backgroundNotification, - call.getFloat("distanceFilter", 0f) + call.getFloat("distanceFilter", 0f), + call.getInt("interval", 1000), + call.getInt("maxWaitTime", call.getInt("interval", 1000)) ); } diff --git a/android/src/main/java/com/equimaps/capacitor_background_geolocation/BackgroundGeolocationService.java b/android/src/main/java/com/equimaps/capacitor_background_geolocation/BackgroundGeolocationService.java index fafbb86..58bd33d 100644 --- a/android/src/main/java/com/equimaps/capacitor_background_geolocation/BackgroundGeolocationService.java +++ b/android/src/main/java/com/equimaps/capacitor_background_geolocation/BackgroundGeolocationService.java @@ -75,14 +75,17 @@ public class LocalBinder extends Binder { void addWatcher( final String id, Notification backgroundNotification, - float distanceFilter + float distanceFilter, + int interval, + int maxWaitTime ) { FusedLocationProviderClient client = LocationServices.getFusedLocationProviderClient( BackgroundGeolocationService.this ); LocationRequest locationRequest = new LocationRequest(); - locationRequest.setMaxWaitTime(1000); - locationRequest.setInterval(1000); + locationRequest.setMaxWaitTime(maxWaitTime); + locationRequest.setInterval(interval); + locationRequest.setFastestInterval(interval); locationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY); locationRequest.setSmallestDisplacement(distanceFilter); diff --git a/definitions.d.ts b/definitions.d.ts index 5ae4202..faa2c27 100644 --- a/definitions.d.ts +++ b/definitions.d.ts @@ -37,6 +37,8 @@ export interface WatcherOptions { * @default 0 */ distanceFilter?: number; + interval?: number; + maxWaitTime?: number; } /**