From e041d9041b34145db0ab9020c7ed54a93b76dd6b Mon Sep 17 00:00:00 2001 From: srikanth r Date: Fri, 4 Aug 2017 23:01:41 +0530 Subject: [PATCH 1/7] Implemented cancel to reminders of habits. --- .../uhabits/intents/PendingIntentFactory.kt | 9 +++++++++ .../notifications/AndroidNotificationTray.kt | 8 ++++++++ .../isoron/uhabits/receivers/WidgetReceiver.java | 8 ++++++++ .../main/res/drawable-hdpi/ic_action_cancel.png | Bin 0 -> 266 bytes .../main/res/drawable-mdpi/ic_action_cancel.png | Bin 0 -> 198 bytes .../main/res/drawable-xhdpi/ic_action_cancel.png | Bin 0 -> 323 bytes .../main/res/drawable-xxhdpi/ic_action_cancel.png | Bin 0 -> 531 bytes .../uhabits/core/ui/widgets/WidgetBehavior.java | 6 ++++++ 8 files changed, 31 insertions(+) create mode 100644 uhabits-android/src/main/res/drawable-hdpi/ic_action_cancel.png create mode 100644 uhabits-android/src/main/res/drawable-mdpi/ic_action_cancel.png create mode 100644 uhabits-android/src/main/res/drawable-xhdpi/ic_action_cancel.png create mode 100644 uhabits-android/src/main/res/drawable-xxhdpi/ic_action_cancel.png diff --git a/uhabits-android/src/main/java/org/isoron/uhabits/intents/PendingIntentFactory.kt b/uhabits-android/src/main/java/org/isoron/uhabits/intents/PendingIntentFactory.kt index 2758ba934..5a8d42936 100644 --- a/uhabits-android/src/main/java/org/isoron/uhabits/intents/PendingIntentFactory.kt +++ b/uhabits-android/src/main/java/org/isoron/uhabits/intents/PendingIntentFactory.kt @@ -54,6 +54,15 @@ class PendingIntentFactory }, FLAG_UPDATE_CURRENT) + fun cancelNotification(habit: Habit): PendingIntent = + PendingIntent.getBroadcast( + context, 3, + Intent(context, WidgetReceiver::class.java).apply { + action = WidgetReceiver.ACTION_CANCEL_REPETITION + data = Uri.parse(habit.uriString) + }, + FLAG_UPDATE_CURRENT) + fun showHabit(habit: Habit): PendingIntent = android.support.v4.app.TaskStackBuilder .create(context) diff --git a/uhabits-android/src/main/java/org/isoron/uhabits/notifications/AndroidNotificationTray.kt b/uhabits-android/src/main/java/org/isoron/uhabits/notifications/AndroidNotificationTray.kt index 1a13d417f..e269df6cb 100644 --- a/uhabits-android/src/main/java/org/isoron/uhabits/notifications/AndroidNotificationTray.kt +++ b/uhabits-android/src/main/java/org/isoron/uhabits/notifications/AndroidNotificationTray.kt @@ -61,6 +61,12 @@ class AndroidNotificationTray context.getString(R.string.snooze), pendingIntents.snoozeNotification(habit)) + val cancelAction = Action( + R.drawable.ic_action_cancel, + context.getString(android.R.string.no), + pendingIntents.cancelNotification(habit) + ) + val wearableBg = decodeResource(context.resources, R.drawable.stripe) // Even though the set of actions is the same on the phone and @@ -70,6 +76,7 @@ class AndroidNotificationTray .setBackground(wearableBg) .addAction(checkAction) .addAction(snoozeAction) + .addAction(cancelAction) val notification = NotificationCompat.Builder(context) .setSmallIcon(R.drawable.ic_notification) @@ -79,6 +86,7 @@ class AndroidNotificationTray .setDeleteIntent(pendingIntents.dismissNotification(habit)) .addAction(checkAction) .addAction(snoozeAction) + .addAction(cancelAction) .setSound(ringtoneManager.getURI()) .extend(wearableExtender) .setWhen(reminderTime) diff --git a/uhabits-android/src/main/java/org/isoron/uhabits/receivers/WidgetReceiver.java b/uhabits-android/src/main/java/org/isoron/uhabits/receivers/WidgetReceiver.java index 7074224e8..9f98bd191 100644 --- a/uhabits-android/src/main/java/org/isoron/uhabits/receivers/WidgetReceiver.java +++ b/uhabits-android/src/main/java/org/isoron/uhabits/receivers/WidgetReceiver.java @@ -46,6 +46,9 @@ public class WidgetReceiver extends BroadcastReceiver public static final String ACTION_REMOVE_REPETITION = "org.isoron.uhabits.ACTION_REMOVE_REPETITION"; + public static final String ACTION_CANCEL_REPETITION = + "org.isoron.uhabits.ACTION_CANCEL_REPETITION"; + public static final String ACTION_TOGGLE_REPETITION = "org.isoron.uhabits.ACTION_TOGGLE_REPETITION"; @@ -88,6 +91,11 @@ public class WidgetReceiver extends BroadcastReceiver controller.onRemoveRepetition(data.getHabit(), data.getTimestamp()); break; + + case ACTION_CANCEL_REPETITION: + controller.onCancelRepetition(data.getHabit(), + data.getTimestamp()); + break; } } catch (RuntimeException e) diff --git a/uhabits-android/src/main/res/drawable-hdpi/ic_action_cancel.png b/uhabits-android/src/main/res/drawable-hdpi/ic_action_cancel.png new file mode 100644 index 0000000000000000000000000000000000000000..374fc6fc0d86b48017197db225217f0bf7ffb7b5 GIT binary patch literal 266 zcmV+l0rmcgP)wdAb70#le3)R_UzmN0Q6q0t&9QBuhSYHQEr?y1tr#BVmb zHcZfb`&5&u3MGA;ip&)Khi=lP$DkIi|Im@3g3v$FC$HCRTW9HaxmOHp@ammd5!K5dX1VahO+0asTPU*P*_oB5vBm}WXRV9e@lNt#qQ&!hJcnIX yGRjU|o;A%yXrAcdyRENl-ZULq_x|DWuS~1%wLOY;eRUD&Fa}RoKbLh*2~7aLE>hqC literal 0 HcmV?d00001 diff --git a/uhabits-android/src/main/res/drawable-xhdpi/ic_action_cancel.png b/uhabits-android/src/main/res/drawable-xhdpi/ic_action_cancel.png new file mode 100644 index 0000000000000000000000000000000000000000..dbd10906c98145ac66e6aa0ddbf8a75e1c57a3c3 GIT binary patch literal 323 zcmV-J0lfZ+P)c=K!vDFrqV-m%SUtywr@n1}ov9KFW zxW5!1Sy;C0q$NHnc1Vd|dd|DzClPzYro;|)@f_JnOT6U_fRYOveMxbCPl$^zW)d8! zQq2Tso>wtJ&5xY%U?Fx4IStfQXUM#k**s}}2Y$^i)0000W#~uA} Vg-Jr&F;D;i002ovPDHLkV1iXP)NLv1@zA{!f}MHcyUcGLxzT z0000000000006)PA;eRnb?a1XFWKZ)#zn?U0yzg6XBlg%ayBwP#UHnrl9ZfIt$mg8 zO!4GAss1$c2fVV|AX|<7_K{1m_^*<*I)}fU5RwdX zI(Bj_?<6Zp7INB(GluLoTTB}2oZoDf!^^8v31E}Tb9%#HB#CXE6G2j=>YOr8j$?Mq zCzS`1RJI%kN#)5INV?C+;a}$jeDRFdbfYR~E|mxGC*>liJV_QsV9dzH3;Zf-AS?MR;)^ZR6{*BlGNufA1Q`ns2O literal 0 HcmV?d00001 diff --git a/uhabits-core/src/main/java/org/isoron/uhabits/core/ui/widgets/WidgetBehavior.java b/uhabits-core/src/main/java/org/isoron/uhabits/core/ui/widgets/WidgetBehavior.java index 1f9500123..4615a2487 100644 --- a/uhabits-core/src/main/java/org/isoron/uhabits/core/ui/widgets/WidgetBehavior.java +++ b/uhabits-core/src/main/java/org/isoron/uhabits/core/ui/widgets/WidgetBehavior.java @@ -61,6 +61,12 @@ public class WidgetBehavior performToggle(habit, timestamp); } + public void onCancelRepetition(@NonNull Habit habit, Timestamp timestamp) + { + onRemoveRepetition(habit, timestamp); + notificationTray.cancel(habit); + } + public void onToggleRepetition(@NonNull Habit habit, Timestamp timestamp) { performToggle(habit, timestamp); From 87cf2871a7e98c3d8d153f56cd43e725aeea7ab9 Mon Sep 17 00:00:00 2001 From: TruffelNL <16107161+TruffelNL@users.noreply.github.com> Date: Tue, 15 Aug 2017 23:02:58 +0200 Subject: [PATCH 2/7] Added bundled notifications Added bundled/grouped/stacked notifications as per https://github.com/iSoron/uhabits/issues/243 --- .../notifications/AndroidNotificationTray.kt | 52 ++++++++++++++++--- 1 file changed, 45 insertions(+), 7 deletions(-) diff --git a/uhabits-android/src/main/java/org/isoron/uhabits/notifications/AndroidNotificationTray.kt b/uhabits-android/src/main/java/org/isoron/uhabits/notifications/AndroidNotificationTray.kt index 1a13d417f..054b41ec1 100644 --- a/uhabits-android/src/main/java/org/isoron/uhabits/notifications/AndroidNotificationTray.kt +++ b/uhabits-android/src/main/java/org/isoron/uhabits/notifications/AndroidNotificationTray.kt @@ -22,6 +22,7 @@ package org.isoron.uhabits.notifications import android.app.* import android.content.* import android.graphics.BitmapFactory.* +import android.support.annotation.NonNull import android.support.v4.app.* import android.support.v4.app.NotificationCompat.* import org.isoron.androidbase.* @@ -40,16 +41,44 @@ class AndroidNotificationTray private val pendingIntents: PendingIntentFactory, private val preferences: Preferences, private val ringtoneManager: RingtoneManager + ) : NotificationTray.SystemTray { - override fun removeNotification(id: Int) { + val generalLoopNotificationGroup = "generalLoopHabitsNotificationGroup" + + var summaryShown = false + + override fun removeNotification(id: Int) + { NotificationManagerCompat.from(context).cancel(id) } override fun showNotification(habit: Habit, notificationId: Int, timestamp: Timestamp, - reminderTime: Long) { + reminderTime: Long) + { + val notificationManager = NotificationManagerCompat.from(context) + + if(! summaryShown) + { + val summary = buildSummary(reminderTime) + + notificationManager.notify(Int.MAX_VALUE, summary) + + summaryShown = true + } + + val notification = buildNotification(habit, reminderTime, timestamp) + + notificationManager.notify(notificationId, notification) + } + + @NonNull + fun buildNotification(@NonNull habit: Habit, + @NonNull reminderTime: Long, + @NonNull timestamp: Timestamp) : Notification + { val checkAction = Action( R.drawable.ic_action_check, @@ -71,7 +100,7 @@ class AndroidNotificationTray .addAction(checkAction) .addAction(snoozeAction) - val notification = NotificationCompat.Builder(context) + return NotificationCompat.Builder(context) .setSmallIcon(R.drawable.ic_notification) .setContentTitle(habit.name) .setContentText(habit.description) @@ -84,11 +113,20 @@ class AndroidNotificationTray .setWhen(reminderTime) .setShowWhen(true) .setOngoing(preferences.shouldMakeNotificationsSticky()) + .setGroup(generalLoopNotificationGroup) .build() + } - val notificationManager = context.getSystemService( - Activity.NOTIFICATION_SERVICE) as NotificationManager - - notificationManager.notify(notificationId, notification) + @NonNull + fun buildSummary(@NonNull reminderTime: Long) : Notification + { + return NotificationCompat.Builder(context) + .setSmallIcon(R.drawable.ic_notification) + .setContentTitle(context.getString(R.string.app_name)) + .setWhen(reminderTime) + .setShowWhen(true) + .setGroup(generalLoopNotificationGroup) + .setGroupSummary(true) + .build() } } From 1c2abb543bc360428e6d1006610d21c52b6453de Mon Sep 17 00:00:00 2001 From: TruffelNL <16107161+TruffelNL@users.noreply.github.com> Date: Tue, 15 Aug 2017 23:09:19 +0200 Subject: [PATCH 3/7] Added private variables --- .../isoron/uhabits/notifications/AndroidNotificationTray.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/uhabits-android/src/main/java/org/isoron/uhabits/notifications/AndroidNotificationTray.kt b/uhabits-android/src/main/java/org/isoron/uhabits/notifications/AndroidNotificationTray.kt index 054b41ec1..cb267326a 100644 --- a/uhabits-android/src/main/java/org/isoron/uhabits/notifications/AndroidNotificationTray.kt +++ b/uhabits-android/src/main/java/org/isoron/uhabits/notifications/AndroidNotificationTray.kt @@ -44,9 +44,9 @@ class AndroidNotificationTray ) : NotificationTray.SystemTray { - val generalLoopNotificationGroup = "generalLoopHabitsNotificationGroup" + private val generalLoopNotificationGroup = "generalLoopHabitsNotificationGroup" - var summaryShown = false + private var summaryShown = false override fun removeNotification(id: Int) { From f6620be2d9a5633d2a27cfed96f813a6923fcf49 Mon Sep 17 00:00:00 2001 From: TruffelNL <16107161+TruffelNL@users.noreply.github.com> Date: Tue, 15 Aug 2017 23:44:41 +0200 Subject: [PATCH 4/7] Removed an if statement Removed the check if a summary was already shown. --- .../uhabits/notifications/AndroidNotificationTray.kt | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/uhabits-android/src/main/java/org/isoron/uhabits/notifications/AndroidNotificationTray.kt b/uhabits-android/src/main/java/org/isoron/uhabits/notifications/AndroidNotificationTray.kt index cb267326a..5240605bb 100644 --- a/uhabits-android/src/main/java/org/isoron/uhabits/notifications/AndroidNotificationTray.kt +++ b/uhabits-android/src/main/java/org/isoron/uhabits/notifications/AndroidNotificationTray.kt @@ -46,8 +46,6 @@ class AndroidNotificationTray private val generalLoopNotificationGroup = "generalLoopHabitsNotificationGroup" - private var summaryShown = false - override fun removeNotification(id: Int) { NotificationManagerCompat.from(context).cancel(id) @@ -60,14 +58,9 @@ class AndroidNotificationTray { val notificationManager = NotificationManagerCompat.from(context) - if(! summaryShown) - { - val summary = buildSummary(reminderTime) - - notificationManager.notify(Int.MAX_VALUE, summary) + val summary = buildSummary(reminderTime) - summaryShown = true - } + notificationManager.notify(Int.MAX_VALUE, summary) val notification = buildNotification(habit, reminderTime, timestamp) From b1c2ab90d3d86eee0064b4c9f982dedd3dd834a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lubo=C5=A1=20Lu=C5=88=C3=A1k?= Date: Thu, 28 Sep 2017 12:06:43 +0200 Subject: [PATCH 5/7] synchronize HabitList properly When the app is not running and ReminderReceiver receives ACTION_SHOW_REMINDER, the (SQLite)HabitList will start loading its data in the background for some reason, and if the loading takes a moment, ReminderReceiver will call the unsynchronized HabitList.getById() before the loading finishes, failing to find the habit for which to show the notification. --- .../core/models/memory/MemoryHabitList.java | 8 ++++---- .../core/models/sqlite/SQLiteHabitList.java | 18 +++++++++--------- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/uhabits-core/src/main/java/org/isoron/uhabits/core/models/memory/MemoryHabitList.java b/uhabits-core/src/main/java/org/isoron/uhabits/core/models/memory/MemoryHabitList.java index 5e2727114..c1d05f517 100644 --- a/uhabits-core/src/main/java/org/isoron/uhabits/core/models/memory/MemoryHabitList.java +++ b/uhabits-core/src/main/java/org/isoron/uhabits/core/models/memory/MemoryHabitList.java @@ -155,14 +155,14 @@ public class MemoryHabitList extends HabitList } @Override - public int indexOf(@NonNull Habit h) + public synchronized int indexOf(@NonNull Habit h) { return list.indexOf(h); } @NonNull @Override - public Iterator iterator() + public synchronized Iterator iterator() { return Collections.unmodifiableCollection(list).iterator(); } @@ -200,13 +200,13 @@ public class MemoryHabitList extends HabitList } @Override - public int size() + public synchronized int size() { return list.size(); } @Override - public void update(List habits) + public synchronized void update(List habits) { resort(); getObservable().notifyListeners(); diff --git a/uhabits-core/src/main/java/org/isoron/uhabits/core/models/sqlite/SQLiteHabitList.java b/uhabits-core/src/main/java/org/isoron/uhabits/core/models/sqlite/SQLiteHabitList.java index bb16e1f49..ab086cff5 100644 --- a/uhabits-core/src/main/java/org/isoron/uhabits/core/models/sqlite/SQLiteHabitList.java +++ b/uhabits-core/src/main/java/org/isoron/uhabits/core/models/sqlite/SQLiteHabitList.java @@ -91,7 +91,7 @@ public class SQLiteHabitList extends HabitList @Override @Nullable - public Habit getById(long id) + public synchronized Habit getById(long id) { loadRecords(); return list.getById(id); @@ -99,7 +99,7 @@ public class SQLiteHabitList extends HabitList @Override @NonNull - public Habit getByPosition(int position) + public synchronized Habit getByPosition(int position) { loadRecords(); return list.getByPosition(position); @@ -107,7 +107,7 @@ public class SQLiteHabitList extends HabitList @NonNull @Override - public HabitList getFiltered(HabitMatcher filter) + public synchronized HabitList getFiltered(HabitMatcher filter) { loadRecords(); return list.getFiltered(filter); @@ -121,21 +121,21 @@ public class SQLiteHabitList extends HabitList } @Override - public void setOrder(@NonNull Order order) + public synchronized void setOrder(@NonNull Order order) { list.setOrder(order); getObservable().notifyListeners(); } @Override - public int indexOf(@NonNull Habit h) + public synchronized int indexOf(@NonNull Habit h) { loadRecords(); return list.indexOf(h); } @Override - public Iterator iterator() + public synchronized Iterator iterator() { loadRecords(); return list.iterator(); @@ -214,7 +214,7 @@ public class SQLiteHabitList extends HabitList } @Override - public void repair() + public synchronized void repair() { loadRecords(); rebuildOrder(); @@ -222,7 +222,7 @@ public class SQLiteHabitList extends HabitList } @Override - public int size() + public synchronized int size() { loadRecords(); return list.size(); @@ -245,7 +245,7 @@ public class SQLiteHabitList extends HabitList getObservable().notifyListeners(); } - public void reload() + public synchronized void reload() { loaded = false; } From 7613e6e1cb3223da4706e8840f0a43d52e0a422d Mon Sep 17 00:00:00 2001 From: Alinson Xavier Date: Sun, 29 Oct 2017 14:42:41 -0500 Subject: [PATCH 6/7] Update to Android Studio 3.0 stable --- build.gradle | 2 +- gradle.properties | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/build.gradle b/build.gradle index b21b92ae7..6692adb1e 100644 --- a/build.gradle +++ b/build.gradle @@ -5,7 +5,7 @@ buildscript { } dependencies { - classpath 'com.android.tools.build:gradle:3.0.0-beta6' + classpath 'com.android.tools.build:gradle:3.0.0' classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8' classpath 'com.getkeepsafe.dexcount:dexcount-gradle-plugin:0.6.4' classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8' diff --git a/gradle.properties b/gradle.properties index bc47317b6..9e3278641 100644 --- a/gradle.properties +++ b/gradle.properties @@ -6,7 +6,7 @@ TARGET_SDK_VERSION = 25 COMPILE_SDK_VERSION = 25 DAGGER_VERSION = 2.9 -BUILD_TOOLS_VERSION = 26.0.0 +BUILD_TOOLS_VERSION = 26.0.2 KOTLIN_VERSION = 1.1.2-4 SUPPORT_LIBRARY_VERSION = 25.3.1 From 9d48b4bcdbb1f177fc06e439a9bce2fbab3c0b28 Mon Sep 17 00:00:00 2001 From: Alinson Xavier Date: Tue, 14 Nov 2017 22:07:52 -0600 Subject: [PATCH 7/7] Simplify code; change notification actions to Yes/No/Later --- .../uhabits/intents/PendingIntentFactory.kt | 4 ++-- .../notifications/AndroidNotificationTray.kt | 18 +++++++++--------- .../uhabits/receivers/WidgetReceiver.java | 8 -------- .../src/main/res/values/strings.xml | 2 ++ .../core/ui/widgets/WidgetBehavior.java | 9 ++------- 5 files changed, 15 insertions(+), 26 deletions(-) diff --git a/uhabits-android/src/main/java/org/isoron/uhabits/intents/PendingIntentFactory.kt b/uhabits-android/src/main/java/org/isoron/uhabits/intents/PendingIntentFactory.kt index 5a8d42936..b60904840 100644 --- a/uhabits-android/src/main/java/org/isoron/uhabits/intents/PendingIntentFactory.kt +++ b/uhabits-android/src/main/java/org/isoron/uhabits/intents/PendingIntentFactory.kt @@ -54,11 +54,11 @@ class PendingIntentFactory }, FLAG_UPDATE_CURRENT) - fun cancelNotification(habit: Habit): PendingIntent = + fun removeRepetition(habit: Habit): PendingIntent = PendingIntent.getBroadcast( context, 3, Intent(context, WidgetReceiver::class.java).apply { - action = WidgetReceiver.ACTION_CANCEL_REPETITION + action = WidgetReceiver.ACTION_REMOVE_REPETITION data = Uri.parse(habit.uriString) }, FLAG_UPDATE_CURRENT) diff --git a/uhabits-android/src/main/java/org/isoron/uhabits/notifications/AndroidNotificationTray.kt b/uhabits-android/src/main/java/org/isoron/uhabits/notifications/AndroidNotificationTray.kt index b20e88690..15abc403f 100644 --- a/uhabits-android/src/main/java/org/isoron/uhabits/notifications/AndroidNotificationTray.kt +++ b/uhabits-android/src/main/java/org/isoron/uhabits/notifications/AndroidNotificationTray.kt @@ -66,9 +66,9 @@ class AndroidNotificationTray @NonNull timestamp: Timestamp) : Notification { - val checkAction = Action( + val addRepetitionAction = Action( R.drawable.ic_action_check, - context.getString(R.string.check), + context.getString(R.string.yes), pendingIntents.addCheckmark(habit, timestamp)) val snoozeAction = Action( @@ -76,10 +76,10 @@ class AndroidNotificationTray context.getString(R.string.snooze), pendingIntents.snoozeNotification(habit)) - val cancelAction = Action( + val removeRepetitionAction = Action( R.drawable.ic_action_cancel, - context.getString(android.R.string.no), - pendingIntents.cancelNotification(habit) + context.getString(R.string.no), + pendingIntents.removeRepetition(habit) ) val wearableBg = decodeResource(context.resources, R.drawable.stripe) @@ -89,9 +89,9 @@ class AndroidNotificationTray // WearableExtender. val wearableExtender = WearableExtender() .setBackground(wearableBg) - .addAction(checkAction) + .addAction(addRepetitionAction) + .addAction(removeRepetitionAction) .addAction(snoozeAction) - .addAction(cancelAction) val builder = NotificationCompat.Builder(context) .setSmallIcon(R.drawable.ic_notification) @@ -99,9 +99,9 @@ class AndroidNotificationTray .setContentText(habit.description) .setContentIntent(pendingIntents.showHabit(habit)) .setDeleteIntent(pendingIntents.dismissNotification(habit)) - .addAction(checkAction) + .addAction(addRepetitionAction) + .addAction(removeRepetitionAction) .addAction(snoozeAction) - .addAction(cancelAction) .setSound(ringtoneManager.getURI()) .extend(wearableExtender) .setWhen(reminderTime) diff --git a/uhabits-android/src/main/java/org/isoron/uhabits/receivers/WidgetReceiver.java b/uhabits-android/src/main/java/org/isoron/uhabits/receivers/WidgetReceiver.java index 9f98bd191..7074224e8 100644 --- a/uhabits-android/src/main/java/org/isoron/uhabits/receivers/WidgetReceiver.java +++ b/uhabits-android/src/main/java/org/isoron/uhabits/receivers/WidgetReceiver.java @@ -46,9 +46,6 @@ public class WidgetReceiver extends BroadcastReceiver public static final String ACTION_REMOVE_REPETITION = "org.isoron.uhabits.ACTION_REMOVE_REPETITION"; - public static final String ACTION_CANCEL_REPETITION = - "org.isoron.uhabits.ACTION_CANCEL_REPETITION"; - public static final String ACTION_TOGGLE_REPETITION = "org.isoron.uhabits.ACTION_TOGGLE_REPETITION"; @@ -91,11 +88,6 @@ public class WidgetReceiver extends BroadcastReceiver controller.onRemoveRepetition(data.getHabit(), data.getTimestamp()); break; - - case ACTION_CANCEL_REPETITION: - controller.onCancelRepetition(data.getHabit(), - data.getTimestamp()); - break; } } catch (RuntimeException e) diff --git a/uhabits-android/src/main/res/values/strings.xml b/uhabits-android/src/main/res/values/strings.xml index 3ea1d2f76..bb89c2fab 100644 --- a/uhabits-android/src/main/res/values/strings.xml +++ b/uhabits-android/src/main/res/values/strings.xml @@ -217,4 +217,6 @@ e.g. Did you exercise today? Question Target + Yes + No \ No newline at end of file diff --git a/uhabits-core/src/main/java/org/isoron/uhabits/core/ui/widgets/WidgetBehavior.java b/uhabits-core/src/main/java/org/isoron/uhabits/core/ui/widgets/WidgetBehavior.java index 4615a2487..d3aa800af 100644 --- a/uhabits-core/src/main/java/org/isoron/uhabits/core/ui/widgets/WidgetBehavior.java +++ b/uhabits-core/src/main/java/org/isoron/uhabits/core/ui/widgets/WidgetBehavior.java @@ -48,25 +48,20 @@ public class WidgetBehavior public void onAddRepetition(@NonNull Habit habit, Timestamp timestamp) { + notificationTray.cancel(habit); Repetition rep = habit.getRepetitions().getByTimestamp(timestamp); if (rep != null) return; performToggle(habit, timestamp); - notificationTray.cancel(habit); } public void onRemoveRepetition(@NonNull Habit habit, Timestamp timestamp) { + notificationTray.cancel(habit); Repetition rep = habit.getRepetitions().getByTimestamp(timestamp); if (rep == null) return; performToggle(habit, timestamp); } - public void onCancelRepetition(@NonNull Habit habit, Timestamp timestamp) - { - onRemoveRepetition(habit, timestamp); - notificationTray.cancel(habit); - } - public void onToggleRepetition(@NonNull Habit habit, Timestamp timestamp) { performToggle(habit, timestamp);