diff --git a/java/src/org/futo/inputmethod/latin/LatinIMELegacy.java b/java/src/org/futo/inputmethod/latin/LatinIMELegacy.java index e54f01a57..bdcfbb884 100644 --- a/java/src/org/futo/inputmethod/latin/LatinIMELegacy.java +++ b/java/src/org/futo/inputmethod/latin/LatinIMELegacy.java @@ -1362,14 +1362,8 @@ public class LatinIMELegacy implements KeyboardActionListener, mRichImm.setInputMethodAndSubtype(token, subtype); } - // TODO: Revise the language switch key behavior to make it much smarter and more reasonable. public void switchToNextSubtype() { - final IBinder token = mInputMethodService.getWindow().getWindow().getAttributes().token; - if (shouldSwitchToOtherInputMethods()) { - mRichImm.switchToNextInputMethod(token, false /* onlyCurrentIme */); - return; - } - mSubtypeState.switchSubtype(token, mRichImm); + mRichImm.getInputMethodManager().showInputMethodPicker(); } // TODO: Instead of checking for alphabetic keyboard here, separate keycodes for diff --git a/java/src/org/futo/inputmethod/latin/RichInputMethodManager.java b/java/src/org/futo/inputmethod/latin/RichInputMethodManager.java index 7b8e970ff..4a08ff1de 100644 --- a/java/src/org/futo/inputmethod/latin/RichInputMethodManager.java +++ b/java/src/org/futo/inputmethod/latin/RichInputMethodManager.java @@ -496,6 +496,8 @@ public class RichInputMethodManager { public boolean shouldOfferSwitchingToNextInputMethod(final IBinder binder, boolean defaultValue) { + + if(true) return defaultValue; // Use the default value instead on Jelly Bean MR2 and previous where // {@link InputMethodManager#shouldOfferSwitchingToNextInputMethod} isn't yet available // and on KitKat where the API is still just a stub to return true always. diff --git a/java/src/org/futo/inputmethod/latin/settings/Settings.java b/java/src/org/futo/inputmethod/latin/settings/Settings.java index fe4002fe9..36edab6e3 100644 --- a/java/src/org/futo/inputmethod/latin/settings/Settings.java +++ b/java/src/org/futo/inputmethod/latin/settings/Settings.java @@ -263,13 +263,13 @@ public final class Settings implements SharedPreferences.OnSharedPreferenceChang public static boolean readShowsLanguageSwitchKey(final SharedPreferences prefs) { if (prefs.contains(PREF_SUPPRESS_LANGUAGE_SWITCH_KEY)) { final boolean suppressLanguageSwitchKey = prefs.getBoolean( - PREF_SUPPRESS_LANGUAGE_SWITCH_KEY, false); + PREF_SUPPRESS_LANGUAGE_SWITCH_KEY, true); final SharedPreferences.Editor editor = prefs.edit(); editor.remove(PREF_SUPPRESS_LANGUAGE_SWITCH_KEY); editor.putBoolean(PREF_SHOW_LANGUAGE_SWITCH_KEY, !suppressLanguageSwitchKey); editor.apply(); } - return prefs.getBoolean(PREF_SHOW_LANGUAGE_SWITCH_KEY, true); + return prefs.getBoolean(PREF_SHOW_LANGUAGE_SWITCH_KEY, false); } public static String readPrefAdditionalSubtypes(final SharedPreferences prefs, diff --git a/java/src/org/futo/inputmethod/latin/settings/SettingsValues.java b/java/src/org/futo/inputmethod/latin/settings/SettingsValues.java index 2269ea1e8..ea944f023 100644 --- a/java/src/org/futo/inputmethod/latin/settings/SettingsValues.java +++ b/java/src/org/futo/inputmethod/latin/settings/SettingsValues.java @@ -144,7 +144,7 @@ public class SettingsValues { ? prefs.getBoolean(Settings.PREF_INCLUDE_OTHER_IMES_IN_LANGUAGE_SWITCH_LIST, false) : true /* forcibly */; mShowsLanguageSwitchKey = Settings.ENABLE_SHOW_LANGUAGE_SWITCH_KEY_SETTINGS - ? Settings.readShowsLanguageSwitchKey(prefs) : true /* forcibly */; + ? Settings.readShowsLanguageSwitchKey(prefs) : false /* forcibly */; mUseContactsDict = prefs.getBoolean(Settings.PREF_KEY_USE_CONTACTS_DICT, true); mUsePersonalizedDicts = prefs.getBoolean(Settings.PREF_KEY_USE_PERSONALIZED_DICTS, true); mUseDoubleSpacePeriod = prefs.getBoolean(Settings.PREF_KEY_USE_DOUBLE_SPACE_PERIOD, true) diff --git a/java/src/org/futo/inputmethod/latin/uix/settings/pages/Typing.kt b/java/src/org/futo/inputmethod/latin/uix/settings/pages/Typing.kt index 78d0e1b08..6587a2f36 100644 --- a/java/src/org/futo/inputmethod/latin/uix/settings/pages/Typing.kt +++ b/java/src/org/futo/inputmethod/latin/uix/settings/pages/Typing.kt @@ -48,6 +48,13 @@ fun TypingScreen(navController: NavHostController = rememberNavController()) { default = booleanResource(R.bool.config_default_key_preview_popup) ) + SettingToggleSharedPrefs( + title = stringResource(R.string.show_language_switch_key), + subtitle = stringResource(R.string.show_language_switch_key_summary), + key = Settings.PREF_SHOW_LANGUAGE_SWITCH_KEY, + default = false + ) + // TODO: SeekBarDialogPreference pref_vibration_duration_settings etc } } \ No newline at end of file diff --git a/java/src/org/futo/inputmethod/latin/xlm/LanguageModel.java b/java/src/org/futo/inputmethod/latin/xlm/LanguageModel.java index 387f401ad..4d5273b16 100644 --- a/java/src/org/futo/inputmethod/latin/xlm/LanguageModel.java +++ b/java/src/org/futo/inputmethod/latin/xlm/LanguageModel.java @@ -195,7 +195,7 @@ public class LanguageModel extends Dictionary { } else { // Otherwise, we cannot autocorrect to the top prediction unless the model is // super confident about this - if(outProbabilities[i] * 8.0f >= outProbabilities[0]) { + if(outProbabilities[i] * 2.5f >= outProbabilities[0]) { mustNotAutocorrect = true; } }