From 8543f2dafef1bff2282888593eb69fa4c80b9417 Mon Sep 17 00:00:00 2001 From: Rawlin C Date: Wed, 5 Jul 2023 14:05:58 +0530 Subject: [PATCH] Removed time formatting function to avoid code duplication --- .../clock/extensions/Context.kt | 1 - .../clock/helpers/Constants.kt | 1 - .../clock/receivers/DismissAlarmReceiver.kt | 2 +- .../receivers/EarlyAlarmDismissalReceiver.kt | 25 +++---------------- 4 files changed, 5 insertions(+), 24 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/clock/extensions/Context.kt b/app/src/main/kotlin/com/simplemobiletools/clock/extensions/Context.kt index 01864990..36c668ac 100644 --- a/app/src/main/kotlin/com/simplemobiletools/clock/extensions/Context.kt +++ b/app/src/main/kotlin/com/simplemobiletools/clock/extensions/Context.kt @@ -161,7 +161,6 @@ fun Context.setupAlarmClock(alarm: Alarm, triggerInSeconds: Int) { fun Context.getEarlyAlarmDismissalIntent(alarm: Alarm): PendingIntent { val intent = Intent(this, EarlyAlarmDismissalReceiver::class.java).apply { putExtra(ALARM_ID, alarm.id) - putExtra(ALARM_TIME, alarm.timeInMinutes) } return PendingIntent.getBroadcast(this, EARLY_ALARM_DISMISSAL_INTENT_ID, intent, PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE) } diff --git a/app/src/main/kotlin/com/simplemobiletools/clock/helpers/Constants.kt b/app/src/main/kotlin/com/simplemobiletools/clock/helpers/Constants.kt index ee86e317..bf13e055 100644 --- a/app/src/main/kotlin/com/simplemobiletools/clock/helpers/Constants.kt +++ b/app/src/main/kotlin/com/simplemobiletools/clock/helpers/Constants.kt @@ -27,7 +27,6 @@ const val TABS_COUNT = 4 const val EDITED_TIME_ZONE_SEPARATOR = ":" const val ALARM_ID = "alarm_id" const val NOTIFICATION_ID = "notification_id" -const val ALARM_TIME = "alarm_time" const val DEFAULT_ALARM_MINUTES = 480 const val DEFAULT_MAX_ALARM_REMINDER_SECS = 300 const val DEFAULT_MAX_TIMER_REMINDER_SECS = 60 diff --git a/app/src/main/kotlin/com/simplemobiletools/clock/receivers/DismissAlarmReceiver.kt b/app/src/main/kotlin/com/simplemobiletools/clock/receivers/DismissAlarmReceiver.kt index 7801719f..13f0f6e8 100644 --- a/app/src/main/kotlin/com/simplemobiletools/clock/receivers/DismissAlarmReceiver.kt +++ b/app/src/main/kotlin/com/simplemobiletools/clock/receivers/DismissAlarmReceiver.kt @@ -37,7 +37,7 @@ class DismissAlarmReceiver : BroadcastReceiver() { private fun scheduleNextAlarm(alarm: Alarm, context: Context) { val oldBitmask = alarm.days alarm.days = removeTodayFromBitmask(oldBitmask) - context.scheduleNextAlarm(alarm, true) + context.scheduleNextAlarm(alarm, false) alarm.days = oldBitmask } diff --git a/app/src/main/kotlin/com/simplemobiletools/clock/receivers/EarlyAlarmDismissalReceiver.kt b/app/src/main/kotlin/com/simplemobiletools/clock/receivers/EarlyAlarmDismissalReceiver.kt index faf7376c..b5fd5348 100644 --- a/app/src/main/kotlin/com/simplemobiletools/clock/receivers/EarlyAlarmDismissalReceiver.kt +++ b/app/src/main/kotlin/com/simplemobiletools/clock/receivers/EarlyAlarmDismissalReceiver.kt @@ -10,6 +10,7 @@ import android.text.format.DateFormat import androidx.core.app.NotificationCompat import com.simplemobiletools.clock.R import com.simplemobiletools.clock.extensions.getDismissAlarmPendingIntent +import com.simplemobiletools.clock.extensions.getNextAlarm import com.simplemobiletools.clock.extensions.getOpenAlarmTabIntent import com.simplemobiletools.clock.helpers.* import com.simplemobiletools.commons.helpers.isOreoPlus @@ -24,11 +25,10 @@ class EarlyAlarmDismissalReceiver : BroadcastReceiver() { return } - val alarmTime = intent.getIntExtra(ALARM_TIME, -1) - triggerEarlyDismissalNotification(context, alarmTime, alarmId) + triggerEarlyDismissalNotification(context, alarmId) } - private fun triggerEarlyDismissalNotification(context: Context, alarmTime: Int, alarmId: Int) { + private fun triggerEarlyDismissalNotification(context: Context, alarmId: Int) { val notificationManager = context.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager if (isOreoPlus()) { NotificationChannel(EARLY_ALARM_DISMISSAL_CHANNEL_ID, context.getString(R.string.early_alarm_dismissal), NotificationManager.IMPORTANCE_DEFAULT).apply { @@ -42,7 +42,7 @@ class EarlyAlarmDismissalReceiver : BroadcastReceiver() { val contentIntent = context.getOpenAlarmTabIntent() val notification = NotificationCompat.Builder(context) .setContentTitle(context.getString(R.string.upcoming_alarm)) - .setContentText(getNotificationTimeString(alarmTime, context)) + .setContentText(context.getNextAlarm()) .setSmallIcon(R.drawable.ic_alarm_vector) .setPriority(Notification.PRIORITY_LOW) .addAction(0, context.getString(R.string.dismiss), dismissIntent) @@ -55,21 +55,4 @@ class EarlyAlarmDismissalReceiver : BroadcastReceiver() { notificationManager.notify(EARLY_ALARM_NOTIF_ID, notification) } - /** - * Gets the time at which the alarm is going to fire. - * eg: "Sun 1:30 pm" - */ - private fun getNotificationTimeString(alarmTime: Int, context: Context): String { - val calendar = Calendar.getInstance() - val triggerTime = ((alarmTime - getCurrentDayMinutes()) * 60) - calendar.get(Calendar.SECOND) - val targetMs = System.currentTimeMillis() + (triggerTime * 1000) - val is24HourFormat = DateFormat.is24HourFormat(context) - val sdf = if (is24HourFormat) { - SimpleDateFormat("EEE HH:mm", Locale.getDefault()) - } else { - SimpleDateFormat("EEE h:mm a", Locale.getDefault()) - } - return sdf.format(Date(targetMs)) - } - }