adding an extra check to make sure alarms are scheduled at app launch

This commit is contained in:
tibbi 2018-03-13 18:51:14 +01:00
parent 94599b9dd7
commit 8d9e7181a0
5 changed files with 22 additions and 7 deletions

View File

@ -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() {

View File

@ -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)
}
}

View File

@ -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)

View File

@ -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 ""
}

View File

@ -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()
}
}