mirror of
https://github.com/SimpleMobileTools/Simple-Clock.git
synced 2025-02-01 19:16:49 +01:00
Merge branch 'master' into next-alarm-fix
This commit is contained in:
commit
8bc80fd28f
@ -124,6 +124,10 @@
|
||||
|
||||
<receiver android:name=".receivers.HideAlarmReceiver" />
|
||||
|
||||
<receiver android:name=".receivers.DismissAlarmReceiver" />
|
||||
|
||||
<receiver android:name=".receivers.EarlyAlarmDismissalReceiver" />
|
||||
|
||||
<receiver
|
||||
android:name=".receivers.BootCompletedReceiver"
|
||||
android:exported="true">
|
||||
|
@ -27,17 +27,18 @@ 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 kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.withContext
|
||||
import java.text.SimpleDateFormat
|
||||
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
|
||||
|
||||
val Context.config: Config get() = Config.newInstance(applicationContext)
|
||||
|
||||
@ -147,11 +148,26 @@ fun Context.setupAlarmClock(alarm: Alarm, triggerInSeconds: Int) {
|
||||
val targetMS = System.currentTimeMillis() + triggerInSeconds * 1000
|
||||
try {
|
||||
AlarmManagerCompat.setAlarmClock(alarmManager, targetMS, getOpenAlarmTabIntent(), getAlarmIntent(alarm))
|
||||
|
||||
// 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 - 10.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)
|
||||
}
|
||||
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)
|
||||
@ -427,6 +443,14 @@ fun Context.getHideAlarmPendingIntent(alarm: Alarm, channelId: String): PendingI
|
||||
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) {
|
||||
|
@ -26,20 +26,24 @@ 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 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 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 OPEN_APP_INTENT_ID = 9997
|
||||
const val ALARM_NOTIF_ID = 9998
|
||||
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
|
||||
|
@ -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
|
||||
)
|
||||
|
@ -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({
|
||||
|
@ -0,0 +1,51 @@
|
||||
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.extensions.removeBit
|
||||
import com.simplemobiletools.commons.helpers.ensureBackgroundThread
|
||||
import java.util.Calendar
|
||||
import kotlin.math.pow
|
||||
|
||||
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, false)
|
||||
alarm.days = oldBitmask
|
||||
}
|
||||
|
||||
private fun removeTodayFromBitmask(bitmask: Int): Int {
|
||||
val calendar = Calendar.getInstance()
|
||||
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)
|
||||
}
|
||||
}
|
@ -0,0 +1,58 @@
|
||||
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 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
|
||||
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
|
||||
}
|
||||
|
||||
triggerEarlyDismissalNotification(context, alarmId)
|
||||
}
|
||||
|
||||
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 {
|
||||
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(context.getNextAlarm())
|
||||
.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)
|
||||
}
|
||||
|
||||
}
|
@ -29,6 +29,8 @@
|
||||
<string name="no_timers_found">لم يتم العثور على موقتات</string>
|
||||
<string name="add_timer">Add timer</string>
|
||||
<string name="upcoming_alarm">التنبيه القادم</string>
|
||||
<string name="early_alarm_dismissal">Early alarm dismissal</string>
|
||||
|
||||
<!--Timer-->
|
||||
<string name="timers_notification_msg">أجهزة ضبط الوقت قيد التشغيل</string>
|
||||
<string name="timer_single_notification_label_msg">عداد الوقت لـ %s قيد التشغيل</string>
|
||||
@ -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
|
||||
-->
|
||||
</resources>
|
||||
</resources>
|
||||
|
@ -28,6 +28,7 @@
|
||||
<string name="no_timers_found">No timers found</string>
|
||||
<string name="add_timer">Add timer</string>
|
||||
<string name="upcoming_alarm">Upcoming alarm</string>
|
||||
<string name="early_alarm_dismissal">Early alarm dismissal</string>
|
||||
|
||||
<!--Timer-->
|
||||
<string name="timers_notification_msg">Timers are running</string>
|
||||
|
@ -29,6 +29,8 @@
|
||||
<string name="no_timers_found">Таймеры не знойдзены</string>
|
||||
<string name="add_timer">Add timer</string>
|
||||
<string name="upcoming_alarm">Маючы адбыцца будзільнік</string>
|
||||
<string name="early_alarm_dismissal">Early alarm dismissal</string>
|
||||
|
||||
<!--Timer-->
|
||||
<string name="timers_notification_msg">Таймеры запушчаны</string>
|
||||
<string name="timer_single_notification_label_msg">Таймер для %s запушчаны</string>
|
||||
@ -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
|
||||
-->
|
||||
</resources>
|
||||
</resources>
|
||||
|
@ -29,6 +29,7 @@
|
||||
<string name="no_timers_found">No timers found</string>
|
||||
<string name="add_timer">Add timer</string>
|
||||
<string name="upcoming_alarm">Upcoming alarm</string>
|
||||
<string name="early_alarm_dismissal">Early alarm dismissal</string>
|
||||
<!--Timer-->
|
||||
<string name="timers_notification_msg">Таймерите са включени</string>
|
||||
<string name="timer_single_notification_label_msg">Таймерът за %s е включен</string>
|
||||
|
@ -29,6 +29,8 @@
|
||||
<string name="no_timers_found">No s\'ha trobat cap temporitzador</string>
|
||||
<string name="add_timer">Add timer</string>
|
||||
<string name="upcoming_alarm">Pròxima alarma</string>
|
||||
<string name="early_alarm_dismissal">Early alarm dismissal</string>
|
||||
|
||||
<!--Timer-->
|
||||
<string name="timers_notification_msg">Els temporitzadors estan en marxa</string>
|
||||
<string name="timer_single_notification_label_msg">El temporitzador per a %s està en marxa</string>
|
||||
@ -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
|
||||
-->
|
||||
</resources>
|
||||
</resources>
|
||||
|
@ -29,6 +29,8 @@
|
||||
<string name="no_timers_found">Nenalezeny žádné časovače</string>
|
||||
<string name="add_timer">Přidat časovač</string>
|
||||
<string name="upcoming_alarm">Nadcházející budík</string>
|
||||
<string name="early_alarm_dismissal">Early alarm dismissal</string>
|
||||
|
||||
<!--Timer-->
|
||||
<string name="timers_notification_msg">Časovače běží</string>
|
||||
<string name="timer_single_notification_label_msg">Časovač pro %s běží</string>
|
||||
@ -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
|
||||
-->
|
||||
</resources>
|
||||
</resources>
|
||||
|
@ -29,6 +29,8 @@
|
||||
<string name="no_timers_found">No timers found</string>
|
||||
<string name="add_timer">Add timer</string>
|
||||
<string name="upcoming_alarm">Upcoming alarm</string>
|
||||
<string name="early_alarm_dismissal">Early alarm dismissal</string>
|
||||
|
||||
<!--Timer-->
|
||||
<string name="timers_notification_msg">Timers are running</string>
|
||||
<string name="timer_single_notification_label_msg">Timer for %s is running</string>
|
||||
|
@ -28,6 +28,7 @@
|
||||
<string name="no_timers_found">No timers found</string>
|
||||
<string name="add_timer">Add timer</string>
|
||||
<string name="upcoming_alarm">Upcoming alarm</string>
|
||||
<string name="early_alarm_dismissal">Early alarm dismissal</string>
|
||||
|
||||
<!--Timer-->
|
||||
<string name="timers_notification_msg">Timers are running</string>
|
||||
|
@ -29,6 +29,8 @@
|
||||
<string name="no_timers_found">Keine Timer gefunden</string>
|
||||
<string name="add_timer">Timer hinzufügen</string>
|
||||
<string name="upcoming_alarm">Bevorstehender Alarm</string>
|
||||
<string name="early_alarm_dismissal">Early alarm dismissal</string>
|
||||
|
||||
<!--Timer-->
|
||||
<string name="timers_notification_msg">Die Timer laufen</string>
|
||||
<string name="timer_single_notification_label_msg">Timer für %s läuft</string>
|
||||
@ -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
|
||||
-->
|
||||
</resources>
|
||||
</resources>
|
||||
|
@ -29,6 +29,8 @@
|
||||
<string name="no_timers_found">Δεν βρέθηκαν χρονόμετρα</string>
|
||||
<string name="add_timer">Προσθήκη χρονόμετρου</string>
|
||||
<string name="upcoming_alarm">Επερχόμενη αφύπνιση</string>
|
||||
<string name="early_alarm_dismissal">Early alarm dismissal</string>
|
||||
|
||||
<!--Timer-->
|
||||
<string name="timers_notification_msg">Τα χρονόμετρα σε λειτουργία</string>
|
||||
<string name="timer_single_notification_label_msg">Το χρονόμετρο για %s σε λειτουργία</string>
|
||||
|
@ -29,6 +29,7 @@
|
||||
<string name="no_timers_found">No timers found</string>
|
||||
<string name="add_timer">Add timer</string>
|
||||
<string name="upcoming_alarm">Upcoming alarm</string>
|
||||
<string name="early_alarm_dismissal">Early alarm dismissal</string>
|
||||
|
||||
<!--Timer-->
|
||||
<string name="timers_notification_msg">Timers are running</string>
|
||||
|
@ -29,6 +29,8 @@
|
||||
<string name="no_timers_found">No se encontraron temporizadores</string>
|
||||
<string name="add_timer">Add timer</string>
|
||||
<string name="upcoming_alarm">Próxima alarma</string>
|
||||
<string name="early_alarm_dismissal">Early alarm dismissal</string>
|
||||
|
||||
<!--Timer-->
|
||||
<string name="timers_notification_msg">Los temporizadores están en marcha</string>
|
||||
<string name="timer_single_notification_label_msg">El temporizador para %s está en marcha</string>
|
||||
@ -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
|
||||
-->
|
||||
</resources>
|
||||
</resources>
|
||||
|
@ -29,6 +29,8 @@
|
||||
<string name="no_timers_found">Ei leitud taimereid</string>
|
||||
<string name="add_timer">Lisage taimer</string>
|
||||
<string name="upcoming_alarm">Järgmine äratus</string>
|
||||
<string name="early_alarm_dismissal">Early alarm dismissal</string>
|
||||
|
||||
<!--Timer-->
|
||||
<string name="timers_notification_msg">Taimerid töötavad</string>
|
||||
<string name="timer_single_notification_label_msg">%s taimer töötab</string>
|
||||
@ -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
|
||||
-->
|
||||
</resources>
|
||||
</resources>
|
||||
|
@ -28,6 +28,7 @@
|
||||
<string name="no_timers_found">No timers found</string>
|
||||
<string name="add_timer">Add timer</string>
|
||||
<string name="upcoming_alarm">Upcoming alarm</string>
|
||||
<string name="early_alarm_dismissal">Early alarm dismissal</string>
|
||||
|
||||
<!--Timer-->
|
||||
<string name="timers_notification_msg">Timers are running</string>
|
||||
|
@ -29,6 +29,8 @@
|
||||
<string name="no_timers_found">Ajastuksia ei löytynyt</string>
|
||||
<string name="add_timer">Lisää ajastus</string>
|
||||
<string name="upcoming_alarm">Ajastettu herätys</string>
|
||||
<string name="early_alarm_dismissal">Early alarm dismissal</string>
|
||||
|
||||
<!--Timer-->
|
||||
<string name="timers_notification_msg">Ajastuksia on käynnissä</string>
|
||||
<string name="timer_single_notification_label_msg">%s ajastus on käynnissä</string>
|
||||
@ -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
|
||||
-->
|
||||
</resources>
|
||||
</resources>
|
||||
|
@ -29,6 +29,8 @@
|
||||
<string name="no_timers_found">Aucune minuterie trouvée</string>
|
||||
<string name="add_timer">Ajouter une minuterie</string>
|
||||
<string name="upcoming_alarm">Alarme à venir</string>
|
||||
<string name="early_alarm_dismissal">Early alarm dismissal</string>
|
||||
|
||||
<!--Timer-->
|
||||
<string name="timers_notification_msg">Les minuteries sont en marche</string>
|
||||
<string name="timer_single_notification_label_msg">La minuterie de %s est en marche</string>
|
||||
@ -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
|
||||
-->
|
||||
</resources>
|
||||
</resources>
|
||||
|
@ -29,6 +29,8 @@
|
||||
<string name="no_timers_found">Non se atoparon temporizadores</string>
|
||||
<string name="add_timer">Engadir temporizador</string>
|
||||
<string name="upcoming_alarm">Próxima alarma</string>
|
||||
<string name="early_alarm_dismissal">Early alarm dismissal</string>
|
||||
|
||||
<!--Timer-->
|
||||
<string name="timers_notification_msg">Os temporizadores atopanse traballando</string>
|
||||
<string name="timer_single_notification_label_msg">O temporizador para %s atopase traballando</string>
|
||||
@ -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
|
||||
-->
|
||||
</resources>
|
||||
</resources>
|
||||
|
@ -29,6 +29,8 @@
|
||||
<string name="no_timers_found">Nema brojača vremena</string>
|
||||
<string name="add_timer">Dodaj brojač vremena</string>
|
||||
<string name="upcoming_alarm">Nadolazeći alarm</string>
|
||||
<string name="early_alarm_dismissal">Early alarm dismissal</string>
|
||||
|
||||
<!--Timer-->
|
||||
<string name="timers_notification_msg">Brojači su pokrenuti</string>
|
||||
<string name="timer_single_notification_label_msg">Brojač za %s je pokrenut</string>
|
||||
@ -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
|
||||
-->
|
||||
</resources>
|
||||
</resources>
|
||||
|
@ -29,6 +29,8 @@
|
||||
<string name="no_timers_found">Nincsenek időzitők</string>
|
||||
<string name="add_timer">Időzítő hozzáadása</string>
|
||||
<string name="upcoming_alarm">Közelgő riasztás</string>
|
||||
<string name="early_alarm_dismissal">Early alarm dismissal</string>
|
||||
|
||||
<!--Timer-->
|
||||
<string name="timers_notification_msg">Az időzítő megy</string>
|
||||
<string name="timer_single_notification_label_msg">A(z) %s időzítő fut</string>
|
||||
@ -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
|
||||
-->
|
||||
</resources>
|
||||
</resources>
|
||||
|
@ -29,6 +29,8 @@
|
||||
<string name="no_timers_found">Tidak ada pewaktu yang ditemukan</string>
|
||||
<string name="add_timer">Tambahkan pewaktu</string>
|
||||
<string name="upcoming_alarm">Alarm berikut</string>
|
||||
<string name="early_alarm_dismissal">Early alarm dismissal</string>
|
||||
|
||||
<!--Timer-->
|
||||
<string name="timers_notification_msg">Pewaktu sedang berjalan</string>
|
||||
<string name="timer_single_notification_label_msg">Pewaktu untuk %s sedang berjalan</string>
|
||||
@ -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
|
||||
-->
|
||||
</resources>
|
||||
</resources>
|
||||
|
@ -29,6 +29,8 @@
|
||||
<string name="no_timers_found">Nessun contaminuti trovato</string>
|
||||
<string name="add_timer">Aggiungi contaminuti</string>
|
||||
<string name="upcoming_alarm">Allarme imminente</string>
|
||||
<string name="early_alarm_dismissal">Early alarm dismissal</string>
|
||||
|
||||
<!--Timer-->
|
||||
<string name="timers_notification_msg">I contaminuti sono in funzione</string>
|
||||
<string name="timer_single_notification_label_msg">Il contaminuti per %s è in funzione</string>
|
||||
@ -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
|
||||
-->
|
||||
</resources>
|
||||
</resources>
|
||||
|
@ -29,6 +29,8 @@
|
||||
<string name="no_timers_found">No timers found</string>
|
||||
<string name="add_timer">Add timer</string>
|
||||
<string name="upcoming_alarm">Upcoming alarm</string>
|
||||
<string name="early_alarm_dismissal">Early alarm dismissal</string>
|
||||
|
||||
<!--Timer-->
|
||||
<string name="timers_notification_msg">טיימר פועל</string>
|
||||
<string name="timer_single_notification_label_msg">טיימר עבור %s פועל</string>
|
||||
|
@ -29,6 +29,8 @@
|
||||
<string name="no_timers_found">タイマーが見つかりません</string>
|
||||
<string name="add_timer">タイマーを追加</string>
|
||||
<string name="upcoming_alarm">今後のアラーム</string>
|
||||
<string name="early_alarm_dismissal">Early alarm dismissal</string>
|
||||
|
||||
<!--Timer-->
|
||||
<string name="timers_notification_msg">タイマーが作動中</string>
|
||||
<string name="timer_single_notification_label_msg">タイマー %s が作動中</string>
|
||||
@ -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
|
||||
-->
|
||||
</resources>
|
||||
</resources>
|
||||
|
@ -28,6 +28,7 @@
|
||||
<string name="no_timers_found">No timers found</string>
|
||||
<string name="add_timer">Add timer</string>
|
||||
<string name="upcoming_alarm">Upcoming alarm</string>
|
||||
<string name="early_alarm_dismissal">Early alarm dismissal</string>
|
||||
|
||||
<!--Timer-->
|
||||
<string name="timers_notification_msg">Timers are running</string>
|
||||
|
@ -29,6 +29,8 @@
|
||||
<string name="no_timers_found">ടൈമറുകളൊന്നും കണ്ടെത്തിയില്ല</string>
|
||||
<string name="add_timer">ടൈമർ ചേർക്കുക</string>
|
||||
<string name="upcoming_alarm">Upcoming alarm</string>
|
||||
<string name="early_alarm_dismissal">Early alarm dismissal</string>
|
||||
|
||||
<!--Timer-->
|
||||
<string name="timers_notification_msg">ടൈമറുകൾ പ്രവർത്തിക്കുന്നു</string>
|
||||
<string name="timer_single_notification_label_msg">%s-നുള്ള ടൈമർ പ്രവർത്തിക്കുന്നു</string>
|
||||
@ -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
|
||||
-->
|
||||
</resources>
|
||||
</resources>
|
||||
|
@ -29,6 +29,8 @@
|
||||
<string name="no_timers_found">Ingen timere funnet</string>
|
||||
<string name="add_timer">Add timer</string>
|
||||
<string name="upcoming_alarm">Kommende alarm</string>
|
||||
<string name="early_alarm_dismissal">Early alarm dismissal</string>
|
||||
|
||||
<!--Timer-->
|
||||
<string name="timers_notification_msg">Timere er i gang</string>
|
||||
<string name="timer_single_notification_label_msg">Timer for %s er i gang</string>
|
||||
@ -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
|
||||
-->
|
||||
</resources>
|
||||
</resources>
|
||||
|
@ -29,6 +29,8 @@
|
||||
<string name="no_timers_found">Geen timers</string>
|
||||
<string name="add_timer">Timer toevoegen</string>
|
||||
<string name="upcoming_alarm">Volgende wekker</string>
|
||||
<string name="early_alarm_dismissal">Early alarm dismissal</string>
|
||||
|
||||
<!--Timer-->
|
||||
<string name="timers_notification_msg">Timers lopen</string>
|
||||
<string name="timer_single_notification_label_msg">Timer voor %s loopt</string>
|
||||
@ -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
|
||||
-->
|
||||
</resources>
|
||||
</resources>
|
||||
|
@ -32,6 +32,7 @@
|
||||
<string name="upcoming_alarm">Upcoming alarm</string>
|
||||
<string name="timers_notification_msg">سماں والے چالو کیتے جا رہے اے</string>
|
||||
<string name="timer_single_notification_label_msg">%s لئی سماں والا چالو کیتا جا رہا اے</string>
|
||||
<string name="early_alarm_dismissal">Early alarm dismissal</string>
|
||||
<plurals name="timer_notification_msg">
|
||||
<item quantity="one">%d سماں والا چالو کیتا جا رہا اے</item>
|
||||
<item quantity="other">%d سماں والے چالو کیتے جا رہے اے</item>
|
||||
|
@ -29,6 +29,8 @@
|
||||
<string name="no_timers_found">Nie znaleziono minutników</string>
|
||||
<string name="add_timer">Dodaj minutnik</string>
|
||||
<string name="upcoming_alarm">Nadchodzący alarm</string>
|
||||
<string name="early_alarm_dismissal">Early alarm dismissal</string>
|
||||
|
||||
<!--Timer-->
|
||||
<string name="timers_notification_msg">Minutniki są uruchomione</string>
|
||||
<string name="timer_single_notification_label_msg">Minutnik dla %s jest uruchomiony</string>
|
||||
@ -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
|
||||
-->
|
||||
</resources>
|
||||
</resources>
|
||||
|
@ -29,6 +29,8 @@
|
||||
<string name="no_timers_found">Nenhum temporizador encontrado</string>
|
||||
<string name="add_timer">Adicionar temporizador</string>
|
||||
<string name="upcoming_alarm">Próximo alarme</string>
|
||||
<string name="early_alarm_dismissal">Early alarm dismissal</string>
|
||||
|
||||
<!--Timer-->
|
||||
<string name="timers_notification_msg">Temporizadores em execução</string>
|
||||
<string name="timer_single_notification_label_msg">O temporizador para %s está em execução</string>
|
||||
|
@ -29,6 +29,8 @@
|
||||
<string name="no_timers_found">Nenhum temporizador encontrado</string>
|
||||
<string name="add_timer">Adicionar temporizador</string>
|
||||
<string name="upcoming_alarm">Próximo alarme</string>
|
||||
<string name="early_alarm_dismissal">Early alarm dismissal</string>
|
||||
|
||||
<!--Timer-->
|
||||
<string name="timers_notification_msg">Temporizadores em curso</string>
|
||||
<string name="timer_single_notification_label_msg">Temporizador para %s está em curso</string>
|
||||
@ -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
|
||||
-->
|
||||
</resources>
|
||||
</resources>
|
||||
|
@ -29,6 +29,8 @@
|
||||
<string name="no_timers_found">Nu au fost găsite temporizatoare</string>
|
||||
<string name="add_timer">Adaugă temporizator</string>
|
||||
<string name="upcoming_alarm">Upcoming alarm</string>
|
||||
<string name="early_alarm_dismissal">Early alarm dismissal</string>
|
||||
|
||||
<!--Timer-->
|
||||
<string name="timers_notification_msg">Temporizatoarele sunt pornite</string>
|
||||
<string name="timer_single_notification_label_msg">Temporizatorul de %s este pornit</string>
|
||||
|
@ -29,6 +29,8 @@
|
||||
<string name="no_timers_found">Таймеры отсутствуют</string>
|
||||
<string name="add_timer">Добавить таймер</string>
|
||||
<string name="upcoming_alarm">Предстоящий будильник</string>
|
||||
<string name="early_alarm_dismissal">Early alarm dismissal</string>
|
||||
|
||||
<!--Timer-->
|
||||
<string name="timers_notification_msg">Таймеры запущены</string>
|
||||
<string name="timer_single_notification_label_msg">Таймер для %s запущен</string>
|
||||
@ -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
|
||||
-->
|
||||
</resources>
|
||||
</resources>
|
||||
|
@ -28,6 +28,7 @@
|
||||
<string name="no_timers_found">Nenašli sa žiadne časovače</string>
|
||||
<string name="add_timer">Pridať časovač</string>
|
||||
<string name="upcoming_alarm">Nadchádzajúci budík</string>
|
||||
<string name="early_alarm_dismissal">Predčasné zrušenie budíka</string>
|
||||
|
||||
<!--Timer-->
|
||||
<string name="timers_notification_msg">Sú spustené časovače</string>
|
||||
|
@ -29,6 +29,8 @@
|
||||
<string name="no_timers_found">Ni časovnikov</string>
|
||||
<string name="add_timer">Dodajte časovnik</string>
|
||||
<string name="upcoming_alarm">Upcoming alarm</string>
|
||||
<string name="early_alarm_dismissal">Early alarm dismissal</string>
|
||||
|
||||
<!-- Timer -->
|
||||
<string name="timers_notification_msg">Tečejo časovniki</string>
|
||||
<string name="timer_single_notification_label_msg">Časovnik za %s teče</string>
|
||||
|
@ -32,6 +32,7 @@
|
||||
<string name="timers_notification_msg">Тајмери раде</string>
|
||||
<string name="timer_single_notification_label_msg">Тајмер за %s је покренут</string>
|
||||
<string name="new_timer">Нови тајмер</string>
|
||||
<string name="early_alarm_dismissal">Early alarm dismissal</string>
|
||||
<plurals name="timer_notification_msg">
|
||||
<item quantity="one">%d тајмер ради</item>
|
||||
<item quantity="few">%d тајмери раде</item>
|
||||
|
@ -29,6 +29,8 @@
|
||||
<string name="no_timers_found">Inga timers hittades</string>
|
||||
<string name="add_timer">Lägg till timer</string>
|
||||
<string name="upcoming_alarm">Kommande alarm</string>
|
||||
<string name="early_alarm_dismissal">Early alarm dismissal</string>
|
||||
|
||||
<!--Timer-->
|
||||
<string name="timers_notification_msg">Timers är igång</string>
|
||||
<string name="timer_single_notification_label_msg">Timer för %s är igång</string>
|
||||
@ -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
|
||||
-->
|
||||
</resources>
|
||||
</resources>
|
||||
|
@ -29,6 +29,7 @@
|
||||
<string name="no_timers_found">No timers found</string>
|
||||
<string name="add_timer">Add timer</string>
|
||||
<string name="upcoming_alarm">Upcoming alarm</string>
|
||||
<string name="early_alarm_dismissal">Early alarm dismissal</string>
|
||||
|
||||
<!--Timer-->
|
||||
<string name="timers_notification_msg">Timers are running</string>
|
||||
|
@ -29,6 +29,8 @@
|
||||
<string name="no_timers_found">Zamanlayıcı bulunamadı</string>
|
||||
<string name="add_timer">Zamanlayıcı ekle</string>
|
||||
<string name="upcoming_alarm">Yaklaşan alarm</string>
|
||||
<string name="early_alarm_dismissal">Early alarm dismissal</string>
|
||||
|
||||
<!--Timer-->
|
||||
<string name="timers_notification_msg">Zamanlayıcılar çalışıyor</string>
|
||||
<string name="timer_single_notification_label_msg">%s için zamanlayıcı çalışıyor</string>
|
||||
@ -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
|
||||
-->
|
||||
</resources>
|
||||
</resources>
|
||||
|
@ -29,6 +29,8 @@
|
||||
<string name="no_timers_found">Таймерів не знайдено</string>
|
||||
<string name="add_timer">Add timer</string>
|
||||
<string name="upcoming_alarm">Майбутній будильник</string>
|
||||
<string name="early_alarm_dismissal">Early alarm dismissal</string>
|
||||
|
||||
<!--Timer-->
|
||||
<string name="timers_notification_msg">Таймери працюють</string>
|
||||
<string name="timer_single_notification_label_msg">Таймер для %s працює</string>
|
||||
@ -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
|
||||
-->
|
||||
</resources>
|
||||
</resources>
|
||||
|
@ -29,6 +29,8 @@
|
||||
<string name="no_timers_found">未找到计时器</string>
|
||||
<string name="add_timer">添加计时器</string>
|
||||
<string name="upcoming_alarm">即将到来的闹铃</string>
|
||||
<string name="early_alarm_dismissal">Early alarm dismissal</string>
|
||||
|
||||
<!--Timer-->
|
||||
<string name="timers_notification_msg">计时器正在运行</string>
|
||||
<string name="timer_single_notification_label_msg">%s 的计时器正在运行</string>
|
||||
@ -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
|
||||
-->
|
||||
</resources>
|
||||
</resources>
|
||||
|
@ -28,6 +28,7 @@
|
||||
<string name="no_timers_found">No timers found</string>
|
||||
<string name="add_timer">Add timer</string>
|
||||
<string name="upcoming_alarm">Upcoming alarm</string>
|
||||
<string name="early_alarm_dismissal">Early alarm dismissal</string>
|
||||
|
||||
<!--Timer-->
|
||||
<string name="timers_notification_msg">Timers are running</string>
|
||||
|
@ -29,6 +29,7 @@
|
||||
<string name="no_timers_found">No timers found</string>
|
||||
<string name="add_timer">Add timer</string>
|
||||
<string name="upcoming_alarm">Upcoming alarm</string>
|
||||
<string name="early_alarm_dismissal">Early alarm dismissal</string>
|
||||
|
||||
<!-- Timer -->
|
||||
<string name="timers_notification_msg">Timers are running</string>
|
||||
|
Loading…
x
Reference in New Issue
Block a user