mirror of
https://github.com/SimpleMobileTools/Simple-Clock.git
synced 2025-05-31 19:29:14 +02:00
adding an extra check to make sure alarms are scheduled at app launch
This commit is contained in:
parent
94599b9dd7
commit
8d9e7181a0
@ -10,6 +10,8 @@ import com.simplemobiletools.clock.BuildConfig
|
||||
import com.simplemobiletools.clock.R
|
||||
import com.simplemobiletools.clock.adapters.ViewPagerAdapter
|
||||
import com.simplemobiletools.clock.extensions.config
|
||||
import com.simplemobiletools.clock.extensions.getNextAlarm
|
||||
import com.simplemobiletools.clock.extensions.rescheduleEnabledAlarms
|
||||
import com.simplemobiletools.clock.helpers.OPEN_TAB
|
||||
import com.simplemobiletools.clock.helpers.TABS_COUNT
|
||||
import com.simplemobiletools.clock.helpers.TAB_CLOCK
|
||||
@ -31,6 +33,12 @@ class MainActivity : SimpleActivity() {
|
||||
appLaunched()
|
||||
storeStateVariables()
|
||||
initFragments()
|
||||
|
||||
if (getNextAlarm().isEmpty()) {
|
||||
Thread {
|
||||
rescheduleEnabledAlarms()
|
||||
}.start()
|
||||
}
|
||||
}
|
||||
|
||||
override fun onResume() {
|
||||
|
@ -9,6 +9,7 @@ import android.content.ComponentName
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.media.RingtoneManager
|
||||
import android.provider.Settings
|
||||
import android.text.SpannableString
|
||||
import android.text.style.RelativeSizeSpan
|
||||
import android.widget.Toast
|
||||
@ -208,3 +209,11 @@ fun Context.formatTo12HourFormat(showSeconds: Boolean, hours: Int, minutes: Int,
|
||||
val newHours = if (hours == 0 || hours == 12) 12 else hours % 12
|
||||
return "${formatTime(showSeconds, false, newHours, minutes, seconds)} $appendable"
|
||||
}
|
||||
|
||||
fun Context.getNextAlarm() = Settings.System.getString(contentResolver, Settings.System.NEXT_ALARM_FORMATTED)
|
||||
|
||||
fun Context.rescheduleEnabledAlarms() {
|
||||
dbHelper.getEnabledAlarms().forEach {
|
||||
scheduleNextAlarm(it, false)
|
||||
}
|
||||
}
|
||||
|
@ -97,6 +97,8 @@ class DBHelper private constructor(val context: Context) : SQLiteOpenHelper(cont
|
||||
}
|
||||
}
|
||||
|
||||
fun getEnabledAlarms() = getAlarms().filter { it.isEnabled }
|
||||
|
||||
fun getAlarms(): ArrayList<Alarm> {
|
||||
val alarms = ArrayList<Alarm>()
|
||||
val cols = arrayOf(COL_ID, COL_TIME_IN_MINUTES, COL_DAYS, COL_IS_ENABLED, COL_VIBRATE, COL_SOUND_TITLE, COL_SOUND_URI, COL_LABEL)
|
||||
|
@ -6,7 +6,6 @@ import android.appwidget.AppWidgetProvider
|
||||
import android.content.ComponentName
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.provider.Settings
|
||||
import android.widget.RemoteViews
|
||||
import com.simplemobiletools.clock.R
|
||||
import com.simplemobiletools.clock.activities.SplashActivity
|
||||
@ -90,7 +89,7 @@ class MyWidgetDateTimeProvider : AppWidgetProvider() {
|
||||
}
|
||||
|
||||
private fun getFormattedNextAlarm(context: Context): String {
|
||||
val nextAlarm = Settings.System.getString(context.contentResolver, Settings.System.NEXT_ALARM_FORMATTED)
|
||||
val nextAlarm = context.getNextAlarm()
|
||||
if (nextAlarm.isEmpty()) {
|
||||
return ""
|
||||
}
|
||||
|
@ -3,14 +3,11 @@ package com.simplemobiletools.clock.receivers
|
||||
import android.content.BroadcastReceiver
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import com.simplemobiletools.clock.extensions.dbHelper
|
||||
import com.simplemobiletools.clock.extensions.scheduleNextAlarm
|
||||
import com.simplemobiletools.clock.extensions.rescheduleEnabledAlarms
|
||||
|
||||
class BootCompletedReceiver : BroadcastReceiver() {
|
||||
|
||||
override fun onReceive(context: Context, intent: Intent) {
|
||||
context.dbHelper.getAlarms().filter { it.isEnabled }.forEach {
|
||||
context.scheduleNextAlarm(it, false)
|
||||
}
|
||||
context.rescheduleEnabledAlarms()
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user