From 5aa6171c505bf9a6707b4963e17c7c007bc1a98c Mon Sep 17 00:00:00 2001 From: estevez-dev Date: Wed, 8 Jul 2020 11:49:05 +0300 Subject: [PATCH] Location fixes --- .../hassclient/LocationUpdatesService.java | 4 ---- .../hassclient/LocationUpdatesWorker.java | 7 ------- .../com/keyboardcrumbs/hassclient/LocationUtils.java | 10 +++++----- .../com/keyboardcrumbs/hassclient/MainActivity.java | 4 ++-- lib/pages/settings/integration_settings.part.dart | 4 ++-- 5 files changed, 9 insertions(+), 20 deletions(-) diff --git a/android/app/src/main/java/com/keyboardcrumbs/hassclient/LocationUpdatesService.java b/android/app/src/main/java/com/keyboardcrumbs/hassclient/LocationUpdatesService.java index 975bdf8..c9992c5 100644 --- a/android/app/src/main/java/com/keyboardcrumbs/hassclient/LocationUpdatesService.java +++ b/android/app/src/main/java/com/keyboardcrumbs/hassclient/LocationUpdatesService.java @@ -136,10 +136,6 @@ public class LocationUpdatesService extends Service { OneTimeWorkRequest uploadWorkRequest = new OneTimeWorkRequest.Builder(SendDataHomeWorker.class) - .setBackoffCriteria( - BackoffPolicy.EXPONENTIAL, - 10, - TimeUnit.SECONDS) .setConstraints(constraints) .setInputData(locationData) .build(); diff --git a/android/app/src/main/java/com/keyboardcrumbs/hassclient/LocationUpdatesWorker.java b/android/app/src/main/java/com/keyboardcrumbs/hassclient/LocationUpdatesWorker.java index 7dcee13..c37cf30 100644 --- a/android/app/src/main/java/com/keyboardcrumbs/hassclient/LocationUpdatesWorker.java +++ b/android/app/src/main/java/com/keyboardcrumbs/hassclient/LocationUpdatesWorker.java @@ -1,6 +1,5 @@ package com.keyboardcrumbs.hassclient; -import android.app.AlarmManager; import android.app.NotificationChannel; import android.app.NotificationManager; import android.content.Context; @@ -29,8 +28,6 @@ import com.google.common.util.concurrent.ListenableFuture; import java.util.concurrent.TimeUnit; -import static android.content.Context.NOTIFICATION_SERVICE; - public class LocationUpdatesWorker extends ListenableWorker { private Context currentContext; @@ -73,10 +70,6 @@ public class LocationUpdatesWorker extends ListenableWorker { OneTimeWorkRequest uploadWorkRequest = new OneTimeWorkRequest.Builder(SendDataHomeWorker.class) - .setBackoffCriteria( - BackoffPolicy.EXPONENTIAL, - 10, - TimeUnit.SECONDS) .setConstraints(constraints) .setInputData(locationData) .build(); diff --git a/android/app/src/main/java/com/keyboardcrumbs/hassclient/LocationUtils.java b/android/app/src/main/java/com/keyboardcrumbs/hassclient/LocationUtils.java index 59cbb8a..237f819 100644 --- a/android/app/src/main/java/com/keyboardcrumbs/hassclient/LocationUtils.java +++ b/android/app/src/main/java/com/keyboardcrumbs/hassclient/LocationUtils.java @@ -34,19 +34,19 @@ class LocationUtils { static final int LOCATION_UPDATES_SERVICE = 1; static final int LOCATION_UPDATES_WORKER = 2; - static final int DEFAULT_LOCATION_UPDATE_INTERVAL_S = 900; //15 minutes + static final int DEFAULT_LOCATION_UPDATE_INTERVAL_MS = 900000; //15 minutes static final long MIN_WORKER_LOCATION_UPDATE_INTERVAL_MS = 900000; //15 minutes static int getLocationUpdatesState(Context context) { - return (int) context.getSharedPreferences("FlutterSharedPreferences", Context.MODE_PRIVATE).getLong(KEY_REQUESTING_LOCATION_UPDATES, LOCATION_UPDATES_DISABLED); + return context.getSharedPreferences("FlutterSharedPreferences", Context.MODE_PRIVATE).getInt(KEY_REQUESTING_LOCATION_UPDATES, LOCATION_UPDATES_DISABLED); } static long getLocationUpdateIntervals(Context context) { - return context.getSharedPreferences("FlutterSharedPreferences", Context.MODE_PRIVATE).getLong(KEY_LOCATION_UPDATE_INTERVAL, DEFAULT_LOCATION_UPDATE_INTERVAL_S) * 1000; + return context.getSharedPreferences("FlutterSharedPreferences", Context.MODE_PRIVATE).getLong(KEY_LOCATION_UPDATE_INTERVAL, DEFAULT_LOCATION_UPDATE_INTERVAL_MS); } static int getLocationUpdatesPriority(Context context) { - return (int) context.getSharedPreferences("FlutterSharedPreferences", Context.MODE_PRIVATE).getLong(KEY_LOCATION_UPDATE_PRIORITY, 102); + return context.getSharedPreferences("FlutterSharedPreferences", Context.MODE_PRIVATE).getInt(KEY_LOCATION_UPDATE_PRIORITY, 102); } static boolean showNotification(Context context) { @@ -65,7 +65,7 @@ class LocationUtils { .edit() .putInt(KEY_LOCATION_UPDATE_PRIORITY, priority) .putBoolean(KEY_LOCATION_SHOW_NOTIFICATION, showNotification) - .putLong(KEY_LOCATION_UPDATE_INTERVAL, interval/1000) + .putLong(KEY_LOCATION_UPDATE_INTERVAL, interval) .apply(); } diff --git a/android/app/src/main/java/com/keyboardcrumbs/hassclient/MainActivity.java b/android/app/src/main/java/com/keyboardcrumbs/hassclient/MainActivity.java index a631177..64321f1 100644 --- a/android/app/src/main/java/com/keyboardcrumbs/hassclient/MainActivity.java +++ b/android/app/src/main/java/com/keyboardcrumbs/hassclient/MainActivity.java @@ -29,7 +29,7 @@ public class MainActivity extends FlutterActivity { private static final int REQUEST_PERMISSIONS_REQUEST_CODE = 34; private int locationUpdatesType = LocationUtils.LOCATION_UPDATES_DISABLED; - private long locationUpdatesInterval = LocationUtils.DEFAULT_LOCATION_UPDATE_INTERVAL_S * 1000; + private long locationUpdatesInterval = LocationUtils.DEFAULT_LOCATION_UPDATE_INTERVAL_MS; @Override public void configureFlutterEngine(@NonNull FlutterEngine flutterEngine) { @@ -66,7 +66,7 @@ public class MainActivity extends FlutterActivity { break; case "startLocationService": try { - locationUpdatesInterval = (long) call.argument("location-updates-interval") * 1000; + locationUpdatesInterval = ((Number)call.argument("location-updates-interval")).longValue(); if (locationUpdatesInterval >= LocationUtils.MIN_WORKER_LOCATION_UPDATE_INTERVAL_MS) { locationUpdatesType = LocationUtils.LOCATION_UPDATES_WORKER; } else { diff --git a/lib/pages/settings/integration_settings.part.dart b/lib/pages/settings/integration_settings.part.dart index e3f7705..64bf713 100644 --- a/lib/pages/settings/integration_settings.part.dart +++ b/lib/pages/settings/integration_settings.part.dart @@ -40,7 +40,7 @@ class _IntegrationSettingsPageState extends State { _accuracy = prefs.getInt("location-updates-priority") ?? 102; _locationTrackingEnabled = (prefs.getInt("location-updates-state") ?? 0) > 0; _showNotification = prefs.getBool("location-updates-show-notification") ?? true; - _locationInterval = Duration(seconds: prefs.getInt("location-updates-interval") ?? + _locationInterval = Duration(milliseconds: prefs.getInt("location-updates-interval") ?? AppSettings().defaultLocationUpdateIntervalSeconds); }); }); @@ -100,7 +100,7 @@ class _IntegrationSettingsPageState extends State { if (state) { try { await platform.invokeMethod('startLocationService', { - 'location-updates-interval': _locationInterval.inSeconds, + 'location-updates-interval': _locationInterval.inMilliseconds, 'location-updates-priority': _accuracy, 'location-updates-show-notification': _showNotification });