From a39e29a2307e5f632c25e8e45ea98636f43294db Mon Sep 17 00:00:00 2001 From: Alex Baker Date: Thu, 12 Mar 2020 14:29:31 -0500 Subject: [PATCH] Add geofence and geofence api overloads --- .../java/org/tasks/location/GeofenceApi.java | 8 +++++--- app/src/main/java/org/tasks/data/Geofence.java | 12 ++++++++++++ .../main/java/org/tasks/ui/LocationControlSet.java | 11 ++--------- 3 files changed, 19 insertions(+), 12 deletions(-) diff --git a/app/src/googleplay/java/org/tasks/location/GeofenceApi.java b/app/src/googleplay/java/org/tasks/location/GeofenceApi.java index 269e8d585..4f95d4337 100644 --- a/app/src/googleplay/java/org/tasks/location/GeofenceApi.java +++ b/app/src/googleplay/java/org/tasks/location/GeofenceApi.java @@ -7,7 +7,6 @@ import static com.google.common.collect.Lists.newArrayList; import static com.google.common.collect.Lists.transform; import static java.util.Collections.singletonList; -import android.annotation.SuppressLint; import android.app.PendingIntent; import android.content.Context; import android.content.Intent; @@ -46,8 +45,11 @@ public class GeofenceApi { register(locationDao.getActiveGeofences(taskId)); } - @SuppressLint("MissingPermission") - public void register(final List locations) { + public void register(Location location) { + register(singletonList(location)); + } + + private void register(final List locations) { if (!permissionChecker.canAccessLocation()) { return; } diff --git a/app/src/main/java/org/tasks/data/Geofence.java b/app/src/main/java/org/tasks/data/Geofence.java index 4fa30a5b8..79c7bdaeb 100644 --- a/app/src/main/java/org/tasks/data/Geofence.java +++ b/app/src/main/java/org/tasks/data/Geofence.java @@ -13,6 +13,8 @@ import com.todoroo.andlib.data.Property.LongProperty; import com.todoroo.andlib.data.Property.StringProperty; import com.todoroo.andlib.data.Table; import java.io.Serializable; +import org.tasks.R; +import org.tasks.preferences.Preferences; @Entity(tableName = TABLE_NAME, indices = @Index(name = "geo_task", value = "task")) public class Geofence implements Serializable, Parcelable { @@ -63,6 +65,16 @@ public class Geofence implements Serializable, Parcelable { this.task = task; } + @Ignore + public Geofence(String place, Preferences preferences) { + this.place = place; + int defaultReminders = + preferences.getIntegerFromString(R.string.p_default_location_reminder_key, 1); + arrival = defaultReminders == 1 || defaultReminders == 3; + departure = defaultReminders == 2 || defaultReminders == 3; + radius = preferences.getInt(R.string.p_default_location_radius, 250); + } + @Ignore public Geofence(String place, boolean arrival, boolean departure, int radius) { this.place = place; diff --git a/app/src/main/java/org/tasks/ui/LocationControlSet.java b/app/src/main/java/org/tasks/ui/LocationControlSet.java index 8fc05ca41..452aba260 100644 --- a/app/src/main/java/org/tasks/ui/LocationControlSet.java +++ b/app/src/main/java/org/tasks/ui/LocationControlSet.java @@ -261,7 +261,7 @@ public class LocationControlSet extends TaskEditControlFragment { geofence.setTask(task.getId()); geofence.setPlace(place.getUid()); geofence.setId(locationDao.insert(geofence)); - geofenceApi.register(Collections.singletonList(location)); + geofenceApi.register(location); } task.setModificationDate(DateUtilities.now()); } @@ -281,14 +281,7 @@ public class LocationControlSet extends TaskEditControlFragment { Place place = data.getParcelableExtra(EXTRA_PLACE); Geofence geofence; if (location == null) { - int defaultReminders = - preferences.getIntegerFromString(R.string.p_default_location_reminder_key, 1); - geofence = - new Geofence( - place.getUid(), - defaultReminders == 1 || defaultReminders == 3, - defaultReminders == 2 || defaultReminders == 3, - preferences.getInt(R.string.p_default_location_radius, 250)); + geofence = new Geofence(place.getUid(), preferences); } else { Geofence existing = location.geofence; geofence =