From 7af2a25fa820862022d7dd83becdd31fe2529248 Mon Sep 17 00:00:00 2001 From: Rawlin C Date: Sun, 2 Jul 2023 17:03:01 +0530 Subject: [PATCH 01/14] Early dismissal of alarm --- app/src/main/AndroidManifest.xml | 4 ++ .../clock/extensions/Context.kt | 25 ++++++- .../clock/helpers/Constants.kt | 5 ++ .../simplemobiletools/clock/models/Alarm.kt | 12 +++- .../clock/receivers/AlarmReceiver.kt | 3 + .../clock/receivers/DismissAlarmReceiver.kt | 52 +++++++++++++++ .../receivers/EarlyAlarmDismissalReceiver.kt | 66 +++++++++++++++++++ app/src/main/res/values-ar/strings.xml | 4 +- app/src/main/res/values-az/strings.xml | 1 + app/src/main/res/values-be/strings.xml | 4 +- app/src/main/res/values-bg/strings.xml | 1 + app/src/main/res/values-ca/strings.xml | 4 +- app/src/main/res/values-cs/strings.xml | 4 +- app/src/main/res/values-cy/strings.xml | 2 + app/src/main/res/values-da/strings.xml | 1 + app/src/main/res/values-de/strings.xml | 4 +- app/src/main/res/values-el/strings.xml | 2 + app/src/main/res/values-eo/strings.xml | 1 + app/src/main/res/values-es/strings.xml | 4 +- app/src/main/res/values-et/strings.xml | 4 +- app/src/main/res/values-eu/strings.xml | 1 + app/src/main/res/values-fi/strings.xml | 4 +- app/src/main/res/values-fr/strings.xml | 4 +- app/src/main/res/values-gl/strings.xml | 4 +- app/src/main/res/values-hr/strings.xml | 4 +- app/src/main/res/values-hu/strings.xml | 4 +- app/src/main/res/values-in/strings.xml | 4 +- app/src/main/res/values-it/strings.xml | 4 +- app/src/main/res/values-iw/strings.xml | 2 + app/src/main/res/values-ja/strings.xml | 4 +- app/src/main/res/values-lt/strings.xml | 1 + app/src/main/res/values-ml/strings.xml | 4 +- app/src/main/res/values-nb-rNO/strings.xml | 4 +- app/src/main/res/values-nl/strings.xml | 4 +- app/src/main/res/values-pa-rPK/strings.xml | 1 + app/src/main/res/values-pl/strings.xml | 4 +- app/src/main/res/values-pt-rBR/strings.xml | 2 + app/src/main/res/values-pt/strings.xml | 4 +- app/src/main/res/values-ro/strings.xml | 2 + app/src/main/res/values-ru/strings.xml | 4 +- app/src/main/res/values-sk/strings.xml | 1 + app/src/main/res/values-sl/strings.xml | 2 + app/src/main/res/values-sr/strings.xml | 1 + app/src/main/res/values-sv/strings.xml | 4 +- app/src/main/res/values-th/strings.xml | 1 + app/src/main/res/values-tr/strings.xml | 4 +- app/src/main/res/values-uk/strings.xml | 4 +- app/src/main/res/values-zh-rCN/strings.xml | 4 +- app/src/main/res/values-zh-rTW/strings.xml | 1 + app/src/main/res/values/strings.xml | 1 + 50 files changed, 261 insertions(+), 30 deletions(-) create mode 100644 app/src/main/kotlin/com/simplemobiletools/clock/receivers/DismissAlarmReceiver.kt create mode 100644 app/src/main/kotlin/com/simplemobiletools/clock/receivers/EarlyAlarmDismissalReceiver.kt diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index e91f62f9..04e87a2f 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -124,6 +124,10 @@ + + + + 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 403cdf03..438f2d44 100644 --- a/app/src/main/kotlin/com/simplemobiletools/clock/extensions/Context.kt +++ b/app/src/main/kotlin/com/simplemobiletools/clock/extensions/Context.kt @@ -27,14 +27,13 @@ import com.simplemobiletools.clock.models.Alarm import com.simplemobiletools.clock.models.MyTimeZone import com.simplemobiletools.clock.models.Timer import com.simplemobiletools.clock.models.TimerState -import com.simplemobiletools.clock.receivers.AlarmReceiver -import com.simplemobiletools.clock.receivers.HideAlarmReceiver -import com.simplemobiletools.clock.receivers.HideTimerReceiver +import com.simplemobiletools.clock.receivers.* import com.simplemobiletools.clock.services.SnoozeService import com.simplemobiletools.commons.extensions.* import com.simplemobiletools.commons.helpers.* import java.util.* import kotlin.math.pow +import kotlin.time.Duration.Companion.minutes val Context.config: Config get() = Config.newInstance(applicationContext) @@ -144,11 +143,23 @@ fun Context.setupAlarmClock(alarm: Alarm, triggerInSeconds: Int) { val targetMS = System.currentTimeMillis() + triggerInSeconds * 1000 try { AlarmManagerCompat.setAlarmClock(alarmManager, targetMS, getOpenAlarmTabIntent(), getAlarmIntent(alarm)) + + // Trigger a notification to dismiss the alarm 5 minutes before the alarm if the screen is on + val dismissalTriggerTime = if (targetMS - System.currentTimeMillis() < (5.minutes.inWholeMilliseconds))(System.currentTimeMillis() + 500) else targetMS - (5.minutes.inWholeMilliseconds) + AlarmManagerCompat.setExactAndAllowWhileIdle(alarmManager, 0, dismissalTriggerTime, getEarlyAlarmDismissalIntent(alarm)) } catch (e: Exception) { showErrorToast(e) } } +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) +} + fun Context.getOpenAlarmTabIntent(): PendingIntent { val intent = getLaunchIntent() ?: Intent(this, SplashActivity::class.java) intent.putExtra(OPEN_TAB, TAB_ALARM) @@ -379,6 +390,14 @@ fun Context.getHideAlarmPendingIntent(alarm: Alarm): PendingIntent { return PendingIntent.getBroadcast(this, alarm.id, intent, PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE) } +fun Context.getDismissAlarmPendingIntent(alarmId: Int, notificationId: Int): PendingIntent { + val intent = Intent(this, DismissAlarmReceiver::class.java).apply { + putExtra(ALARM_ID, alarmId) + putExtra(NOTIFICATION_ID, notificationId) + } + return PendingIntent.getBroadcast(this, alarmId, intent, PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE) +} + fun Context.getAlarmNotification(pendingIntent: PendingIntent, alarm: Alarm): Notification { val soundUri = alarm.soundUri if (soundUri != SILENT) { 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 1ab0759d..4135416c 100644 --- a/app/src/main/kotlin/com/simplemobiletools/clock/helpers/Constants.kt +++ b/app/src/main/kotlin/com/simplemobiletools/clock/helpers/Constants.kt @@ -26,18 +26,23 @@ const val WAS_INITIAL_WIDGET_SET_UP = "was_initial_widget_set_up" 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 const val SIMPLE_PHONE = "Simple_Phone" const val ALARM_NOTIFICATION_CHANNEL_ID = "Alarm_Channel" +const val EARLY_ALARM_DISMISSAL_CHANNEL_ID = "Early Alarm Dismissal" const val PICK_AUDIO_FILE_INTENT_ID = 9994 const val REMINDER_ACTIVITY_INTENT_ID = 9995 const val OPEN_ALARMS_TAB_INTENT_ID = 9996 const val OPEN_STOPWATCH_TAB_INTENT_ID = 9993 const val OPEN_APP_INTENT_ID = 9998 +const val EARLY_ALARM_DISMISSAL_INTENT_ID = 9999 const val ALARM_NOTIF_ID = 9998 +const val EARLY_ALARM_NOTIF_ID = 9999 const val TIMER_RUNNING_NOTIF_ID = 10000 const val STOPWATCH_RUNNING_NOTIF_ID = 10001 diff --git a/app/src/main/kotlin/com/simplemobiletools/clock/models/Alarm.kt b/app/src/main/kotlin/com/simplemobiletools/clock/models/Alarm.kt index b9b4ada5..37092f77 100644 --- a/app/src/main/kotlin/com/simplemobiletools/clock/models/Alarm.kt +++ b/app/src/main/kotlin/com/simplemobiletools/clock/models/Alarm.kt @@ -1,4 +1,12 @@ package com.simplemobiletools.clock.models -data class Alarm(var id: Int, var timeInMinutes: Int, var days: Int, var isEnabled: Boolean, var vibrate: Boolean, var soundTitle: String, - var soundUri: String, var label: String) +data class Alarm( + var id: Int, + var timeInMinutes: Int, + var days: Int, + var isEnabled: Boolean, + var vibrate: Boolean, + var soundTitle: String, + var soundUri: String, + var label: String +) diff --git a/app/src/main/kotlin/com/simplemobiletools/clock/receivers/AlarmReceiver.kt b/app/src/main/kotlin/com/simplemobiletools/clock/receivers/AlarmReceiver.kt index a1e7b7cc..20c0c1b5 100644 --- a/app/src/main/kotlin/com/simplemobiletools/clock/receivers/AlarmReceiver.kt +++ b/app/src/main/kotlin/com/simplemobiletools/clock/receivers/AlarmReceiver.kt @@ -16,6 +16,7 @@ import com.simplemobiletools.clock.extensions.* import com.simplemobiletools.clock.helpers.ALARM_ID import com.simplemobiletools.clock.helpers.ALARM_NOTIFICATION_CHANNEL_ID import com.simplemobiletools.clock.helpers.ALARM_NOTIF_ID +import com.simplemobiletools.clock.helpers.EARLY_ALARM_NOTIF_ID import com.simplemobiletools.commons.extensions.showErrorToast import com.simplemobiletools.commons.helpers.isOreoPlus @@ -25,6 +26,8 @@ class AlarmReceiver : BroadcastReceiver() { val id = intent.getIntExtra(ALARM_ID, -1) val alarm = context.dbHelper.getAlarmWithId(id) ?: return + context.hideNotification(EARLY_ALARM_NOTIF_ID) // hide early dismissal notification if not already dismissed + if (context.isScreenOn()) { context.showAlarmNotification(alarm) Handler().postDelayed({ diff --git a/app/src/main/kotlin/com/simplemobiletools/clock/receivers/DismissAlarmReceiver.kt b/app/src/main/kotlin/com/simplemobiletools/clock/receivers/DismissAlarmReceiver.kt new file mode 100644 index 00000000..36bee5c7 --- /dev/null +++ b/app/src/main/kotlin/com/simplemobiletools/clock/receivers/DismissAlarmReceiver.kt @@ -0,0 +1,52 @@ +package com.simplemobiletools.clock.receivers + +import android.content.BroadcastReceiver +import android.content.Context +import android.content.Intent +import com.simplemobiletools.clock.extensions.* +import com.simplemobiletools.clock.helpers.ALARM_ID +import com.simplemobiletools.clock.helpers.NOTIFICATION_ID +import com.simplemobiletools.clock.models.Alarm +import com.simplemobiletools.commons.helpers.ensureBackgroundThread +import java.util.* + +class DismissAlarmReceiver: BroadcastReceiver() { + override fun onReceive(context: Context, intent: Intent) { + val alarmId = intent.getIntExtra(ALARM_ID, -1) + val notificationId = intent.getIntExtra(NOTIFICATION_ID, -1) + if (alarmId == -1) return + + context.hideNotification(notificationId) + + ensureBackgroundThread { + context.dbHelper.getAlarmWithId(alarmId)?.let { alarm -> + context.cancelAlarmClock(alarm) + scheduleNextAlarm(alarm, context) + if (alarm.days < 0) { + context.dbHelper.updateAlarmEnabledState(alarm.id, false) + context.updateWidgets() + } + } + } + + } + + private fun scheduleNextAlarm(alarm: Alarm, context: Context) { + val oldBitmask = alarm.days + alarm.days = removeTodayFromBitmask(oldBitmask) + context.scheduleNextAlarm(alarm, true) + alarm.days = oldBitmask + } + + private fun removeTodayFromBitmask(bitmask: Int): Int { + val calendar = Calendar.getInstance() + var dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK) - Calendar.MONDAY // This will give values from 0 (Monday) to 6 (Sunday) + + if (dayOfWeek < 0) { // Adjust for Calendar.MONDAY being 2 + dayOfWeek += 7 + } + + val todayBitmask = 1 shl dayOfWeek // This will shift the number 1 to the left by dayOfWeek places, creating a bitmask for today + return bitmask and todayBitmask.inv() // This will return a new bitmask without today included + } +} diff --git a/app/src/main/kotlin/com/simplemobiletools/clock/receivers/EarlyAlarmDismissalReceiver.kt b/app/src/main/kotlin/com/simplemobiletools/clock/receivers/EarlyAlarmDismissalReceiver.kt new file mode 100644 index 00000000..6897519e --- /dev/null +++ b/app/src/main/kotlin/com/simplemobiletools/clock/receivers/EarlyAlarmDismissalReceiver.kt @@ -0,0 +1,66 @@ +package com.simplemobiletools.clock.receivers + +import android.app.Notification +import android.app.NotificationChannel +import android.app.NotificationManager +import android.content.BroadcastReceiver +import android.content.Context +import android.content.Intent +import androidx.core.app.NotificationCompat +import com.simplemobiletools.clock.R +import com.simplemobiletools.clock.extensions.getDismissAlarmPendingIntent +import com.simplemobiletools.clock.extensions.getOpenAlarmTabIntent +import com.simplemobiletools.clock.helpers.* +import com.simplemobiletools.commons.helpers.isOreoPlus +import java.text.SimpleDateFormat +import java.util.* + +class EarlyAlarmDismissalReceiver : BroadcastReceiver() { + + override fun onReceive(context: Context, intent: Intent) { + val alarmId = intent.getIntExtra(ALARM_ID, -1) + if (alarmId == -1) return + val alarmTime = intent.getIntExtra(ALARM_TIME, -1) + triggerEarlyDismissalNotification(context, alarmTime, alarmId) + } + + private fun triggerEarlyDismissalNotification(context: Context, alarmTime: Int, 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 { + setBypassDnd(true) + setSound(null, null) + notificationManager.createNotificationChannel(this) + } + } + val dismissIntent = context.getDismissAlarmPendingIntent(alarmId, EARLY_ALARM_NOTIF_ID) + val contentIntent = context.getOpenAlarmTabIntent() + val notification = NotificationCompat.Builder(context) + .setContentTitle(context.getString(R.string.upcoming_alarm)) + .setContentText(getNotificationTimeString(alarmTime)) + .setSmallIcon(R.drawable.ic_alarm_vector) + .setPriority(Notification.PRIORITY_LOW) + .addAction(0, context.getString(R.string.dismiss), dismissIntent) + .setContentIntent(contentIntent) + .setSound(null) + .setAutoCancel(true) + .setChannelId(EARLY_ALARM_DISMISSAL_CHANNEL_ID) + .build() + + 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): String { + val calendar = Calendar.getInstance() + val triggerTime = ((alarmTime - getCurrentDayMinutes()) * 60) - calendar.get(Calendar.SECOND) + val targetMs = System.currentTimeMillis() + (triggerTime * 1000) + val sdf = SimpleDateFormat("EEE h:mm a", Locale.getDefault()) + return sdf.format(Date(targetMs)) + } + +} diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml index 8a160b4b..9c5c55de 100644 --- a/app/src/main/res/values-ar/strings.xml +++ b/app/src/main/res/values-ar/strings.xml @@ -29,6 +29,8 @@ لم يتم العثور على موقتات Add timer التنبيه القادم + Early Alarm Dismissal + أجهزة ضبط الوقت قيد التشغيل عداد الوقت لـ %s قيد التشغيل @@ -55,4 +57,4 @@ Haven't found some strings? There's more at https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res --> - \ No newline at end of file + diff --git a/app/src/main/res/values-az/strings.xml b/app/src/main/res/values-az/strings.xml index b182d782..3800c953 100644 --- a/app/src/main/res/values-az/strings.xml +++ b/app/src/main/res/values-az/strings.xml @@ -28,6 +28,7 @@ No timers found Add timer Upcoming alarm + Early Alarm Dismissal Timers are running diff --git a/app/src/main/res/values-be/strings.xml b/app/src/main/res/values-be/strings.xml index 71132cce..ed066f39 100644 --- a/app/src/main/res/values-be/strings.xml +++ b/app/src/main/res/values-be/strings.xml @@ -29,6 +29,8 @@ Таймеры не знойдзены Add timer Маючы адбыцца будзільнік + Early Alarm Dismissal + Таймеры запушчаны Таймер для %s запушчаны @@ -53,4 +55,4 @@ Haven't found some strings? There's more at https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res --> - \ No newline at end of file + diff --git a/app/src/main/res/values-bg/strings.xml b/app/src/main/res/values-bg/strings.xml index 6fecafb9..c4c9b4fd 100644 --- a/app/src/main/res/values-bg/strings.xml +++ b/app/src/main/res/values-bg/strings.xml @@ -29,6 +29,7 @@ No timers found Add timer Upcoming alarm + Early Alarm Dismissal Таймерите са включени Таймерът за %s е включен diff --git a/app/src/main/res/values-ca/strings.xml b/app/src/main/res/values-ca/strings.xml index 0feb9c29..5381bc8a 100644 --- a/app/src/main/res/values-ca/strings.xml +++ b/app/src/main/res/values-ca/strings.xml @@ -29,6 +29,8 @@ No s\'ha trobat cap temporitzador Add timer Pròxima alarma + Early Alarm Dismissal + Els temporitzadors estan en marxa El temporitzador per a %s està en marxa @@ -51,4 +53,4 @@ Haven't found some strings? There's more at https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res --> - \ No newline at end of file + diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml index 9c701cb4..8395843a 100644 --- a/app/src/main/res/values-cs/strings.xml +++ b/app/src/main/res/values-cs/strings.xml @@ -29,6 +29,8 @@ Nenalezeny žádné časovače Přidat časovač Nadcházející budík + Early Alarm Dismissal + Časovače běží Časovač pro %s běží @@ -52,4 +54,4 @@ Haven't found some strings? There's more at https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res --> - \ No newline at end of file + diff --git a/app/src/main/res/values-cy/strings.xml b/app/src/main/res/values-cy/strings.xml index 1f213628..25ea9963 100644 --- a/app/src/main/res/values-cy/strings.xml +++ b/app/src/main/res/values-cy/strings.xml @@ -29,6 +29,8 @@ No timers found Add timer Upcoming alarm + Early Alarm Dismissal + Timers are running Timer for %s is running diff --git a/app/src/main/res/values-da/strings.xml b/app/src/main/res/values-da/strings.xml index 4fd9d7ba..6ed0e5de 100644 --- a/app/src/main/res/values-da/strings.xml +++ b/app/src/main/res/values-da/strings.xml @@ -28,6 +28,7 @@ No timers found Add timer Upcoming alarm + Early Alarm Dismissal Timers are running diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 3a564247..fc80339b 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -29,6 +29,8 @@ Keine Timer gefunden Timer hinzufügen Bevorstehender Alarm + Early Alarm Dismissal + Die Timer laufen Timer für %s läuft @@ -51,4 +53,4 @@ Haven't found some strings? There's more at https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res --> - \ No newline at end of file + diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml index ddb5113c..e56fb7a2 100644 --- a/app/src/main/res/values-el/strings.xml +++ b/app/src/main/res/values-el/strings.xml @@ -29,6 +29,8 @@ Δεν βρέθηκαν χρονόμετρα Προσθήκη χρονόμετρου Επερχόμενη αφύπνιση + Early Alarm Dismissal + Τα χρονόμετρα σε λειτουργία Το χρονόμετρο για %s σε λειτουργία diff --git a/app/src/main/res/values-eo/strings.xml b/app/src/main/res/values-eo/strings.xml index 2dc612d7..c8ff59a1 100644 --- a/app/src/main/res/values-eo/strings.xml +++ b/app/src/main/res/values-eo/strings.xml @@ -29,6 +29,7 @@ No timers found Add timer Upcoming alarm + Early Alarm Dismissal Timers are running diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 48a18951..64a914fe 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -29,6 +29,8 @@ No se encontraron temporizadores Add timer Próxima alarma + Early Alarm Dismissal + Los temporizadores están en marcha El temporizador para %s está en marcha @@ -52,4 +54,4 @@ Haven't found some strings? There's more at https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res --> - \ No newline at end of file + diff --git a/app/src/main/res/values-et/strings.xml b/app/src/main/res/values-et/strings.xml index ad0152af..691641cf 100644 --- a/app/src/main/res/values-et/strings.xml +++ b/app/src/main/res/values-et/strings.xml @@ -29,6 +29,8 @@ Ei leitud taimereid Lisage taimer Järgmine äratus + Early Alarm Dismissal + Taimerid töötavad %s taimer töötab @@ -51,4 +53,4 @@ Haven't found some strings? There's more at https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res --> - \ No newline at end of file + diff --git a/app/src/main/res/values-eu/strings.xml b/app/src/main/res/values-eu/strings.xml index ece09303..385f4e54 100644 --- a/app/src/main/res/values-eu/strings.xml +++ b/app/src/main/res/values-eu/strings.xml @@ -28,6 +28,7 @@ No timers found Add timer Upcoming alarm + Early Alarm Dismissal Timers are running diff --git a/app/src/main/res/values-fi/strings.xml b/app/src/main/res/values-fi/strings.xml index 93216b8f..6a0f2186 100644 --- a/app/src/main/res/values-fi/strings.xml +++ b/app/src/main/res/values-fi/strings.xml @@ -29,6 +29,8 @@ Ajastuksia ei löytynyt Lisää ajastus Ajastettu herätys + Early Alarm Dismissal + Ajastuksia on käynnissä %s ajastus on käynnissä @@ -51,4 +53,4 @@ Haven't found some strings? There's more at https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res --> - \ No newline at end of file + diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 7d150ae7..a6241ac1 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -29,6 +29,8 @@ Aucune minuterie trouvée Ajouter une minuterie Alarme à venir + Early Alarm Dismissal + Les minuteries sont en marche La minuterie de %s est en marche @@ -52,4 +54,4 @@ Haven't found some strings? There's more at https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res --> - \ No newline at end of file + diff --git a/app/src/main/res/values-gl/strings.xml b/app/src/main/res/values-gl/strings.xml index 0522b2bc..c14fe365 100644 --- a/app/src/main/res/values-gl/strings.xml +++ b/app/src/main/res/values-gl/strings.xml @@ -29,6 +29,8 @@ Non se atoparon temporizadores Engadir temporizador Próxima alarma + Early Alarm Dismissal + Os temporizadores atopanse traballando O temporizador para %s atopase traballando @@ -51,4 +53,4 @@ Haven't found some strings? There's more at https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res --> - \ No newline at end of file + diff --git a/app/src/main/res/values-hr/strings.xml b/app/src/main/res/values-hr/strings.xml index 30c2cbfb..bcf60c66 100644 --- a/app/src/main/res/values-hr/strings.xml +++ b/app/src/main/res/values-hr/strings.xml @@ -29,6 +29,8 @@ Nema brojača vremena Dodaj brojač vremena Nadolazeći alarm + Early Alarm Dismissal + Brojači su pokrenuti Brojač za %s je pokrenut @@ -52,4 +54,4 @@ Haven't found some strings? There's more at https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res --> - \ No newline at end of file + diff --git a/app/src/main/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml index 25392f97..373d252c 100644 --- a/app/src/main/res/values-hu/strings.xml +++ b/app/src/main/res/values-hu/strings.xml @@ -29,6 +29,8 @@ Nincsenek időzitők Időzítő hozzáadása Közelgő riasztás + Early Alarm Dismissal + Az időzítő megy A(z) %s időzítő fut @@ -51,4 +53,4 @@ Haven't found some strings? There's more at https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res --> - \ No newline at end of file + diff --git a/app/src/main/res/values-in/strings.xml b/app/src/main/res/values-in/strings.xml index d9e3b213..f30ceaff 100644 --- a/app/src/main/res/values-in/strings.xml +++ b/app/src/main/res/values-in/strings.xml @@ -29,6 +29,8 @@ Tidak ada pewaktu yang ditemukan Tambahkan pewaktu Alarm berikut + Early Alarm Dismissal + Pewaktu sedang berjalan Pewaktu untuk %s sedang berjalan @@ -50,4 +52,4 @@ Haven't found some strings? There's more at https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res --> - \ No newline at end of file + diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index e92c354d..1d76d7c9 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -29,6 +29,8 @@ Nessun contaminuti trovato Aggiungi contaminuti Allarme imminente + Early Alarm Dismissal + I contaminuti sono in funzione Il contaminuti per %s è in funzione @@ -52,4 +54,4 @@ Haven't found some strings? There's more at https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res --> - \ No newline at end of file + diff --git a/app/src/main/res/values-iw/strings.xml b/app/src/main/res/values-iw/strings.xml index b3dde4cb..2662556e 100644 --- a/app/src/main/res/values-iw/strings.xml +++ b/app/src/main/res/values-iw/strings.xml @@ -29,6 +29,8 @@ No timers found Add timer Upcoming alarm + Early Alarm Dismissal + ‏טיימר פועל טיימר עבור %s פועל diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index f8b4eea8..906fd135 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -29,6 +29,8 @@ タイマーが見つかりません タイマーを追加 今後のアラーム + Early Alarm Dismissal + タイマーが作動中 タイマー %s が作動中 @@ -50,4 +52,4 @@ Haven't found some strings? There's more at https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res --> - \ No newline at end of file + diff --git a/app/src/main/res/values-lt/strings.xml b/app/src/main/res/values-lt/strings.xml index 0f2fb5b3..40f499a5 100644 --- a/app/src/main/res/values-lt/strings.xml +++ b/app/src/main/res/values-lt/strings.xml @@ -28,6 +28,7 @@ No timers found Add timer Upcoming alarm + Early Alarm Dismissal Timers are running diff --git a/app/src/main/res/values-ml/strings.xml b/app/src/main/res/values-ml/strings.xml index ba90bbdf..b81006c8 100644 --- a/app/src/main/res/values-ml/strings.xml +++ b/app/src/main/res/values-ml/strings.xml @@ -29,6 +29,8 @@ ടൈമറുകളൊന്നും കണ്ടെത്തിയില്ല ടൈമർ ചേർക്കുക Upcoming alarm + Early Alarm Dismissal + ടൈമറുകൾ പ്രവർത്തിക്കുന്നു %s-നുള്ള ടൈമർ പ്രവർത്തിക്കുന്നു @@ -51,4 +53,4 @@ Haven't found some strings? There's more at https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res --> - \ No newline at end of file + diff --git a/app/src/main/res/values-nb-rNO/strings.xml b/app/src/main/res/values-nb-rNO/strings.xml index 34bf849c..9c3acda7 100644 --- a/app/src/main/res/values-nb-rNO/strings.xml +++ b/app/src/main/res/values-nb-rNO/strings.xml @@ -29,6 +29,8 @@ Ingen timere funnet Add timer Kommende alarm + Early Alarm Dismissal + Timere er i gang Timer for %s er i gang @@ -51,4 +53,4 @@ Haven't found some strings? There's more at https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res --> - \ No newline at end of file + diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index 8e9b3bc9..16e9c6fa 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -29,6 +29,8 @@ Geen timers Timer toevoegen Volgende wekker + Early Alarm Dismissal + Timers lopen Timer voor %s loopt @@ -51,4 +53,4 @@ Haven't found some strings? There's more at https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res --> - \ No newline at end of file + diff --git a/app/src/main/res/values-pa-rPK/strings.xml b/app/src/main/res/values-pa-rPK/strings.xml index 30d0c332..15ed6acf 100644 --- a/app/src/main/res/values-pa-rPK/strings.xml +++ b/app/src/main/res/values-pa-rPK/strings.xml @@ -32,6 +32,7 @@ Upcoming alarm سماں والے چالو کیتے جا رہے اے ؜‫%s‬‬ ؜لئی سماں والا چالو کیتا جا رہا اے + Early Alarm Dismissal ؜‫%d‬؜ سماں والا چالو کیتا جا رہا اے ؜‫%d‬؜ سماں والے چالو کیتے جا رہے اے diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index 4e361945..f14708ad 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -29,6 +29,8 @@ Nie znaleziono minutników Dodaj minutnik Nadchodzący alarm + Early Alarm Dismissal + Minutniki są uruchomione Minutnik dla %s jest uruchomiony @@ -53,4 +55,4 @@ Haven't found some strings? There's more at https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res --> - \ No newline at end of file + diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index 25f69672..be1478c0 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -29,6 +29,8 @@ Nenhum temporizador encontrado Adicionar temporizador Próximo alarme + Early Alarm Dismissal + Temporizadores em execução O temporizador para %s está em execução diff --git a/app/src/main/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml index cb42aa34..2cc6a250 100644 --- a/app/src/main/res/values-pt/strings.xml +++ b/app/src/main/res/values-pt/strings.xml @@ -29,6 +29,8 @@ Nenhum temporizador encontrado Adicionar temporizador Próximo alarme + Early Alarm Dismissal + Temporizadores em curso Temporizador para %s está em curso @@ -52,4 +54,4 @@ Haven't found some strings? There's more at https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res --> - \ No newline at end of file + diff --git a/app/src/main/res/values-ro/strings.xml b/app/src/main/res/values-ro/strings.xml index 4fd36b8c..8cb1db96 100644 --- a/app/src/main/res/values-ro/strings.xml +++ b/app/src/main/res/values-ro/strings.xml @@ -29,6 +29,8 @@ Nu au fost găsite temporizatoare Adaugă temporizator Upcoming alarm + Early Alarm Dismissal + Temporizatoarele sunt pornite Temporizatorul de %s este pornit diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index f99f6a7a..fc18a29d 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -29,6 +29,8 @@ Таймеры отсутствуют Добавить таймер Предстоящий будильник + Early Alarm Dismissal + Таймеры запущены Таймер для %s запущен @@ -53,4 +55,4 @@ Haven't found some strings? There's more at https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res --> - \ No newline at end of file + diff --git a/app/src/main/res/values-sk/strings.xml b/app/src/main/res/values-sk/strings.xml index 83276e54..33c552f5 100644 --- a/app/src/main/res/values-sk/strings.xml +++ b/app/src/main/res/values-sk/strings.xml @@ -28,6 +28,7 @@ Nenašli sa žiadne časovače Pridať časovač Nadchádzajúci budík + Early Alarm Dismissal Sú spustené časovače diff --git a/app/src/main/res/values-sl/strings.xml b/app/src/main/res/values-sl/strings.xml index d3c7dc42..119b8db5 100644 --- a/app/src/main/res/values-sl/strings.xml +++ b/app/src/main/res/values-sl/strings.xml @@ -29,6 +29,8 @@ Ni časovnikov Dodajte časovnik Upcoming alarm + Early Alarm Dismissal + Tečejo časovniki Časovnik za %s teče diff --git a/app/src/main/res/values-sr/strings.xml b/app/src/main/res/values-sr/strings.xml index 7f4cccfa..1fce73a6 100644 --- a/app/src/main/res/values-sr/strings.xml +++ b/app/src/main/res/values-sr/strings.xml @@ -32,6 +32,7 @@ Тајмери раде Тајмер за %s је покренут Нови тајмер + Early Alarm Dismissal %d тајмер ради %d тајмери раде diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index 0309448a..f12042e0 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -29,6 +29,8 @@ Inga timers hittades Lägg till timer Kommande alarm + Early Alarm Dismissal + Timers är igång Timer för %s är igång @@ -51,4 +53,4 @@ Haven't found some strings? There's more at https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res --> - \ No newline at end of file + diff --git a/app/src/main/res/values-th/strings.xml b/app/src/main/res/values-th/strings.xml index 2dc612d7..c8ff59a1 100644 --- a/app/src/main/res/values-th/strings.xml +++ b/app/src/main/res/values-th/strings.xml @@ -29,6 +29,7 @@ No timers found Add timer Upcoming alarm + Early Alarm Dismissal Timers are running diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index dad28a57..38200c6e 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -29,6 +29,8 @@ Zamanlayıcı bulunamadı Zamanlayıcı ekle Yaklaşan alarm + Early Alarm Dismissal + Zamanlayıcılar çalışıyor %s için zamanlayıcı çalışıyor @@ -51,4 +53,4 @@ Haven't found some strings? There's more at https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res --> - \ No newline at end of file + diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index 22d1a197..7f3ddaeb 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -29,6 +29,8 @@ Таймерів не знайдено Add timer Майбутній будильник + Early Alarm Dismissal + Таймери працюють Таймер для %s працює @@ -53,4 +55,4 @@ Haven't found some strings? There's more at https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res --> - \ No newline at end of file + diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index 8efb2ff3..9f4c52e3 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -29,6 +29,8 @@ 未找到计时器 添加计时器 即将到来的闹铃 + Early Alarm Dismissal + 计时器正在运行 %s 的计时器正在运行 @@ -50,4 +52,4 @@ Haven't found some strings? There's more at https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res --> - \ No newline at end of file + diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index 46fc8fd8..f210f82c 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -28,6 +28,7 @@ No timers found Add timer Upcoming alarm + Early Alarm Dismissal Timers are running diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index f20088f8..37f0c6ae 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -29,6 +29,7 @@ No timers found Add timer Upcoming alarm + Early Alarm Dismissal Timers are running From 1b39d7a892e79dd0a417905de9ceb1ef1b92bbf4 Mon Sep 17 00:00:00 2001 From: Rawlin C Date: Mon, 3 Jul 2023 00:12:15 +0530 Subject: [PATCH 02/14] Moved stuff from one line --- .../com/simplemobiletools/clock/extensions/Context.kt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) 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 438f2d44..05cdb551 100644 --- a/app/src/main/kotlin/com/simplemobiletools/clock/extensions/Context.kt +++ b/app/src/main/kotlin/com/simplemobiletools/clock/extensions/Context.kt @@ -145,7 +145,11 @@ fun Context.setupAlarmClock(alarm: Alarm, triggerInSeconds: Int) { AlarmManagerCompat.setAlarmClock(alarmManager, targetMS, getOpenAlarmTabIntent(), getAlarmIntent(alarm)) // Trigger a notification to dismiss the alarm 5 minutes before the alarm if the screen is on - val dismissalTriggerTime = if (targetMS - System.currentTimeMillis() < (5.minutes.inWholeMilliseconds))(System.currentTimeMillis() + 500) else targetMS - (5.minutes.inWholeMilliseconds) + val dismissalTriggerTime = if (targetMS - System.currentTimeMillis() < (5.minutes.inWholeMilliseconds)) { + (System.currentTimeMillis() + 500) + } else { + targetMS - (5.minutes.inWholeMilliseconds) + } AlarmManagerCompat.setExactAndAllowWhileIdle(alarmManager, 0, dismissalTriggerTime, getEarlyAlarmDismissalIntent(alarm)) } catch (e: Exception) { showErrorToast(e) From bcd6b1a934dedbb93b790130e2551a031bf85525 Mon Sep 17 00:00:00 2001 From: Rawlin C Date: Mon, 3 Jul 2023 08:48:12 +0530 Subject: [PATCH 03/14] PR comment resolution --- .../com/simplemobiletools/clock/extensions/Context.kt | 6 +++--- .../clock/receivers/DismissAlarmReceiver.kt | 9 +++------ .../clock/receivers/EarlyAlarmDismissalReceiver.kt | 7 +++++-- 3 files changed, 11 insertions(+), 11 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 05cdb551..eb6bf695 100644 --- a/app/src/main/kotlin/com/simplemobiletools/clock/extensions/Context.kt +++ b/app/src/main/kotlin/com/simplemobiletools/clock/extensions/Context.kt @@ -145,10 +145,10 @@ fun Context.setupAlarmClock(alarm: Alarm, triggerInSeconds: Int) { AlarmManagerCompat.setAlarmClock(alarmManager, targetMS, getOpenAlarmTabIntent(), getAlarmIntent(alarm)) // Trigger a notification to dismiss the alarm 5 minutes before the alarm if the screen is on - val dismissalTriggerTime = if (targetMS - System.currentTimeMillis() < (5.minutes.inWholeMilliseconds)) { - (System.currentTimeMillis() + 500) + val dismissalTriggerTime = if (targetMS - System.currentTimeMillis() < 5.minutes.inWholeMilliseconds) { + System.currentTimeMillis() + 500 } else { - targetMS - (5.minutes.inWholeMilliseconds) + targetMS - 5.minutes.inWholeMilliseconds } AlarmManagerCompat.setExactAndAllowWhileIdle(alarmManager, 0, dismissalTriggerTime, getEarlyAlarmDismissalIntent(alarm)) } catch (e: Exception) { 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 36bee5c7..ead1c86c 100644 --- a/app/src/main/kotlin/com/simplemobiletools/clock/receivers/DismissAlarmReceiver.kt +++ b/app/src/main/kotlin/com/simplemobiletools/clock/receivers/DismissAlarmReceiver.kt @@ -40,13 +40,10 @@ class DismissAlarmReceiver: BroadcastReceiver() { private fun removeTodayFromBitmask(bitmask: Int): Int { val calendar = Calendar.getInstance() - var dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK) - Calendar.MONDAY // This will give values from 0 (Monday) to 6 (Sunday) + calendar.firstDayOfWeek = Calendar.MONDAY + val dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK) - Calendar.MONDAY // This will give values from 0 (Monday) to 6 (Sunday) - if (dayOfWeek < 0) { // Adjust for Calendar.MONDAY being 2 - dayOfWeek += 7 - } - - val todayBitmask = 1 shl dayOfWeek // This will shift the number 1 to the left by dayOfWeek places, creating a bitmask for today + val todayBitmask = 1 shl dayOfWeek // This will left shift 0000001 by dayOfWeek places, creating a bitmask for today return bitmask and todayBitmask.inv() // This will return a new bitmask without today included } } 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 6897519e..bd4380e1 100644 --- a/app/src/main/kotlin/com/simplemobiletools/clock/receivers/EarlyAlarmDismissalReceiver.kt +++ b/app/src/main/kotlin/com/simplemobiletools/clock/receivers/EarlyAlarmDismissalReceiver.kt @@ -19,13 +19,15 @@ class EarlyAlarmDismissalReceiver : BroadcastReceiver() { override fun onReceive(context: Context, intent: Intent) { val alarmId = intent.getIntExtra(ALARM_ID, -1) - if (alarmId == -1) return + if (alarmId == -1) { + return + } + val alarmTime = intent.getIntExtra(ALARM_TIME, -1) triggerEarlyDismissalNotification(context, alarmTime, alarmId) } private fun triggerEarlyDismissalNotification(context: Context, alarmTime: Int, 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 { @@ -34,6 +36,7 @@ class EarlyAlarmDismissalReceiver : BroadcastReceiver() { notificationManager.createNotificationChannel(this) } } + val dismissIntent = context.getDismissAlarmPendingIntent(alarmId, EARLY_ALARM_NOTIF_ID) val contentIntent = context.getOpenAlarmTabIntent() val notification = NotificationCompat.Builder(context) From 3a7118f30dcc9f43a4d1b25dd18d457a35d48435 Mon Sep 17 00:00:00 2001 From: Rawlin C Date: Mon, 3 Jul 2023 15:22:41 +0530 Subject: [PATCH 04/14] reformatting --- .../simplemobiletools/clock/receivers/DismissAlarmReceiver.kt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) 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 ead1c86c..8593f82c 100644 --- a/app/src/main/kotlin/com/simplemobiletools/clock/receivers/DismissAlarmReceiver.kt +++ b/app/src/main/kotlin/com/simplemobiletools/clock/receivers/DismissAlarmReceiver.kt @@ -14,7 +14,9 @@ class DismissAlarmReceiver: BroadcastReceiver() { override fun onReceive(context: Context, intent: Intent) { val alarmId = intent.getIntExtra(ALARM_ID, -1) val notificationId = intent.getIntExtra(NOTIFICATION_ID, -1) - if (alarmId == -1) return + if (alarmId == -1) { + return + } context.hideNotification(notificationId) From 5208161366ee1dc250e910fae7343516159eb159 Mon Sep 17 00:00:00 2001 From: Rawlin C Date: Mon, 3 Jul 2023 15:47:33 +0530 Subject: [PATCH 05/14] Updated constant ids --- .../kotlin/com/simplemobiletools/clock/helpers/Constants.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 4135416c..0379861a 100644 --- a/app/src/main/kotlin/com/simplemobiletools/clock/helpers/Constants.kt +++ b/app/src/main/kotlin/com/simplemobiletools/clock/helpers/Constants.kt @@ -40,9 +40,9 @@ const val REMINDER_ACTIVITY_INTENT_ID = 9995 const val OPEN_ALARMS_TAB_INTENT_ID = 9996 const val OPEN_STOPWATCH_TAB_INTENT_ID = 9993 const val OPEN_APP_INTENT_ID = 9998 -const val EARLY_ALARM_DISMISSAL_INTENT_ID = 9999 +const val EARLY_ALARM_DISMISSAL_INTENT_ID = 10002 const val ALARM_NOTIF_ID = 9998 -const val EARLY_ALARM_NOTIF_ID = 9999 +const val EARLY_ALARM_NOTIF_ID = 10003 const val TIMER_RUNNING_NOTIF_ID = 10000 const val STOPWATCH_RUNNING_NOTIF_ID = 10001 From d60390b2aa71a0b6a843f1aae8bfec4bb062640a Mon Sep 17 00:00:00 2001 From: Rawlin C Date: Mon, 3 Jul 2023 17:11:36 +0530 Subject: [PATCH 06/14] Support 24hr format and not showing toast --- .../clock/receivers/DismissAlarmReceiver.kt | 2 +- .../clock/receivers/EarlyAlarmDismissalReceiver.kt | 12 +++++++++--- 2 files changed, 10 insertions(+), 4 deletions(-) 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 8593f82c..3ec5acd6 100644 --- a/app/src/main/kotlin/com/simplemobiletools/clock/receivers/DismissAlarmReceiver.kt +++ b/app/src/main/kotlin/com/simplemobiletools/clock/receivers/DismissAlarmReceiver.kt @@ -36,7 +36,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 bd4380e1..faf7376c 100644 --- a/app/src/main/kotlin/com/simplemobiletools/clock/receivers/EarlyAlarmDismissalReceiver.kt +++ b/app/src/main/kotlin/com/simplemobiletools/clock/receivers/EarlyAlarmDismissalReceiver.kt @@ -6,6 +6,7 @@ import android.app.NotificationManager import android.content.BroadcastReceiver import android.content.Context import android.content.Intent +import android.text.format.DateFormat import androidx.core.app.NotificationCompat import com.simplemobiletools.clock.R import com.simplemobiletools.clock.extensions.getDismissAlarmPendingIntent @@ -41,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)) + .setContentText(getNotificationTimeString(alarmTime, context)) .setSmallIcon(R.drawable.ic_alarm_vector) .setPriority(Notification.PRIORITY_LOW) .addAction(0, context.getString(R.string.dismiss), dismissIntent) @@ -58,11 +59,16 @@ class EarlyAlarmDismissalReceiver : BroadcastReceiver() { * Gets the time at which the alarm is going to fire. * eg: "Sun 1:30 pm" */ - private fun getNotificationTimeString(alarmTime: Int): String { + 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 sdf = SimpleDateFormat("EEE h:mm a", Locale.getDefault()) + 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)) } From 860f3492c68f2501c6a207a80a2bc062c67dda0a Mon Sep 17 00:00:00 2001 From: Tibor Kaputa Date: Tue, 4 Jul 2023 15:33:23 +0200 Subject: [PATCH 07/14] change the early dismissal to 10 minutes --- .../com/simplemobiletools/clock/extensions/Context.kt | 10 ++++++---- 1 file changed, 6 insertions(+), 4 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 eb6bf695..01864990 100644 --- a/app/src/main/kotlin/com/simplemobiletools/clock/extensions/Context.kt +++ b/app/src/main/kotlin/com/simplemobiletools/clock/extensions/Context.kt @@ -31,7 +31,9 @@ import com.simplemobiletools.clock.receivers.* import com.simplemobiletools.clock.services.SnoozeService import com.simplemobiletools.commons.extensions.* import com.simplemobiletools.commons.helpers.* -import java.util.* +import java.util.Calendar +import java.util.Date +import java.util.TimeZone import kotlin.math.pow import kotlin.time.Duration.Companion.minutes @@ -144,11 +146,11 @@ fun Context.setupAlarmClock(alarm: Alarm, triggerInSeconds: Int) { try { AlarmManagerCompat.setAlarmClock(alarmManager, targetMS, getOpenAlarmTabIntent(), getAlarmIntent(alarm)) - // Trigger a notification to dismiss the alarm 5 minutes before the alarm if the screen is on - val dismissalTriggerTime = if (targetMS - System.currentTimeMillis() < 5.minutes.inWholeMilliseconds) { + // show a notification to allow dismissing the alarm 10 minutes before it actually triggers + val dismissalTriggerTime = if (targetMS - System.currentTimeMillis() < 10.minutes.inWholeMilliseconds) { System.currentTimeMillis() + 500 } else { - targetMS - 5.minutes.inWholeMilliseconds + targetMS - 10.minutes.inWholeMilliseconds } AlarmManagerCompat.setExactAndAllowWhileIdle(alarmManager, 0, dismissalTriggerTime, getEarlyAlarmDismissalIntent(alarm)) } catch (e: Exception) { From 381145fe1ce49d1a6042b1d16788c585fe748c6a Mon Sep 17 00:00:00 2001 From: Tibor Kaputa Date: Tue, 4 Jul 2023 15:34:22 +0200 Subject: [PATCH 08/14] updating some constants --- .../com/simplemobiletools/clock/helpers/Constants.kt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) 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 0379861a..ee86e317 100644 --- a/app/src/main/kotlin/com/simplemobiletools/clock/helpers/Constants.kt +++ b/app/src/main/kotlin/com/simplemobiletools/clock/helpers/Constants.kt @@ -35,16 +35,16 @@ const val SIMPLE_PHONE = "Simple_Phone" const val ALARM_NOTIFICATION_CHANNEL_ID = "Alarm_Channel" const val EARLY_ALARM_DISMISSAL_CHANNEL_ID = "Early Alarm Dismissal" +const val OPEN_STOPWATCH_TAB_INTENT_ID = 9993 const val PICK_AUDIO_FILE_INTENT_ID = 9994 const val REMINDER_ACTIVITY_INTENT_ID = 9995 const val OPEN_ALARMS_TAB_INTENT_ID = 9996 -const val OPEN_STOPWATCH_TAB_INTENT_ID = 9993 -const val OPEN_APP_INTENT_ID = 9998 -const val EARLY_ALARM_DISMISSAL_INTENT_ID = 10002 +const val OPEN_APP_INTENT_ID = 9997 const val ALARM_NOTIF_ID = 9998 -const val EARLY_ALARM_NOTIF_ID = 10003 const val TIMER_RUNNING_NOTIF_ID = 10000 const val STOPWATCH_RUNNING_NOTIF_ID = 10001 +const val EARLY_ALARM_DISMISSAL_INTENT_ID = 10002 +const val EARLY_ALARM_NOTIF_ID = 10003 const val OPEN_TAB = "open_tab" const val TAB_CLOCK = 0 From 9be4f122e85bbdd47d4cad4297ce807a3274969f Mon Sep 17 00:00:00 2001 From: Tibor Kaputa Date: Tue, 4 Jul 2023 15:35:28 +0200 Subject: [PATCH 09/14] minor code update --- .../clock/receivers/DismissAlarmReceiver.kt | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) 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 3ec5acd6..97c668bc 100644 --- a/app/src/main/kotlin/com/simplemobiletools/clock/receivers/DismissAlarmReceiver.kt +++ b/app/src/main/kotlin/com/simplemobiletools/clock/receivers/DismissAlarmReceiver.kt @@ -8,9 +8,9 @@ import com.simplemobiletools.clock.helpers.ALARM_ID import com.simplemobiletools.clock.helpers.NOTIFICATION_ID import com.simplemobiletools.clock.models.Alarm import com.simplemobiletools.commons.helpers.ensureBackgroundThread -import java.util.* +import java.util.Calendar -class DismissAlarmReceiver: BroadcastReceiver() { +class DismissAlarmReceiver : BroadcastReceiver() { override fun onReceive(context: Context, intent: Intent) { val alarmId = intent.getIntExtra(ALARM_ID, -1) val notificationId = intent.getIntExtra(NOTIFICATION_ID, -1) @@ -30,7 +30,6 @@ class DismissAlarmReceiver: BroadcastReceiver() { } } } - } private fun scheduleNextAlarm(alarm: Alarm, context: Context) { @@ -43,7 +42,7 @@ class DismissAlarmReceiver: BroadcastReceiver() { private fun removeTodayFromBitmask(bitmask: Int): Int { val calendar = Calendar.getInstance() calendar.firstDayOfWeek = Calendar.MONDAY - val dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK) - Calendar.MONDAY // This will give values from 0 (Monday) to 6 (Sunday) + val dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK) - Calendar.MONDAY val todayBitmask = 1 shl dayOfWeek // This will left shift 0000001 by dayOfWeek places, creating a bitmask for today return bitmask and todayBitmask.inv() // This will return a new bitmask without today included From 1e1666432fa69e66cd5c12f2c64f259545c91c43 Mon Sep 17 00:00:00 2001 From: Rawlin C Date: Wed, 5 Jul 2023 10:16:46 +0530 Subject: [PATCH 10/14] Refactored removeTodayFromBitmask to not use bit operators --- .../clock/adapters/AlarmsAdapter.kt | 2 +- .../clock/receivers/DismissAlarmReceiver.kt | 24 ++++++++++++++++--- 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/clock/adapters/AlarmsAdapter.kt b/app/src/main/kotlin/com/simplemobiletools/clock/adapters/AlarmsAdapter.kt index 2ccba73d..90b1218b 100644 --- a/app/src/main/kotlin/com/simplemobiletools/clock/adapters/AlarmsAdapter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/clock/adapters/AlarmsAdapter.kt @@ -98,7 +98,7 @@ class AlarmsAdapter( alarm_days.setTextColor(textColor) alarm_label.text = alarm.label - alarm_label.setTextColor(textColor) + alarm_label.setTextColor(textColor) //test alarm_label.beVisibleIf(alarm.label.isNotEmpty()) alarm_switch.isChecked = alarm.isEnabled 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 97c668bc..e583f406 100644 --- a/app/src/main/kotlin/com/simplemobiletools/clock/receivers/DismissAlarmReceiver.kt +++ b/app/src/main/kotlin/com/simplemobiletools/clock/receivers/DismissAlarmReceiver.kt @@ -9,6 +9,7 @@ import com.simplemobiletools.clock.helpers.NOTIFICATION_ID import com.simplemobiletools.clock.models.Alarm import com.simplemobiletools.commons.helpers.ensureBackgroundThread import java.util.Calendar +import kotlin.math.pow class DismissAlarmReceiver : BroadcastReceiver() { override fun onReceive(context: Context, intent: Intent) { @@ -42,9 +43,26 @@ class DismissAlarmReceiver : BroadcastReceiver() { private fun removeTodayFromBitmask(bitmask: Int): Int { val calendar = Calendar.getInstance() calendar.firstDayOfWeek = Calendar.MONDAY - val dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK) - Calendar.MONDAY + val dayOfWeek = (calendar.get(Calendar.DAY_OF_WEEK) + 5) % 7 + // boolean array with each day of the week set as per the bitmask provided + val daysOfWeek = BooleanArray(7) { value -> + var bitValue = bitmask + for (i in 0 until value) { + bitValue /= 2 + } + bitValue % 2 == 1 + } - val todayBitmask = 1 shl dayOfWeek // This will left shift 0000001 by dayOfWeek places, creating a bitmask for today - return bitmask and todayBitmask.inv() // This will return a new bitmask without today included + daysOfWeek[dayOfWeek] = false // remove today + + // Convert the boolean array back to an integer (bitmask) + var updatedBitmask = 0 + for (i in 0..6) { + if (daysOfWeek[i]) { + updatedBitmask += 2.0.pow(i).toInt() + } + } // This will return a new bitmask without today included + + return updatedBitmask } } From 728c2b50b19f2fb71a0562495abceba99c9cad6a Mon Sep 17 00:00:00 2001 From: Rawlin C Date: Wed, 5 Jul 2023 13:58:24 +0530 Subject: [PATCH 11/14] refactor --- .../clock/adapters/AlarmsAdapter.kt | 2 +- .../clock/receivers/DismissAlarmReceiver.kt | 24 ++++--------------- 2 files changed, 5 insertions(+), 21 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/clock/adapters/AlarmsAdapter.kt b/app/src/main/kotlin/com/simplemobiletools/clock/adapters/AlarmsAdapter.kt index 90b1218b..2ccba73d 100644 --- a/app/src/main/kotlin/com/simplemobiletools/clock/adapters/AlarmsAdapter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/clock/adapters/AlarmsAdapter.kt @@ -98,7 +98,7 @@ class AlarmsAdapter( alarm_days.setTextColor(textColor) alarm_label.text = alarm.label - alarm_label.setTextColor(textColor) //test + alarm_label.setTextColor(textColor) alarm_label.beVisibleIf(alarm.label.isNotEmpty()) alarm_switch.isChecked = alarm.isEnabled 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 e583f406..7801719f 100644 --- a/app/src/main/kotlin/com/simplemobiletools/clock/receivers/DismissAlarmReceiver.kt +++ b/app/src/main/kotlin/com/simplemobiletools/clock/receivers/DismissAlarmReceiver.kt @@ -7,6 +7,7 @@ import com.simplemobiletools.clock.extensions.* import com.simplemobiletools.clock.helpers.ALARM_ID import com.simplemobiletools.clock.helpers.NOTIFICATION_ID import com.simplemobiletools.clock.models.Alarm +import com.simplemobiletools.commons.extensions.removeBit import com.simplemobiletools.commons.helpers.ensureBackgroundThread import java.util.Calendar import kotlin.math.pow @@ -36,7 +37,7 @@ class DismissAlarmReceiver : BroadcastReceiver() { private fun scheduleNextAlarm(alarm: Alarm, context: Context) { val oldBitmask = alarm.days alarm.days = removeTodayFromBitmask(oldBitmask) - context.scheduleNextAlarm(alarm, false) + context.scheduleNextAlarm(alarm, true) alarm.days = oldBitmask } @@ -44,25 +45,8 @@ class DismissAlarmReceiver : BroadcastReceiver() { val calendar = Calendar.getInstance() calendar.firstDayOfWeek = Calendar.MONDAY val dayOfWeek = (calendar.get(Calendar.DAY_OF_WEEK) + 5) % 7 - // boolean array with each day of the week set as per the bitmask provided - val daysOfWeek = BooleanArray(7) { value -> - var bitValue = bitmask - for (i in 0 until value) { - bitValue /= 2 - } - bitValue % 2 == 1 - } + val todayBitmask = 2.0.pow(dayOfWeek).toInt() - daysOfWeek[dayOfWeek] = false // remove today - - // Convert the boolean array back to an integer (bitmask) - var updatedBitmask = 0 - for (i in 0..6) { - if (daysOfWeek[i]) { - updatedBitmask += 2.0.pow(i).toInt() - } - } // This will return a new bitmask without today included - - return updatedBitmask + return bitmask.removeBit(todayBitmask) } } From 8543f2dafef1bff2282888593eb69fa4c80b9417 Mon Sep 17 00:00:00 2001 From: Rawlin C Date: Wed, 5 Jul 2023 14:05:58 +0530 Subject: [PATCH 12/14] 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)) - } - } From 26dd64dde30ba4500311fbd7d1ddcfd4fead4e13 Mon Sep 17 00:00:00 2001 From: Tibor Kaputa Date: Wed, 5 Jul 2023 11:20:01 +0200 Subject: [PATCH 13/14] removing an empty line --- .../simplemobiletools/clock/receivers/DismissAlarmReceiver.kt | 1 - 1 file changed, 1 deletion(-) 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 13f0f6e8..36492a54 100644 --- a/app/src/main/kotlin/com/simplemobiletools/clock/receivers/DismissAlarmReceiver.kt +++ b/app/src/main/kotlin/com/simplemobiletools/clock/receivers/DismissAlarmReceiver.kt @@ -46,7 +46,6 @@ class DismissAlarmReceiver : BroadcastReceiver() { calendar.firstDayOfWeek = Calendar.MONDAY val dayOfWeek = (calendar.get(Calendar.DAY_OF_WEEK) + 5) % 7 val todayBitmask = 2.0.pow(dayOfWeek).toInt() - return bitmask.removeBit(todayBitmask) } } From 4400477eaf162c8a568168243409436ece413dd2 Mon Sep 17 00:00:00 2001 From: Tibor Kaputa Date: Wed, 5 Jul 2023 11:20:46 +0200 Subject: [PATCH 14/14] updating the slovak string --- app/src/main/res/values-sk/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-sk/strings.xml b/app/src/main/res/values-sk/strings.xml index 33c552f5..99f9395f 100644 --- a/app/src/main/res/values-sk/strings.xml +++ b/app/src/main/res/values-sk/strings.xml @@ -28,7 +28,7 @@ Nenašli sa žiadne časovače Pridať časovač Nadchádzajúci budík - Early Alarm Dismissal + Predčasné zrušenie budíka Sú spustené časovače