diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/LanguageSettingsDialog.kt b/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/LanguageSettingsDialog.kt index 68d5e503..242115d8 100644 --- a/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/LanguageSettingsDialog.kt +++ b/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/LanguageSettingsDialog.kt @@ -55,6 +55,7 @@ class LanguageSettingsDialog( fillSubtypesView() fillSecondaryLocaleView() fillDictionariesView() + setupPopupSettings() } override fun onStart() { @@ -286,6 +287,19 @@ class LanguageSettingsDialog( binding.dictionaries.addView(rowBinding.root) } + private fun setupPopupSettings() { + binding.popupOrder.setOnClickListener { + val moreKeyTypesDefault = prefs.getString(Settings.PREF_MORE_KEYS_ORDER, MORE_KEYS_ORDER_DEFAULT)!! + reorderMoreKeysDialog(context, Settings.PREF_MORE_KEYS_ORDER + "_" + mainLocaleString, moreKeyTypesDefault, R.string.popup_order) + KeyboardLayoutSet.onKeyboardThemeChanged() + } + binding.popupLabelPriority.setOnClickListener { + val moreKeyTypesDefault = prefs.getString(Settings.PREF_MORE_KEYS_LABELS_ORDER, MORE_KEYS_LABEL_DEFAULT)!! + reorderMoreKeysDialog(context, Settings.PREF_MORE_KEYS_LABELS_ORDER + "_" + mainLocaleString, moreKeyTypesDefault, R.string.hint_source) + KeyboardLayoutSet.onKeyboardThemeChanged() + } + } + private fun reloadDictionaries() = fragment?.activity?.sendBroadcast(Intent(DictionaryPackConstants.NEW_DICTIONARY_INTENT_ACTION)) } diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/SettingsValues.java b/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/SettingsValues.java index d72709af..1dbde388 100644 --- a/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/SettingsValues.java +++ b/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/SettingsValues.java @@ -232,11 +232,14 @@ public class SettingsValues { mShowMoreMoreKeys = selectedSubtype.isAsciiCapable() ? Settings.readMoreMoreKeysPref(prefs) : LocaleKeyTextsKt.MORE_KEYS_NORMAL; - mMoreKeyTypes = MoreKeysUtilsKt.getEnabledMoreKeys(prefs, Settings.PREF_MORE_KEYS_ORDER, MoreKeysUtilsKt.MORE_KEYS_ORDER_DEFAULT); - // todo: if the type is disabled, the label should not occur too? - mMoreKeyLabelSources = MoreKeysUtilsKt.getEnabledMoreKeys(prefs, Settings.PREF_MORE_KEYS_LABELS_ORDER, MoreKeysUtilsKt.MORE_KEYS_LABEL_DEFAULT); mColors = Settings.getColorsForCurrentTheme(context, prefs); + // read locale-specific popup key settings, fall back to global settings + final String moreKeyTypesDefault = prefs.getString(Settings.PREF_MORE_KEYS_ORDER, MoreKeysUtilsKt.MORE_KEYS_ORDER_DEFAULT); + mMoreKeyTypes = MoreKeysUtilsKt.getEnabledMoreKeys(prefs, Settings.PREF_MORE_KEYS_ORDER + "_" + selectedSubtype.getLocale(), moreKeyTypesDefault); + final String moreKeyLabelDefault = prefs.getString(Settings.PREF_MORE_KEYS_LABELS_ORDER, MoreKeysUtilsKt.MORE_KEYS_LABEL_DEFAULT); + mMoreKeyLabelSources = MoreKeysUtilsKt.getEnabledMoreKeys(prefs, Settings.PREF_MORE_KEYS_LABELS_ORDER + "_" + selectedSubtype.getLocale(), moreKeyLabelDefault); + mAddToPersonalDictionary = prefs.getBoolean(Settings.PREF_ADD_TO_PERSONAL_DICTIONARY, false); mUseContactsDictionary = prefs.getBoolean(AndroidSpellCheckerService.PREF_USE_CONTACTS_KEY, false); mCustomNavBarColor = prefs.getBoolean(Settings.PREF_NAVBAR_COLOR, false); diff --git a/app/src/main/res/layout/locale_settings_dialog.xml b/app/src/main/res/layout/locale_settings_dialog.xml index f92162d2..3e0a315a 100644 --- a/app/src/main/res/layout/locale_settings_dialog.xml +++ b/app/src/main/res/layout/locale_settings_dialog.xml @@ -90,5 +90,25 @@ android:src="@drawable/ic_plus" /> + + + + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index c0040bda..d1dd221e 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -238,7 +238,7 @@ Select hint source Select popup key order - Number + Number row Language Language (priority) Layout