mirror of
https://github.com/Helium314/HeliBoard.git
synced 2025-04-21 06:39:09 +00:00
remove "use system locales"
now behavior is as it was disabled if no subtypes are explicitly enabled, it behaves the same as if the setting was enabled (same as before, actually)
This commit is contained in:
parent
cab9cc7de0
commit
f0689b00f6
18 changed files with 40 additions and 61 deletions
|
@ -467,7 +467,7 @@ fun checkVersionUpgrade(context: Context) {
|
|||
prefs.all.keys.toList().forEach { key ->
|
||||
if (key.startsWith(Settings.PREF_POPUP_KEYS_ORDER+"_")) {
|
||||
val locale = key.substringAfter(Settings.PREF_POPUP_KEYS_ORDER+"_").constructLocale()
|
||||
SubtypeSettings.getEnabledSubtypes(prefs).forEach {
|
||||
SubtypeSettings.getEnabledSubtypes().forEach {
|
||||
if (it.locale() == locale && !SubtypeSettings.isAdditionalSubtype(it)) {
|
||||
SubtypeUtilsAdditional.changeAdditionalSubtype(it.toSettingsSubtype(), it.toSettingsSubtype(), context)
|
||||
}
|
||||
|
@ -483,7 +483,7 @@ fun checkVersionUpgrade(context: Context) {
|
|||
}
|
||||
if (key.startsWith(Settings.PREF_POPUP_KEYS_LABELS_ORDER+"_")) {
|
||||
val locale = key.substringAfter(Settings.PREF_POPUP_KEYS_LABELS_ORDER+"_").constructLocale()
|
||||
SubtypeSettings.getEnabledSubtypes(prefs).forEach {
|
||||
SubtypeSettings.getEnabledSubtypes().forEach {
|
||||
if (it.locale() == locale && !SubtypeSettings.isAdditionalSubtype(it)) {
|
||||
SubtypeUtilsAdditional.changeAdditionalSubtype(it.toSettingsSubtype(), it.toSettingsSubtype(), context)
|
||||
}
|
||||
|
@ -499,7 +499,7 @@ fun checkVersionUpgrade(context: Context) {
|
|||
}
|
||||
if (key.startsWith("secondary_locales_")) {
|
||||
val locale = key.substringAfter("secondary_locales_").constructLocale()
|
||||
SubtypeSettings.getEnabledSubtypes(prefs).forEach {
|
||||
SubtypeSettings.getEnabledSubtypes().forEach {
|
||||
if (it.locale() == locale && !SubtypeSettings.isAdditionalSubtype(it)) {
|
||||
SubtypeUtilsAdditional.changeAdditionalSubtype(it.toSettingsSubtype(), it.toSettingsSubtype(), context)
|
||||
}
|
||||
|
|
|
@ -10,11 +10,6 @@ import android.Manifest;
|
|||
import android.content.Context;
|
||||
import android.provider.UserDictionary;
|
||||
import android.text.TextUtils;
|
||||
|
||||
import helium314.keyboard.latin.common.StringUtilsKt;
|
||||
import helium314.keyboard.latin.settings.SettingsValues;
|
||||
import helium314.keyboard.latin.utils.KtxKt;
|
||||
import helium314.keyboard.latin.utils.Log;
|
||||
import android.util.LruCache;
|
||||
import android.view.inputmethod.InputMethodSubtype;
|
||||
|
||||
|
@ -27,11 +22,15 @@ import helium314.keyboard.latin.SuggestedWords.SuggestedWordInfo;
|
|||
import helium314.keyboard.latin.common.ComposedData;
|
||||
import helium314.keyboard.latin.common.Constants;
|
||||
import helium314.keyboard.latin.common.StringUtils;
|
||||
import helium314.keyboard.latin.common.StringUtilsKt;
|
||||
import helium314.keyboard.latin.permissions.PermissionsUtil;
|
||||
import helium314.keyboard.latin.personalization.UserHistoryDictionary;
|
||||
import helium314.keyboard.latin.settings.Settings;
|
||||
import helium314.keyboard.latin.settings.SettingsValues;
|
||||
import helium314.keyboard.latin.settings.SettingsValuesForSuggestion;
|
||||
import helium314.keyboard.latin.utils.ExecutorUtils;
|
||||
import helium314.keyboard.latin.utils.KtxKt;
|
||||
import helium314.keyboard.latin.utils.Log;
|
||||
import helium314.keyboard.latin.utils.SubtypeSettings;
|
||||
import helium314.keyboard.latin.utils.SubtypeUtilsKt;
|
||||
import helium314.keyboard.latin.utils.SuggestionResults;
|
||||
|
@ -352,7 +351,7 @@ public class DictionaryFacilitatorImpl implements DictionaryFacilitator {
|
|||
addAll(SubtypeUtilsKt.getSecondaryLocales(selected.getExtraValue()));
|
||||
} else {
|
||||
// probably we're called from the spell checker when using a different app as keyboard
|
||||
final List<InputMethodSubtype> enabled = SubtypeSettings.INSTANCE.getEnabledSubtypes(KtxKt.prefs(context), false);
|
||||
final List<InputMethodSubtype> enabled = SubtypeSettings.INSTANCE.getEnabledSubtypes(false);
|
||||
for (InputMethodSubtype subtype : enabled) {
|
||||
if (SubtypeUtilsKt.locale(subtype).equals(newLocale))
|
||||
addAll(SubtypeUtilsKt.getSecondaryLocales(subtype.getExtraValue()));
|
||||
|
|
|
@ -171,7 +171,7 @@ public class RichInputMethodManager {
|
|||
if (imi == getInputMethodOfThisIme()) {
|
||||
// allowsImplicitlySelectedSubtypes means system should choose if nothing is enabled,
|
||||
// use it to fall back to system locales or en_US to avoid returning an empty list
|
||||
result = SubtypeSettings.INSTANCE.getEnabledSubtypes(KtxKt.prefs(sInstance.mContext), allowsImplicitlySelectedSubtypes);
|
||||
result = SubtypeSettings.INSTANCE.getEnabledSubtypes(allowsImplicitlySelectedSubtypes);
|
||||
} else {
|
||||
result = mImm.getEnabledInputMethodSubtypeList(imi, allowsImplicitlySelectedSubtypes);
|
||||
}
|
||||
|
|
|
@ -135,7 +135,6 @@ object Defaults {
|
|||
const val PREF_NARROW_KEY_GAPS = false
|
||||
const val PREF_ENABLED_SUBTYPES = ""
|
||||
const val PREF_SELECTED_SUBTYPE = ""
|
||||
const val PREF_USE_SYSTEM_LOCALES = true
|
||||
const val PREF_URL_DETECTION = false
|
||||
const val PREF_DONT_SHOW_MISSING_DICTIONARY_DIALOG = false
|
||||
const val PREF_QUICK_PIN_TOOLBAR_KEYS = false
|
||||
|
|
|
@ -58,18 +58,17 @@ class LanguageSettingsFragment : Fragment(R.layout.language_settings) {
|
|||
|
||||
SubtypeLocaleUtils.init(requireContext())
|
||||
|
||||
enabledSubtypes.addAll(SubtypeSettings.getEnabledSubtypes(prefs))
|
||||
enabledSubtypes.addAll(SubtypeSettings.getEnabledSubtypes())
|
||||
systemLocales.addAll(SubtypeSettings.getSystemLocales())
|
||||
}
|
||||
|
||||
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
|
||||
val view = super.onCreateView(inflater, container, savedInstanceState) ?: return null
|
||||
systemOnlySwitch = view.findViewById(R.id.language_switch)
|
||||
systemOnlySwitch.isChecked = prefs.getBoolean(Settings.PREF_USE_SYSTEM_LOCALES, true)
|
||||
systemOnlySwitch.isChecked = false
|
||||
systemOnlySwitch.setOnCheckedChangeListener { _, b ->
|
||||
prefs.edit { putBoolean(Settings.PREF_USE_SYSTEM_LOCALES, b) }
|
||||
enabledSubtypes.clear()
|
||||
enabledSubtypes.addAll(SubtypeSettings.getEnabledSubtypes(prefs))
|
||||
enabledSubtypes.addAll(SubtypeSettings.getEnabledSubtypes())
|
||||
loadSubtypes(b)
|
||||
}
|
||||
languageFilterList = LanguageFilterList(view.findViewById(R.id.search_field), view.findViewById(R.id.language_list))
|
||||
|
|
|
@ -106,7 +106,7 @@ public final class PreferencesSettingsFragment extends SubScreenFragment {
|
|||
if (pref == null) return;
|
||||
// locales that have a number row defined (not good to have it hardcoded, but reading a bunch of files may be noticeably slow)
|
||||
final String[] numberRowLocales = new String[] { "ar", "bn", "fa", "gu", "hi", "kn", "mr", "ne", "ur" };
|
||||
for (final InputMethodSubtype subtype : SubtypeSettings.INSTANCE.getEnabledSubtypes(getSharedPreferences(), true)) {
|
||||
for (final InputMethodSubtype subtype : SubtypeSettings.INSTANCE.getEnabledSubtypes(true)) {
|
||||
if (ArraysKt.any(numberRowLocales, (l) -> l.equals(SubtypeUtilsKt.locale(subtype).getLanguage()))) {
|
||||
pref.setVisible(true);
|
||||
return;
|
||||
|
|
|
@ -144,7 +144,6 @@ public final class Settings implements SharedPreferences.OnSharedPreferenceChang
|
|||
public static final String PREF_NARROW_KEY_GAPS = "narrow_key_gaps";
|
||||
public static final String PREF_ENABLED_SUBTYPES = "enabled_subtypes";
|
||||
public static final String PREF_SELECTED_SUBTYPE = "selected_subtype";
|
||||
public static final String PREF_USE_SYSTEM_LOCALES = "use_system_locales";
|
||||
public static final String PREF_URL_DETECTION = "url_detection";
|
||||
public static final String PREF_DONT_SHOW_MISSING_DICTIONARY_DIALOG = "dont_show_missing_dict_dialog";
|
||||
public static final String PREF_QUICK_PIN_TOOLBAR_KEYS = "quick_pin_toolbar_keys";
|
||||
|
|
|
@ -80,7 +80,7 @@ public final class SettingsFragment extends PreferenceFragmentCompat {
|
|||
}
|
||||
|
||||
private String getEnabledSubtypesLabel() {
|
||||
final List<InputMethodSubtype> subtypes = SubtypeSettings.INSTANCE.getEnabledSubtypes(KtxKt.prefs(getActivity()), true);
|
||||
final List<InputMethodSubtype> subtypes = SubtypeSettings.INSTANCE.getEnabledSubtypes(true);
|
||||
final StringBuilder sb = new StringBuilder();
|
||||
for (final InputMethodSubtype subtype : subtypes) {
|
||||
if (sb.length() > 0)
|
||||
|
|
|
@ -107,22 +107,19 @@ public class UserDictionaryListFragment extends SubScreenFragment {
|
|||
|
||||
static TreeSet<Locale> getSortedDictionaryLocales(final Context context) {
|
||||
final SharedPreferences prefs = KtxKt.prefs(context);
|
||||
final boolean localeSystemOnly = prefs.getBoolean(Settings.PREF_USE_SYSTEM_LOCALES, Defaults.PREF_USE_SYSTEM_LOCALES);
|
||||
final TreeSet<Locale> sortedLocales = new TreeSet<>(new LocaleComparator());
|
||||
|
||||
// Add the main language selected in the "Language and Layouts" setting except "No language"
|
||||
for (InputMethodSubtype mainSubtype : SubtypeSettings.INSTANCE.getEnabledSubtypes(prefs, true)) {
|
||||
for (InputMethodSubtype mainSubtype : SubtypeSettings.INSTANCE.getEnabledSubtypes(true)) {
|
||||
final Locale mainLocale = SubtypeUtilsKt.locale(mainSubtype);
|
||||
if (!mainLocale.toLanguageTag().equals(SubtypeLocaleUtils.NO_LANGUAGE)) {
|
||||
sortedLocales.add(mainLocale);
|
||||
}
|
||||
// Secondary language is added only if main language is selected and if system language is not enabled
|
||||
if (!localeSystemOnly) {
|
||||
final List<InputMethodSubtype> enabled = SubtypeSettings.INSTANCE.getEnabledSubtypes(prefs, false);
|
||||
for (InputMethodSubtype subtype : enabled) {
|
||||
if (SubtypeUtilsKt.locale(subtype).equals(mainLocale))
|
||||
sortedLocales.addAll(SubtypeUtilsKt.getSecondaryLocales(subtype.getExtraValue()));
|
||||
}
|
||||
final List<InputMethodSubtype> enabled = SubtypeSettings.INSTANCE.getEnabledSubtypes(false);
|
||||
for (InputMethodSubtype subtype : enabled) {
|
||||
if (SubtypeUtilsKt.locale(subtype).equals(mainLocale))
|
||||
sortedLocales.addAll(SubtypeUtilsKt.getSecondaryLocales(subtype.getExtraValue()));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -180,9 +180,8 @@ fun createDictionaryTextAnnotated(locale: Locale): AnnotatedString {
|
|||
fun cleanUnusedMainDicts(context: Context) {
|
||||
val dictionaryDir = File(DictionaryInfoUtils.getWordListCacheDirectory(context))
|
||||
val dirs = dictionaryDir.listFiles() ?: return
|
||||
val prefs = context.prefs()
|
||||
val usedLocaleLanguageTags = hashSetOf<String>()
|
||||
SubtypeSettings.getEnabledSubtypes(prefs).forEach { subtype ->
|
||||
SubtypeSettings.getEnabledSubtypes().forEach { subtype ->
|
||||
val locale = subtype.locale()
|
||||
usedLocaleLanguageTags.add(locale.toLanguageTag())
|
||||
}
|
||||
|
|
|
@ -23,9 +23,7 @@ import java.util.Locale
|
|||
object SubtypeSettings {
|
||||
/** @return enabled subtypes. If no subtypes are enabled, but a contextForFallback is provided,
|
||||
* subtypes for system locales will be returned, or en-US if none found. */
|
||||
fun getEnabledSubtypes(prefs: SharedPreferences, fallback: Boolean = false): List<InputMethodSubtype> {
|
||||
if (prefs.getBoolean(Settings.PREF_USE_SYSTEM_LOCALES, Defaults.PREF_USE_SYSTEM_LOCALES))
|
||||
return getDefaultEnabledSubtypes()
|
||||
fun getEnabledSubtypes(fallback: Boolean = false): List<InputMethodSubtype> {
|
||||
if (fallback && enabledSubtypes.isEmpty())
|
||||
return getDefaultEnabledSubtypes()
|
||||
return enabledSubtypes.toList()
|
||||
|
@ -78,17 +76,15 @@ object SubtypeSettings {
|
|||
if (selectedAdditionalSubtype != null) return selectedAdditionalSubtype
|
||||
}
|
||||
// no additional subtype, must be a resource subtype
|
||||
val subtypes = if (prefs.getBoolean(Settings.PREF_USE_SYSTEM_LOCALES, Defaults.PREF_USE_SYSTEM_LOCALES)) getDefaultEnabledSubtypes()
|
||||
else enabledSubtypes
|
||||
|
||||
val subtype = subtypes.firstOrNull { it.toSettingsSubtype() == selectedSubtype }
|
||||
val subtype = enabledSubtypes.firstOrNull { it.toSettingsSubtype() == selectedSubtype }
|
||||
if (subtype != null) {
|
||||
return subtype
|
||||
} else {
|
||||
Log.w(TAG, "selected subtype $selectedSubtype / ${prefs.getString(Settings.PREF_SELECTED_SUBTYPE, Defaults.PREF_SELECTED_SUBTYPE)} not found")
|
||||
}
|
||||
if (subtypes.isNotEmpty())
|
||||
return subtypes.first()
|
||||
if (enabledSubtypes.isNotEmpty())
|
||||
return enabledSubtypes.first()
|
||||
val defaultSubtypes = getDefaultEnabledSubtypes()
|
||||
return defaultSubtypes.firstOrNull { it.locale() == selectedSubtype.locale && it.mainLayoutName() == it.mainLayoutName() }
|
||||
?: defaultSubtypes.firstOrNull { it.locale().language == selectedSubtype.locale.language }
|
||||
|
|
|
@ -47,7 +47,7 @@ fun NewDictionaryDialog(
|
|||
val ctx = LocalContext.current
|
||||
val dictLocale = header.mLocaleString.constructLocale()
|
||||
var locale by remember { mutableStateOf(mainLocale ?: dictLocale) }
|
||||
val enabledLanguages = SubtypeSettings.getEnabledSubtypes(ctx.prefs()).map { it.locale().language }
|
||||
val enabledLanguages = SubtypeSettings.getEnabledSubtypes().map { it.locale().language }
|
||||
val comparer = compareBy<Locale>({ it != mainLocale }, { it != dictLocale }, { it.language !in enabledLanguages }, { it.script() != dictLocale.script() })
|
||||
val locales = SubtypeSettings.getAvailableSubtypeLocales()
|
||||
.filter { it.script() == dictLocale.script() || it.script() == mainLocale?.script() }
|
||||
|
|
|
@ -33,7 +33,6 @@ import helium314.keyboard.latin.utils.SubtypeSettings
|
|||
import helium314.keyboard.latin.utils.appendLink
|
||||
import helium314.keyboard.latin.utils.getDictionaryLocales
|
||||
import helium314.keyboard.latin.utils.locale
|
||||
import helium314.keyboard.latin.utils.prefs
|
||||
import helium314.keyboard.settings.SearchScreen
|
||||
import helium314.keyboard.settings.dialogs.ConfirmationDialog
|
||||
import helium314.keyboard.settings.dialogs.DictionaryDialog
|
||||
|
@ -46,7 +45,7 @@ fun DictionaryScreen(
|
|||
onClickBack: () -> Unit,
|
||||
) {
|
||||
val ctx = LocalContext.current
|
||||
val enabledLanguages = SubtypeSettings.getEnabledSubtypes(ctx.prefs(), true).map { it.locale().language }
|
||||
val enabledLanguages = SubtypeSettings.getEnabledSubtypes(true).map { it.locale().language }
|
||||
val cachedDictFolders = DictionaryInfoUtils.getCachedDirectoryList(ctx).orEmpty().map { it.name }
|
||||
val comparer = compareBy<Locale>({ it.language !in enabledLanguages }, { it.toLanguageTag() !in cachedDictFolders}, { it.displayName })
|
||||
val dictionaryLocales = getDictionaryLocales(ctx).sortedWith(comparer).toMutableList()
|
||||
|
|
|
@ -59,7 +59,7 @@ fun LanguageScreen(
|
|||
if ((b?.value ?: 0) < 0)
|
||||
Log.v("irrelevant", "stupid way to trigger recomposition on preference change")
|
||||
var selectedSubtype: String? by rememberSaveable { mutableStateOf(null) }
|
||||
val enabledSubtypes = SubtypeSettings.getEnabledSubtypes(prefs)
|
||||
val enabledSubtypes = SubtypeSettings.getEnabledSubtypes()
|
||||
SearchScreen(
|
||||
onClickBack = onClickBack,
|
||||
title = {
|
||||
|
@ -135,7 +135,7 @@ private fun dictsAvailable(locale: Locale, context: Context): Boolean {
|
|||
// sorting by display name is still slow, even with the cache... but probably good enough
|
||||
private fun getSortedSubtypes(context: Context): List<InputMethodSubtype> {
|
||||
val systemLocales = SubtypeSettings.getSystemLocales()
|
||||
val enabledSubtypes = SubtypeSettings.getEnabledSubtypes(context.prefs(), true)
|
||||
val enabledSubtypes = SubtypeSettings.getEnabledSubtypes(true)
|
||||
val localesWithDictionary = DictionaryInfoUtils.getCachedDirectoryList(context)?.mapNotNull { dir ->
|
||||
if (!dir.isDirectory)
|
||||
return@mapNotNull null
|
||||
|
|
|
@ -51,7 +51,7 @@ fun MainSettingsScreen(
|
|||
title = stringResource(R.string.ime_settings),
|
||||
settings = emptyList(),
|
||||
) {
|
||||
val enabledSubtypes = SubtypeSettings.getEnabledSubtypes(ctx.prefs(), true)
|
||||
val enabledSubtypes = SubtypeSettings.getEnabledSubtypes(true)
|
||||
Column(Modifier.verticalScroll(rememberScrollState())) {
|
||||
Preference(
|
||||
name = stringResource(R.string.language_and_layouts_title),
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
// SPDX-License-Identifier: GPL-3.0-only
|
||||
package helium314.keyboard.settings.screens
|
||||
|
||||
import android.content.Context
|
||||
import androidx.compose.foundation.clickable
|
||||
import androidx.compose.foundation.layout.Arrangement
|
||||
import androidx.compose.foundation.layout.Row
|
||||
|
@ -18,14 +17,11 @@ import androidx.compose.ui.res.stringResource
|
|||
import androidx.compose.ui.unit.dp
|
||||
import helium314.keyboard.latin.R
|
||||
import helium314.keyboard.latin.common.splitOnWhitespace
|
||||
import helium314.keyboard.latin.settings.Defaults
|
||||
import helium314.keyboard.latin.settings.Settings
|
||||
import helium314.keyboard.latin.utils.SubtypeLocaleUtils
|
||||
import helium314.keyboard.latin.utils.SubtypeSettings.getEnabledSubtypes
|
||||
import helium314.keyboard.latin.utils.SubtypeSettings.getSystemLocales
|
||||
import helium314.keyboard.latin.utils.getSecondaryLocales
|
||||
import helium314.keyboard.latin.utils.locale
|
||||
import helium314.keyboard.latin.utils.prefs
|
||||
import helium314.keyboard.settings.NextScreenIcon
|
||||
import helium314.keyboard.settings.SearchScreen
|
||||
import helium314.keyboard.settings.SettingsDestination
|
||||
|
@ -38,7 +34,7 @@ fun PersonalDictionariesScreen(
|
|||
) {
|
||||
// todo: consider adding "add word" button like old settings (requires additional navigation parameter, should not be hard)
|
||||
val ctx = LocalContext.current
|
||||
val locales: MutableList<Locale?> = getSortedDictionaryLocales(LocalContext.current).toMutableList()
|
||||
val locales: MutableList<Locale?> = getSortedDictionaryLocales().toMutableList()
|
||||
locales.add(0, null)
|
||||
SearchScreen(
|
||||
onClickBack = onClickBack,
|
||||
|
@ -68,23 +64,19 @@ fun PersonalDictionariesScreen(
|
|||
)
|
||||
}
|
||||
|
||||
fun getSortedDictionaryLocales(context: Context): TreeSet<Locale> {
|
||||
val prefs = context.prefs()
|
||||
val localeSystemOnly = prefs.getBoolean(Settings.PREF_USE_SYSTEM_LOCALES, Defaults.PREF_USE_SYSTEM_LOCALES)
|
||||
fun getSortedDictionaryLocales(): TreeSet<Locale> {
|
||||
val sortedLocales = sortedSetOf<Locale>(compareBy { it.toLanguageTag().lowercase() })
|
||||
|
||||
// Add the main language selected in the "Language and Layouts" setting except "No language"
|
||||
for (mainSubtype in getEnabledSubtypes(prefs, true)) {
|
||||
for (mainSubtype in getEnabledSubtypes(true)) {
|
||||
val mainLocale = mainSubtype.locale()
|
||||
if (mainLocale.toLanguageTag() != SubtypeLocaleUtils.NO_LANGUAGE) {
|
||||
sortedLocales.add(mainLocale)
|
||||
}
|
||||
// Secondary language is added only if main language is selected and if system language is not enabled
|
||||
if (!localeSystemOnly) {
|
||||
val enabled = getEnabledSubtypes(prefs, false)
|
||||
for (subtype in enabled) {
|
||||
if (subtype.locale() == mainLocale) sortedLocales.addAll(getSecondaryLocales(subtype.extraValue))
|
||||
}
|
||||
// Secondary language is added only if main language is selected
|
||||
val enabled = getEnabledSubtypes(false)
|
||||
for (subtype in enabled) {
|
||||
if (subtype.locale() == mainLocale) sortedLocales.addAll(getSecondaryLocales(subtype.extraValue))
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -156,7 +156,7 @@ fun PersonalDictionaryScreen(
|
|||
) {
|
||||
Text(stringResource(R.string.user_dict_settings_add_locale_option_name), Modifier.fillMaxWidth(0.3f))
|
||||
DropDownField(
|
||||
items = getSpecificallySortedLocales(ctx, locale),
|
||||
items = getSpecificallySortedLocales(locale),
|
||||
selectedItem = newLocale,
|
||||
onSelected = { newLocale = it },
|
||||
) {
|
||||
|
@ -230,8 +230,8 @@ private fun doesWordExist(word: String, locale: Locale?, context: Context): Bool
|
|||
}
|
||||
}
|
||||
|
||||
private fun getSpecificallySortedLocales(context: Context, firstLocale: Locale?): List<Locale?> {
|
||||
val list: MutableList<Locale?> = getSortedDictionaryLocales(context).toMutableList()
|
||||
private fun getSpecificallySortedLocales(firstLocale: Locale?): List<Locale?> {
|
||||
val list: MutableList<Locale?> = getSortedDictionaryLocales().toMutableList()
|
||||
list.remove(firstLocale)
|
||||
list.remove(null)
|
||||
list.add(0, firstLocale)
|
||||
|
|
|
@ -57,7 +57,7 @@ fun PreferencesScreen(
|
|||
Settings.PREF_KEYPRESS_SOUND_VOLUME else null,
|
||||
R.string.settings_category_additional_keys,
|
||||
Settings.PREF_SHOW_NUMBER_ROW,
|
||||
if (SubtypeSettings.getEnabledSubtypes(prefs, true).any { it.locale().language in localesWithLocalizedNumberRow })
|
||||
if (SubtypeSettings.getEnabledSubtypes(true).any { it.locale().language in localesWithLocalizedNumberRow })
|
||||
Settings.PREF_LOCALIZED_NUMBER_ROW else null,
|
||||
if (prefs.getBoolean(Settings.PREF_SHOW_HINTS, Defaults.PREF_SHOW_HINTS)
|
||||
&& prefs.getBoolean(Settings.PREF_SHOW_NUMBER_ROW, Defaults.PREF_SHOW_NUMBER_ROW))
|
||||
|
|
Loading…
Add table
Reference in a new issue