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