diff --git a/app/src/main/java/helium314/keyboard/latin/utils/SubtypeSettings.kt b/app/src/main/java/helium314/keyboard/latin/utils/SubtypeSettings.kt index b9c450d4a..5391a367d 100644 --- a/app/src/main/java/helium314/keyboard/latin/utils/SubtypeSettings.kt +++ b/app/src/main/java/helium314/keyboard/latin/utils/SubtypeSettings.kt @@ -98,14 +98,17 @@ fun getSelectedSubtype(prefs: SharedPreferences): InputMethodSubtype { val subtypes = if (prefs.getBoolean(Settings.PREF_USE_SYSTEM_LOCALES, true)) getDefaultEnabledSubtypes() else enabledSubtypes val subtype = subtypes.firstOrNull { localeAndLayout.first == it.locale() && localeAndLayout.second == SubtypeLocaleUtils.getKeyboardLayoutSetName(it) } - ?: subtypes.firstOrNull() - if (subtype == null) { - val defaultSubtypes = getDefaultEnabledSubtypes() - return defaultSubtypes.firstOrNull { localeAndLayout.first == it.locale() && localeAndLayout.second == SubtypeLocaleUtils.getKeyboardLayoutSetName(it) } - ?: defaultSubtypes.firstOrNull { localeAndLayout.first.language == it.locale().language && localeAndLayout.second == SubtypeLocaleUtils.getKeyboardLayoutSetName(it) } - ?: defaultSubtypes.first() + if (subtype != null) { + return subtype + } else { + Log.w(TAG, "selected subtype $localeAndLayout not found") } - return subtype + if (subtypes.isNotEmpty()) + return subtypes.first() + val defaultSubtypes = getDefaultEnabledSubtypes() + return defaultSubtypes.firstOrNull { localeAndLayout.first == it.locale() && localeAndLayout.second == SubtypeLocaleUtils.getKeyboardLayoutSetName(it) } + ?: defaultSubtypes.firstOrNull { localeAndLayout.first.language == it.locale().language && localeAndLayout.second == SubtypeLocaleUtils.getKeyboardLayoutSetName(it) } + ?: defaultSubtypes.first() } fun setSelectedSubtype(prefs: SharedPreferences, subtype: InputMethodSubtype) {