diff options
Diffstat (limited to 'app/src/main/kotlin/com/pitchedapps/frost/settings/Notifications.kt')
-rw-r--r-- | app/src/main/kotlin/com/pitchedapps/frost/settings/Notifications.kt | 33 |
1 files changed, 19 insertions, 14 deletions
diff --git a/app/src/main/kotlin/com/pitchedapps/frost/settings/Notifications.kt b/app/src/main/kotlin/com/pitchedapps/frost/settings/Notifications.kt index c58710b5..40ff071e 100644 --- a/app/src/main/kotlin/com/pitchedapps/frost/settings/Notifications.kt +++ b/app/src/main/kotlin/com/pitchedapps/frost/settings/Notifications.kt @@ -19,13 +19,16 @@ package com.pitchedapps.frost.settings import android.annotation.SuppressLint import android.content.Intent import android.media.RingtoneManager -import android.net.Uri import android.os.Build import android.provider.Settings import ca.allanwang.kau.kpref.activity.KPrefAdapterBuilder import ca.allanwang.kau.kpref.activity.items.KPrefText +import ca.allanwang.kau.utils.materialDialog import ca.allanwang.kau.utils.minuteToText import ca.allanwang.kau.utils.string +import com.afollestad.materialdialogs.callbacks.onDismiss +import com.afollestad.materialdialogs.customview.customView +import com.afollestad.materialdialogs.list.listItemsSingleChoice import com.pitchedapps.frost.BuildConfig import com.pitchedapps.frost.R import com.pitchedapps.frost.activities.SettingsActivity @@ -35,7 +38,7 @@ import com.pitchedapps.frost.services.fetchNotifications import com.pitchedapps.frost.services.scheduleNotifications import com.pitchedapps.frost.utils.Prefs import com.pitchedapps.frost.utils.frostSnackbar -import com.pitchedapps.frost.utils.materialDialogThemed +import com.pitchedapps.frost.utils.frostUri import com.pitchedapps.frost.views.Keywords import kotlinx.coroutines.launch @@ -49,13 +52,11 @@ fun SettingsActivity.getNotificationPrefs(): KPrefAdapterBuilder.() -> Unit = { val options = longArrayOf(15, 30, 60, 120, 180, 300, 1440, 2880) val texts = options.map { if (it <= 0) string(R.string.no_notifications) else minuteToText(it) } onClick = { - materialDialogThemed { + materialDialog { title(R.string.notification_frequency) - items(texts) - itemsCallbackSingleChoice(options.indexOf(item.pref)) { _, _, which, _ -> - item.pref = options[which] + listItemsSingleChoice(items = texts, initialSelection = options.indexOf(item.pref)) { _, index, _ -> + item.pref = options[index] scheduleNotifications(item.pref) - true } } } @@ -72,11 +73,11 @@ fun SettingsActivity.getNotificationPrefs(): KPrefAdapterBuilder.() -> Unit = { descRes = R.string.notification_keywords_desc onClick = { val keywordView = Keywords(this@getNotificationPrefs) - materialDialogThemed { + materialDialog { title(R.string.notification_keywords) - customView(keywordView, false) - dismissListener { keywordView.save() } - positiveText(R.string.kau_done) + customView(view = keywordView) + positiveButton(R.string.kau_done) + onDismiss { keywordView.save() } } } } @@ -135,7 +136,7 @@ fun SettingsActivity.getNotificationPrefs(): KPrefAdapterBuilder.() -> Unit = { enabler = Prefs::notificationSound textGetter = { if (it.isBlank()) string(R.string.kau_default) - else RingtoneManager.getRingtone(this@getNotificationPrefs, Uri.parse(it)) + else RingtoneManager.getRingtone(this@getNotificationPrefs, frostUri(it)) ?.getTitle(this@getNotificationPrefs) ?: "---" //todo figure out why this happens } @@ -145,8 +146,12 @@ fun SettingsActivity.getNotificationPrefs(): KPrefAdapterBuilder.() -> Unit = { putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_SILENT, false) putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_DEFAULT, true) putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE, RingtoneManager.TYPE_NOTIFICATION) - if (item.pref.isNotBlank()) - putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI, Uri.parse(item.pref)) + if (item.pref.isNotBlank()) { + putExtra( + RingtoneManager.EXTRA_RINGTONE_EXISTING_URI, + frostUri(item.pref) + ) + } } startActivityForResult(intent, code) } |