diff --git a/src/main/kotlin/com/looker/droidify/screen/SettingsFragment.kt b/src/main/kotlin/com/looker/droidify/screen/SettingsFragment.kt index 918fbd4a..e3ae5cc4 100644 --- a/src/main/kotlin/com/looker/droidify/screen/SettingsFragment.kt +++ b/src/main/kotlin/com/looker/droidify/screen/SettingsFragment.kt @@ -318,6 +318,27 @@ class SettingsFragment : ScreenFragment() { } } + private fun LinearLayoutCompat.addList( + key: Preferences.Key, + title: String, + values: List, + valueToString: (T) -> String, + ) { + addPreference(key, title, { valueToString(Preferences[key]) }) { + MaterialAlertDialogBuilder(it) + .setTitle(title) + .setSingleChoiceItems( + values.map(valueToString).toTypedArray(), + values.indexOf(Preferences[key]) + ) { dialog, which -> + dialog.dismiss() + post { Preferences[key] = values[which] } + } + .setNegativeButton(R.string.cancel, null) + .create() + } + } + private class Preference( private val key: Preferences.Key, fragment: Fragment,