From e816a02fdead21911faf574eb34d9a7ed49d69fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ensar=20Saraj=C4=8Di=C4=87?= Date: Mon, 7 Aug 2023 08:22:35 +0200 Subject: [PATCH] Simplify callbacks for handleFullScreenNotificationsPermission --- .../clock/dialogs/EditAlarmDialog.kt | 8 +------- .../clock/extensions/Activity.kt | 18 ++++++++++++++---- .../clock/fragments/AlarmFragment.kt | 13 +++---------- 3 files changed, 18 insertions(+), 21 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/clock/dialogs/EditAlarmDialog.kt b/app/src/main/kotlin/com/simplemobiletools/clock/dialogs/EditAlarmDialog.kt index 0677985a..e7f56da2 100644 --- a/app/src/main/kotlin/com/simplemobiletools/clock/dialogs/EditAlarmDialog.kt +++ b/app/src/main/kotlin/com/simplemobiletools/clock/dialogs/EditAlarmDialog.kt @@ -19,7 +19,6 @@ import com.simplemobiletools.clock.helpers.TOMORROW_BIT import com.simplemobiletools.clock.helpers.getCurrentDayMinutes import com.simplemobiletools.clock.models.Alarm import com.simplemobiletools.commons.dialogs.ConfirmationDialog -import com.simplemobiletools.commons.dialogs.PermissionRequiredDialog import com.simplemobiletools.commons.dialogs.SelectAlarmSoundDialog import com.simplemobiletools.commons.extensions.* import com.simplemobiletools.commons.models.AlarmSound @@ -159,7 +158,7 @@ class EditAlarmDialog(val activity: SimpleActivity, val alarm: Alarm, val callba alarm.isEnabled = true var alarmId = alarm.id - activity.handleFullScreenNotificationsPermission { granted, _ -> + activity.handleFullScreenNotificationsPermission { granted -> if (granted) { if (alarm.id == 0) { alarmId = activity.dbHelper.insertAlarm(alarm) @@ -175,11 +174,6 @@ class EditAlarmDialog(val activity: SimpleActivity, val alarm: Alarm, val callba activity.config.alarmLastConfig = alarm callback(alarmId) alertDialog.dismiss() - } else { - PermissionRequiredDialog( - activity, - com.simplemobiletools.commons.R.string.allow_notifications_reminders, - { activity.openNotificationSettings() }) } } } diff --git a/app/src/main/kotlin/com/simplemobiletools/clock/extensions/Activity.kt b/app/src/main/kotlin/com/simplemobiletools/clock/extensions/Activity.kt index b7de4937..f3ec893b 100644 --- a/app/src/main/kotlin/com/simplemobiletools/clock/extensions/Activity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/clock/extensions/Activity.kt @@ -5,14 +5,15 @@ import com.simplemobiletools.commons.activities.BaseSimpleActivity import com.simplemobiletools.commons.dialogs.PermissionRequiredDialog import com.simplemobiletools.commons.extensions.canUseFullScreenIntent import com.simplemobiletools.commons.extensions.openFullScreenIntentSettings +import com.simplemobiletools.commons.extensions.openNotificationSettings fun BaseSimpleActivity.handleFullScreenNotificationsPermission( - notificationsCallback: (granted: Boolean, fullScreenGranted: Boolean) -> Unit, + notificationsCallback: (granted: Boolean) -> Unit, ) { handleNotificationPermission { granted -> if (granted) { if (canUseFullScreenIntent()) { - notificationsCallback(true, true) + notificationsCallback(true) } else { PermissionRequiredDialog( activity = this, @@ -21,12 +22,21 @@ fun BaseSimpleActivity.handleFullScreenNotificationsPermission( openFullScreenIntentSettings(BuildConfig.APPLICATION_ID) }, negativeActionCallback = { - notificationsCallback(true, false) + notificationsCallback(false) } ) } } else { - notificationsCallback(false, false) + PermissionRequiredDialog( + activity = this, + textId = com.simplemobiletools.commons.R.string.allow_notifications_reminders, + positiveActionCallback = { + openNotificationSettings() + }, + negativeActionCallback = { + notificationsCallback(false) + } + ) } } } diff --git a/app/src/main/kotlin/com/simplemobiletools/clock/fragments/AlarmFragment.kt b/app/src/main/kotlin/com/simplemobiletools/clock/fragments/AlarmFragment.kt index daee1629..ea70e656 100644 --- a/app/src/main/kotlin/com/simplemobiletools/clock/fragments/AlarmFragment.kt +++ b/app/src/main/kotlin/com/simplemobiletools/clock/fragments/AlarmFragment.kt @@ -15,9 +15,7 @@ import com.simplemobiletools.clock.extensions.* import com.simplemobiletools.clock.helpers.* import com.simplemobiletools.clock.interfaces.ToggleAlarmInterface import com.simplemobiletools.clock.models.Alarm -import com.simplemobiletools.commons.dialogs.PermissionRequiredDialog import com.simplemobiletools.commons.extensions.getProperTextColor -import com.simplemobiletools.commons.extensions.openNotificationSettings import com.simplemobiletools.commons.extensions.toast import com.simplemobiletools.commons.extensions.updateTextColors import com.simplemobiletools.commons.helpers.SORT_BY_DATE_CREATED @@ -124,8 +122,8 @@ class AlarmFragment : Fragment(), ToggleAlarmInterface { } override fun alarmToggled(id: Int, isEnabled: Boolean) { - (activity as SimpleActivity).handleFullScreenNotificationsPermission { granted, fullScreenGranted -> - if (granted && fullScreenGranted) { + (activity as SimpleActivity).handleFullScreenNotificationsPermission { granted -> + if (granted) { if (requireContext().dbHelper.updateAlarmEnabledState(id, isEnabled)) { val alarm = alarms.firstOrNull { it.id == id } ?: return@handleFullScreenNotificationsPermission alarm.isEnabled = isEnabled @@ -134,13 +132,8 @@ class AlarmFragment : Fragment(), ToggleAlarmInterface { requireActivity().toast(com.simplemobiletools.commons.R.string.unknown_error_occurred) } requireContext().updateWidgets() - } else if (!fullScreenGranted) { - setupAlarms() } else { - PermissionRequiredDialog( - activity as SimpleActivity, - com.simplemobiletools.commons.R.string.allow_notifications_reminders, - { (activity as SimpleActivity).openNotificationSettings() }) + setupAlarms() } } }