mirror of
https://github.com/iSoron/uhabits.git
synced 2025-12-05 16:58:52 -06:00
API 34: Implement workaround to keep sticky notifications non-dismissible
This commit is contained in:
@@ -66,7 +66,13 @@ class ReminderController @Inject constructor(
|
||||
}
|
||||
|
||||
fun onDismiss(habit: Habit) {
|
||||
notificationTray.cancel(habit)
|
||||
if (preferences.shouldMakeNotificationsSticky()) {
|
||||
// This is a workaround to keep sticky notifications non-dismissible in Android 14+.
|
||||
// If the notification is dismissed, we immediately reshow it.
|
||||
notificationTray.reshow(habit)
|
||||
} else {
|
||||
notificationTray.cancel(habit)
|
||||
}
|
||||
}
|
||||
|
||||
private fun showSnoozeDelayPicker(habit: Habit, context: Context) {
|
||||
|
||||
@@ -89,6 +89,12 @@ class NotificationTray @Inject constructor(
|
||||
}
|
||||
}
|
||||
|
||||
fun reshow(habit: Habit) {
|
||||
active[habit]?.let {
|
||||
taskRunner.execute(ShowNotificationTask(habit, it))
|
||||
}
|
||||
}
|
||||
|
||||
interface SystemTray {
|
||||
fun removeNotification(notificationId: Int)
|
||||
fun showNotification(
|
||||
|
||||
Reference in New Issue
Block a user