mirror of
https://github.com/iSoron/uhabits.git
synced 2025-12-06 01:08:50 -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) {
|
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) {
|
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 {
|
interface SystemTray {
|
||||||
fun removeNotification(notificationId: Int)
|
fun removeNotification(notificationId: Int)
|
||||||
fun showNotification(
|
fun showNotification(
|
||||||
|
|||||||
Reference in New Issue
Block a user