From 3cf6ef12bf5476eeb93cd939328e26f895442d61 Mon Sep 17 00:00:00 2001 From: tibbi Date: Thu, 29 Mar 2018 23:43:31 +0200 Subject: [PATCH] update timer and alarm sounds if the current selection has been deleted --- .../clock/activities/MainActivity.kt | 6 +++++- .../clock/dialogs/SelectAlarmSoundDialog.kt | 19 +++++++++++++++++-- .../clock/helpers/DBHelper.kt | 2 ++ 3 files changed, 24 insertions(+), 3 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/clock/activities/MainActivity.kt b/app/src/main/kotlin/com/simplemobiletools/clock/activities/MainActivity.kt index e432b87c..d697fe2a 100644 --- a/app/src/main/kotlin/com/simplemobiletools/clock/activities/MainActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/clock/activities/MainActivity.kt @@ -155,12 +155,16 @@ class MainActivity : SimpleActivity() { when (view_pager.currentItem) { TAB_ALARM -> getViewPagerAdapter()?.updateAlarmTabAlarmSound(newAlarmSound) - TAB_TIMER -> getViewPagerAdapter()?.updateTimerTabAlarmSound(newAlarmSound) + TAB_TIMER -> updateTimerTabAlarmSound(newAlarmSound) } } private fun getViewPagerAdapter() = view_pager.adapter as? ViewPagerAdapter + fun updateTimerTabAlarmSound(alarmSound: AlarmSound) { + getViewPagerAdapter()?.updateTimerTabAlarmSound(alarmSound) + } + private fun initFragments() { view_pager.adapter = ViewPagerAdapter(supportFragmentManager) view_pager.onPageChangeListener { diff --git a/app/src/main/kotlin/com/simplemobiletools/clock/dialogs/SelectAlarmSoundDialog.kt b/app/src/main/kotlin/com/simplemobiletools/clock/dialogs/SelectAlarmSoundDialog.kt index 0d06dc8d..ba18a56b 100644 --- a/app/src/main/kotlin/com/simplemobiletools/clock/dialogs/SelectAlarmSoundDialog.kt +++ b/app/src/main/kotlin/com/simplemobiletools/clock/dialogs/SelectAlarmSoundDialog.kt @@ -11,9 +11,9 @@ import android.widget.RadioGroup import com.google.gson.Gson import com.google.gson.reflect.TypeToken import com.simplemobiletools.clock.R +import com.simplemobiletools.clock.activities.MainActivity import com.simplemobiletools.clock.activities.SimpleActivity -import com.simplemobiletools.clock.extensions.config -import com.simplemobiletools.clock.extensions.getAlarmSounds +import com.simplemobiletools.clock.extensions.* import com.simplemobiletools.clock.helpers.PICK_AUDIO_FILE_INTENT_ID import com.simplemobiletools.clock.models.AlarmSound 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_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() { diff --git a/app/src/main/kotlin/com/simplemobiletools/clock/helpers/DBHelper.kt b/app/src/main/kotlin/com/simplemobiletools/clock/helpers/DBHelper.kt index 9e6be86a..46dbaf33 100644 --- a/app/src/main/kotlin/com/simplemobiletools/clock/helpers/DBHelper.kt +++ b/app/src/main/kotlin/com/simplemobiletools/clock/helpers/DBHelper.kt @@ -90,6 +90,8 @@ class DBHelper private constructor(val context: Context) : SQLiteOpenHelper(cont fun getAlarmWithId(id: Int) = getAlarms().firstOrNull { it.id == id } + fun getAlarmsWithUri(uri: String) = getAlarms().filter { it.soundUri == uri } + private fun fillAlarmContentValues(alarm: Alarm): ContentValues { return ContentValues().apply { put(COL_TIME_IN_MINUTES, alarm.timeInMinutes)