From 0050a5dde007994d8f623cfb518f1d3344032107 Mon Sep 17 00:00:00 2001 From: Rafael de Moura Dev <93414086+Rafael2616@users.noreply.github.com> Date: Thu, 14 Sep 2023 15:09:00 -0300 Subject: [PATCH] fix(settings): single choice prefs not being dismissed when clicking outside dialog (#1311) Some preferences that do not have an "Ok" or "cancel" button forced us to click on the choice again so that the card disappeared Now the following preferences are dismissable: - UI Mode (Theme) - Tab Size - Empty elements behavior --- .../main/java/com/itsaky/androidide/preferences/editor.kt | 7 ++----- .../main/java/com/itsaky/androidide/preferences/general.kt | 2 ++ .../java/com/itsaky/androidide/preferences/xmlPrefs.kt | 1 + 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/com/itsaky/androidide/preferences/editor.kt b/app/src/main/java/com/itsaky/androidide/preferences/editor.kt index fc598c8ca..c459caa14 100644 --- a/app/src/main/java/com/itsaky/androidide/preferences/editor.kt +++ b/app/src/main/java/com/itsaky/androidide/preferences/editor.kt @@ -165,6 +165,7 @@ private class TabSize( override val summary: Int? = string.msg_tab_size, override val icon: Int? = drawable.ic_font_ligatures, ) : SingleChoicePreference() { + override val dialogCancellable = true @IgnoredOnParcel private val choices = arrayOf("2", "4", "6", "8") @@ -196,6 +197,7 @@ private class ColorSchemePreference( override val summary: Int? = R.string.idepref_editor_colorScheme_summary, override val icon: Int? = R.drawable.ic_color_scheme ) : SingleChoicePreference() { + override val dialogCancellable = true @IgnoredOnParcel private val schemes = IDEColorSchemeProvider.list() @@ -212,11 +214,6 @@ private class ColorSchemePreference( colorScheme = schemes[position].key } } - - override fun onConfigureDialog(preference: Preference, dialog: MaterialAlertDialogBuilder) { - super.onConfigureDialog(preference, dialog) - dialog.setCancelable(true) - } } @Parcelize diff --git a/app/src/main/java/com/itsaky/androidide/preferences/general.kt b/app/src/main/java/com/itsaky/androidide/preferences/general.kt index 329a15b5b..02a768518 100644 --- a/app/src/main/java/com/itsaky/androidide/preferences/general.kt +++ b/app/src/main/java/com/itsaky/androidide/preferences/general.kt @@ -91,6 +91,8 @@ class UiMode( override val summary: Int? = R.string.idepref_general_uiMode_summary, override val icon: Int? = R.drawable.ic_ui_mode ) : SingleChoicePreference() { + override val dialogCancellable = true + override fun getChoices(context: Context): Array { return arrayOf( context.getString(R.string.uiMode_light), diff --git a/app/src/main/java/com/itsaky/androidide/preferences/xmlPrefs.kt b/app/src/main/java/com/itsaky/androidide/preferences/xmlPrefs.kt index 5714a109e..5dcc0965b 100644 --- a/app/src/main/java/com/itsaky/androidide/preferences/xmlPrefs.kt +++ b/app/src/main/java/com/itsaky/androidide/preferences/xmlPrefs.kt @@ -225,6 +225,7 @@ private class EmptyElementsBehavior( override val title: Int = string.idepref_emptyElements_title, override val summary: Int? = string.idepref_emptyElements_summary ) : SingleChoicePreference() { + override val dialogCancellable = true override fun getSelectedItem(): Int { return EmptyElements.valueOf(emptyElementsBehavior).ordinal