mirror of
https://github.com/SimpleMobileTools/Simple-Clock.git
synced 2025-06-05 22:19:17 +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.R
|
||||||
import com.simplemobiletools.clock.adapters.ViewPagerAdapter
|
import com.simplemobiletools.clock.adapters.ViewPagerAdapter
|
||||||
import com.simplemobiletools.clock.extensions.config
|
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.OPEN_TAB
|
||||||
import com.simplemobiletools.clock.helpers.TABS_COUNT
|
import com.simplemobiletools.clock.helpers.TABS_COUNT
|
||||||
import com.simplemobiletools.clock.helpers.TAB_CLOCK
|
import com.simplemobiletools.clock.helpers.TAB_CLOCK
|
||||||
@ -31,6 +33,12 @@ class MainActivity : SimpleActivity() {
|
|||||||
appLaunched()
|
appLaunched()
|
||||||
storeStateVariables()
|
storeStateVariables()
|
||||||
initFragments()
|
initFragments()
|
||||||
|
|
||||||
|
if (getNextAlarm().isEmpty()) {
|
||||||
|
Thread {
|
||||||
|
rescheduleEnabledAlarms()
|
||||||
|
}.start()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onResume() {
|
override fun onResume() {
|
||||||
|
@ -9,6 +9,7 @@ import android.content.ComponentName
|
|||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import android.media.RingtoneManager
|
import android.media.RingtoneManager
|
||||||
|
import android.provider.Settings
|
||||||
import android.text.SpannableString
|
import android.text.SpannableString
|
||||||
import android.text.style.RelativeSizeSpan
|
import android.text.style.RelativeSizeSpan
|
||||||
import android.widget.Toast
|
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
|
val newHours = if (hours == 0 || hours == 12) 12 else hours % 12
|
||||||
return "${formatTime(showSeconds, false, newHours, minutes, seconds)} $appendable"
|
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> {
|
fun getAlarms(): ArrayList<Alarm> {
|
||||||
val alarms = 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)
|
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.ComponentName
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import android.provider.Settings
|
|
||||||
import android.widget.RemoteViews
|
import android.widget.RemoteViews
|
||||||
import com.simplemobiletools.clock.R
|
import com.simplemobiletools.clock.R
|
||||||
import com.simplemobiletools.clock.activities.SplashActivity
|
import com.simplemobiletools.clock.activities.SplashActivity
|
||||||
@ -90,7 +89,7 @@ class MyWidgetDateTimeProvider : AppWidgetProvider() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun getFormattedNextAlarm(context: Context): String {
|
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()) {
|
if (nextAlarm.isEmpty()) {
|
||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
|
@ -3,14 +3,11 @@ package com.simplemobiletools.clock.receivers
|
|||||||
import android.content.BroadcastReceiver
|
import android.content.BroadcastReceiver
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import com.simplemobiletools.clock.extensions.dbHelper
|
import com.simplemobiletools.clock.extensions.rescheduleEnabledAlarms
|
||||||
import com.simplemobiletools.clock.extensions.scheduleNextAlarm
|
|
||||||
|
|
||||||
class BootCompletedReceiver : BroadcastReceiver() {
|
class BootCompletedReceiver : BroadcastReceiver() {
|
||||||
|
|
||||||
override fun onReceive(context: Context, intent: Intent) {
|
override fun onReceive(context: Context, intent: Intent) {
|
||||||
context.dbHelper.getAlarms().filter { it.isEnabled }.forEach {
|
context.rescheduleEnabledAlarms()
|
||||||
context.scheduleNextAlarm(it, false)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user