update timer and alarm sounds if the current selection has been deleted

This commit is contained in:
tibbi 2018-03-29 23:43:31 +02:00
parent b9adb1306b
commit 3cf6ef12bf
3 changed files with 24 additions and 3 deletions

View File

@ -155,12 +155,16 @@ class MainActivity : SimpleActivity() {
when (view_pager.currentItem) { when (view_pager.currentItem) {
TAB_ALARM -> getViewPagerAdapter()?.updateAlarmTabAlarmSound(newAlarmSound) TAB_ALARM -> getViewPagerAdapter()?.updateAlarmTabAlarmSound(newAlarmSound)
TAB_TIMER -> getViewPagerAdapter()?.updateTimerTabAlarmSound(newAlarmSound) TAB_TIMER -> updateTimerTabAlarmSound(newAlarmSound)
} }
} }
private fun getViewPagerAdapter() = view_pager.adapter as? ViewPagerAdapter private fun getViewPagerAdapter() = view_pager.adapter as? ViewPagerAdapter
fun updateTimerTabAlarmSound(alarmSound: AlarmSound) {
getViewPagerAdapter()?.updateTimerTabAlarmSound(alarmSound)
}
private fun initFragments() { private fun initFragments() {
view_pager.adapter = ViewPagerAdapter(supportFragmentManager) view_pager.adapter = ViewPagerAdapter(supportFragmentManager)
view_pager.onPageChangeListener { view_pager.onPageChangeListener {

View File

@ -11,9 +11,9 @@ import android.widget.RadioGroup
import com.google.gson.Gson import com.google.gson.Gson
import com.google.gson.reflect.TypeToken import com.google.gson.reflect.TypeToken
import com.simplemobiletools.clock.R import com.simplemobiletools.clock.R
import com.simplemobiletools.clock.activities.MainActivity
import com.simplemobiletools.clock.activities.SimpleActivity import com.simplemobiletools.clock.activities.SimpleActivity
import com.simplemobiletools.clock.extensions.config import com.simplemobiletools.clock.extensions.*
import com.simplemobiletools.clock.extensions.getAlarmSounds
import com.simplemobiletools.clock.helpers.PICK_AUDIO_FILE_INTENT_ID import com.simplemobiletools.clock.helpers.PICK_AUDIO_FILE_INTENT_ID
import com.simplemobiletools.clock.models.AlarmSound import com.simplemobiletools.clock.models.AlarmSound
import com.simplemobiletools.commons.dialogs.RadioGroupDialog import com.simplemobiletools.commons.dialogs.RadioGroupDialog
@ -143,6 +143,21 @@ class SelectAlarmSoundDialog(val activity: SimpleActivity, val currentUri: Strin
view.dialog_select_alarm_your_radio.clearCheck() view.dialog_select_alarm_your_radio.clearCheck()
view.dialog_select_alarm_system_radio.check(systemAlarmSounds.firstOrNull()?.id ?: 0) view.dialog_select_alarm_system_radio.check(systemAlarmSounds.firstOrNull()?.id ?: 0)
} }
val defaultAlarm = AlarmSound(0, activity.getDefaultAlarmTitle(), activity.getDefaultAlarmUri().toString())
val defaultTitle = defaultAlarm.title
val defaultUri = defaultAlarm.uri
if (config.timerSoundUri == alarmSound.uri) {
config.timerSoundTitle = defaultTitle
config.timerSoundUri = defaultUri
(activity as MainActivity).updateTimerTabAlarmSound(defaultAlarm)
}
activity.dbHelper.getAlarmsWithUri(alarmSound.uri).forEach {
it.soundTitle = defaultTitle
it.soundUri = defaultUri
activity.dbHelper.updateAlarm(it)
}
} }
private fun dialogConfirmed() { private fun dialogConfirmed() {

View File

@ -90,6 +90,8 @@ class DBHelper private constructor(val context: Context) : SQLiteOpenHelper(cont
fun getAlarmWithId(id: Int) = getAlarms().firstOrNull { it.id == id } fun getAlarmWithId(id: Int) = getAlarms().firstOrNull { it.id == id }
fun getAlarmsWithUri(uri: String) = getAlarms().filter { it.soundUri == uri }
private fun fillAlarmContentValues(alarm: Alarm): ContentValues { private fun fillAlarmContentValues(alarm: Alarm): ContentValues {
return ContentValues().apply { return ContentValues().apply {
put(COL_TIME_IN_MINUTES, alarm.timeInMinutes) put(COL_TIME_IN_MINUTES, alarm.timeInMinutes)