From 3b475642cec2ca693265ff57d69bc55b49791f3b Mon Sep 17 00:00:00 2001 From: Naveen Singh Date: Mon, 17 Mar 2025 21:32:28 +0530 Subject: [PATCH] Always clear expired alarms Same issue as 7d35b0413ca6f550bcd5990b5062c10fb6468fb3. Original code relied on the scheduled alarms returned by the system as a filter but the updated code by https://github.com/SimpleMobileTools/Simple-Clock/pull/469 clears/disables expired alarms when there are no enabled alarms which doesn't make much sense. One can not disable already disabled alarms --- .../fossify/clock/fragments/AlarmFragment.kt | 41 ++++++++++--------- 1 file changed, 21 insertions(+), 20 deletions(-) diff --git a/app/src/main/kotlin/org/fossify/clock/fragments/AlarmFragment.kt b/app/src/main/kotlin/org/fossify/clock/fragments/AlarmFragment.kt index 6b8c516d..2464b361 100644 --- a/app/src/main/kotlin/org/fossify/clock/fragments/AlarmFragment.kt +++ b/app/src/main/kotlin/org/fossify/clock/fragments/AlarmFragment.kt @@ -105,26 +105,8 @@ class AlarmFragment : Fragment(), ToggleAlarmInterface { } } } - context?.getEnabledAlarms { enabledAlarms -> - if (enabledAlarms.isNullOrEmpty()) { - val removedAlarms = mutableListOf() - alarms.forEach { - if (it.days == TODAY_BIT && it.isEnabled && it.timeInMinutes <= getCurrentDayMinutes()) { - it.isEnabled = false - ensureBackgroundThread { - if (it.oneShot) { - it.isEnabled = false - context?.dbHelper?.deleteAlarms(arrayListOf(it)) - removedAlarms.add(it) - } else { - context?.dbHelper?.updateAlarmEnabledState(it.id, false) - } - } - } - } - alarms.removeAll(removedAlarms) - } - } + + clearExpiredAlarms() val currAdapter = binding.alarmsList.adapter if (currAdapter == null) { @@ -143,6 +125,25 @@ class AlarmFragment : Fragment(), ToggleAlarmInterface { } } + private fun clearExpiredAlarms() { + val removedAlarms = mutableListOf() + alarms.forEach { + if (it.days == TODAY_BIT && it.isEnabled && it.timeInMinutes <= getCurrentDayMinutes()) { + it.isEnabled = false + ensureBackgroundThread { + if (it.oneShot) { + it.isEnabled = false + context?.dbHelper?.deleteAlarms(arrayListOf(it)) + removedAlarms.add(it) + } else { + context?.dbHelper?.updateAlarmEnabledState(it.id, false) + } + } + } + } + alarms.removeAll(removedAlarms) + } + private fun openEditAlarm(alarm: Alarm) { currentEditAlarmDialog = EditAlarmDialog(activity as SimpleActivity, alarm) { alarm.id = it