diff --git a/app/src/main/java/helium314/keyboard/keyboard/MainKeyboardView.java b/app/src/main/java/helium314/keyboard/keyboard/MainKeyboardView.java index d84998e8b..3a3fa3e16 100644 --- a/app/src/main/java/helium314/keyboard/keyboard/MainKeyboardView.java +++ b/app/src/main/java/helium314/keyboard/keyboard/MainKeyboardView.java @@ -57,6 +57,7 @@ import helium314.keyboard.latin.settings.Settings; import helium314.keyboard.latin.utils.KtxKt; import helium314.keyboard.latin.utils.LanguageOnSpacebarUtils; import helium314.keyboard.latin.utils.Log; +import helium314.keyboard.latin.utils.SubtypeLocaleUtils; import helium314.keyboard.latin.utils.TypefaceUtils; import java.util.ArrayList; diff --git a/app/src/main/java/helium314/keyboard/latin/utils/InputMethodPicker.kt b/app/src/main/java/helium314/keyboard/latin/utils/InputMethodPicker.kt index 3f534842f..4793cc76a 100644 --- a/app/src/main/java/helium314/keyboard/latin/utils/InputMethodPicker.kt +++ b/app/src/main/java/helium314/keyboard/latin/utils/InputMethodPicker.kt @@ -14,6 +14,7 @@ import android.view.inputmethod.InputMethodSubtype import helium314.keyboard.latin.LatinIME import helium314.keyboard.latin.R import helium314.keyboard.latin.RichInputMethodManager +import helium314.keyboard.latin.utils.SubtypeLocaleUtils.displayName // similar to what showSubtypePicker does in https://github.com/rkkr/simple-keyboard/blob/master/app/src/main/java/rkr/simplekeyboard/inputmethod/latin/RichInputMethodManager.java fun createInputMethodPickerDialog(latinIme: LatinIME, richImm: RichInputMethodManager, windowToken: IBinder): AlertDialog { diff --git a/app/src/main/java/helium314/keyboard/latin/utils/SubtypeLocaleUtils.kt b/app/src/main/java/helium314/keyboard/latin/utils/SubtypeLocaleUtils.kt index f2da7d7c7..3d579851b 100644 --- a/app/src/main/java/helium314/keyboard/latin/utils/SubtypeLocaleUtils.kt +++ b/app/src/main/java/helium314/keyboard/latin/utils/SubtypeLocaleUtils.kt @@ -13,10 +13,9 @@ import helium314.keyboard.latin.R import helium314.keyboard.latin.common.Constants.Subtype.ExtraValue import helium314.keyboard.latin.common.LocaleUtils.constructLocale import helium314.keyboard.latin.common.LocaleUtils.getLocaleDisplayNameInLocale +import helium314.keyboard.latin.common.LocaleUtils.localizedDisplayName import helium314.keyboard.latin.common.StringUtils import helium314.keyboard.latin.utils.LayoutType.Companion.getMainLayoutFromExtraValue -import helium314.keyboard.latin.utils.LayoutUtilsCustom.getDisplayName -import helium314.keyboard.latin.utils.LayoutUtilsCustom.isCustomLayout import java.util.Locale import kotlin.concurrent.Volatile @@ -231,9 +230,16 @@ object SubtypeLocaleUtils { } fun getMainLayoutDisplayName(layoutName: String): String? = - if (isCustomLayout(layoutName)) getDisplayName(layoutName) + if (LayoutUtilsCustom.isCustomLayout(layoutName)) LayoutUtilsCustom.getDisplayName(layoutName) else keyboardLayoutToDisplayName[layoutName] + fun InputMethodSubtype.displayName(context: Context): String { + val layoutName = mainLayoutNameOrQwerty() + if (LayoutUtilsCustom.isCustomLayout(layoutName)) + return "${locale().localizedDisplayName(context)} (${LayoutUtilsCustom.getDisplayName(layoutName)})" + return getSubtypeDisplayNameInSystemLocale(this) + } + @JvmStatic fun getCombiningRulesExtraValue(subtype: InputMethodSubtype): String? = subtype.getExtraValueOf(ExtraValue.COMBINING_RULES) diff --git a/app/src/main/java/helium314/keyboard/latin/utils/SubtypeUtils.kt b/app/src/main/java/helium314/keyboard/latin/utils/SubtypeUtils.kt index 7351e5453..1b69075c3 100644 --- a/app/src/main/java/helium314/keyboard/latin/utils/SubtypeUtils.kt +++ b/app/src/main/java/helium314/keyboard/latin/utils/SubtypeUtils.kt @@ -1,6 +1,5 @@ package helium314.keyboard.latin.utils -import android.content.Context import android.content.SharedPreferences import android.content.res.Resources import android.os.Build @@ -10,7 +9,6 @@ import helium314.keyboard.latin.common.Constants.Separators import helium314.keyboard.latin.common.Constants.Subtype.ExtraValue import helium314.keyboard.latin.common.Constants.Subtype.ExtraValue.KEYBOARD_LAYOUT_SET import helium314.keyboard.latin.common.LocaleUtils.constructLocale -import helium314.keyboard.latin.common.LocaleUtils.localizedDisplayName import helium314.keyboard.latin.settings.Defaults import helium314.keyboard.latin.settings.Settings import helium314.keyboard.latin.settings.SettingsSubtype.Companion.getExtraValueOf @@ -66,15 +64,6 @@ fun getResourceSubtypes(resources: Resources): List { return subtypes } -/** Workaround for SubtypeLocaleUtils.getSubtypeDisplayNameInSystemLocale ignoring custom layout names */ -// todo (later): this should be done properly and in SubtypeLocaleUtils -fun InputMethodSubtype.displayName(context: Context): String { - val layoutName = mainLayoutNameOrQwerty() - if (LayoutUtilsCustom.isCustomLayout(layoutName)) - return "${locale().localizedDisplayName(context)} (${LayoutUtilsCustom.getDisplayName(layoutName)})" - return SubtypeLocaleUtils.getSubtypeDisplayNameInSystemLocale(this) -} - fun getHasLocalizedNumberRow(subtype: InputMethodSubtype, prefs: SharedPreferences): Boolean = subtype.getExtraValueOf(ExtraValue.LOCALIZED_NUMBER_ROW)?.toBoolean() ?: prefs.getBoolean(Settings.PREF_LOCALIZED_NUMBER_ROW, Defaults.PREF_LOCALIZED_NUMBER_ROW) diff --git a/app/src/main/java/helium314/keyboard/settings/screens/LanguageScreen.kt b/app/src/main/java/helium314/keyboard/settings/screens/LanguageScreen.kt index b68bbb26a..1d87ca856 100644 --- a/app/src/main/java/helium314/keyboard/settings/screens/LanguageScreen.kt +++ b/app/src/main/java/helium314/keyboard/settings/screens/LanguageScreen.kt @@ -37,8 +37,8 @@ import helium314.keyboard.latin.utils.DictionaryInfoUtils import helium314.keyboard.latin.utils.Log import helium314.keyboard.latin.utils.MissingDictionaryDialog import helium314.keyboard.latin.utils.SubtypeLocaleUtils +import helium314.keyboard.latin.utils.SubtypeLocaleUtils.displayName import helium314.keyboard.latin.utils.SubtypeSettings -import helium314.keyboard.latin.utils.displayName import helium314.keyboard.latin.utils.getActivity import helium314.keyboard.latin.utils.locale import helium314.keyboard.latin.utils.prefs diff --git a/app/src/main/java/helium314/keyboard/settings/screens/MainSettingsScreen.kt b/app/src/main/java/helium314/keyboard/settings/screens/MainSettingsScreen.kt index 67d3a977c..5ab1143ae 100644 --- a/app/src/main/java/helium314/keyboard/settings/screens/MainSettingsScreen.kt +++ b/app/src/main/java/helium314/keyboard/settings/screens/MainSettingsScreen.kt @@ -18,8 +18,8 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.Preview import helium314.keyboard.latin.R import helium314.keyboard.latin.utils.JniUtils +import helium314.keyboard.latin.utils.SubtypeLocaleUtils.displayName import helium314.keyboard.latin.utils.SubtypeSettings -import helium314.keyboard.latin.utils.displayName import helium314.keyboard.settings.NextScreenIcon import helium314.keyboard.settings.SearchSettingsScreen import helium314.keyboard.settings.Theme diff --git a/app/src/main/java/helium314/keyboard/settings/screens/SubtypeScreen.kt b/app/src/main/java/helium314/keyboard/settings/screens/SubtypeScreen.kt index d1de9c8be..a1d01470a 100644 --- a/app/src/main/java/helium314/keyboard/settings/screens/SubtypeScreen.kt +++ b/app/src/main/java/helium314/keyboard/settings/screens/SubtypeScreen.kt @@ -63,10 +63,10 @@ import helium314.keyboard.latin.utils.Log import helium314.keyboard.latin.utils.ScriptUtils import helium314.keyboard.latin.utils.ScriptUtils.script import helium314.keyboard.latin.utils.SubtypeLocaleUtils +import helium314.keyboard.latin.utils.SubtypeLocaleUtils.displayName import helium314.keyboard.latin.utils.SubtypeSettings import helium314.keyboard.latin.utils.SubtypeUtilsAdditional import helium314.keyboard.latin.utils.appendLink -import helium314.keyboard.latin.utils.displayName import helium314.keyboard.latin.utils.getActivity import helium314.keyboard.latin.utils.getDictionaryLocales import helium314.keyboard.latin.utils.getSecondaryLocales