mirror of
https://gitlab.futo.org/keyboard/latinime.git
synced 2024-09-28 14:54:30 +01:00
[HS1] Save some data in startInputView
Bug: 8152758 Change-Id: Ic57d3918b08e775769d4ba5d73ba5c31231e0d6a
This commit is contained in:
parent
85b7b967b7
commit
f1accd4f04
@ -752,8 +752,30 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
|
||||
loadKeyboard();
|
||||
}
|
||||
|
||||
/**
|
||||
* A class that holds information to pass from onStartInputInternal to onStartInputViewInternal
|
||||
*
|
||||
* OnStartInput needs to reload the settings and that will prevent onStartInputViewInternal
|
||||
* from comparing the old settings with the new ones, so we use this memory to pass the
|
||||
* necessary information along.
|
||||
*/
|
||||
private static class EditorChangeInfo {
|
||||
public final boolean mIsSameInputType;
|
||||
public final boolean mHasSameOrientation;
|
||||
public EditorChangeInfo(final boolean isSameInputType, final boolean hasSameOrientation) {
|
||||
mIsSameInputType = isSameInputType;
|
||||
mHasSameOrientation = hasSameOrientation;
|
||||
}
|
||||
}
|
||||
|
||||
private EditorChangeInfo mLastEditorChangeInfo;
|
||||
|
||||
private void onStartInputInternal(final EditorInfo editorInfo, final boolean restarting) {
|
||||
super.onStartInput(editorInfo, restarting);
|
||||
SettingsValues currentSettingsValues = mSettings.getCurrent();
|
||||
mLastEditorChangeInfo = new EditorChangeInfo(
|
||||
currentSettingsValues.isSameInputType(editorInfo),
|
||||
currentSettingsValues.hasSameOrientation(getResources().getConfiguration()));
|
||||
}
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
@ -763,9 +785,6 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
|
||||
final KeyboardSwitcher switcher = mKeyboardSwitcher;
|
||||
switcher.updateKeyboardTheme();
|
||||
final MainKeyboardView mainKeyboardView = switcher.getMainKeyboardView();
|
||||
// If we are starting input in a different text field from before, we'll have to reload
|
||||
// settings, so currentSettingsValues can't be final.
|
||||
SettingsValues currentSettingsValues = mSettings.getCurrent();
|
||||
|
||||
if (editorInfo == null) {
|
||||
Log.e(TAG, "Null EditorInfo in onStartInputView()");
|
||||
@ -808,7 +827,7 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
|
||||
accessUtils.onStartInputViewInternal(mainKeyboardView, editorInfo, restarting);
|
||||
}
|
||||
|
||||
final boolean inputTypeChanged = !currentSettingsValues.isSameInputType(editorInfo);
|
||||
final boolean inputTypeChanged = !mLastEditorChangeInfo.mIsSameInputType;
|
||||
final boolean isDifferentTextField = !restarting || inputTypeChanged;
|
||||
if (isDifferentTextField) {
|
||||
mSubtypeSwitcher.updateParametersOnStartInputView();
|
||||
@ -853,13 +872,12 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
|
||||
canReachInputConnection = true;
|
||||
}
|
||||
|
||||
if (isDifferentTextField ||
|
||||
!currentSettingsValues.hasSameOrientation(getResources().getConfiguration())) {
|
||||
if (isDifferentTextField || !mLastEditorChangeInfo.mHasSameOrientation) {
|
||||
loadSettings();
|
||||
}
|
||||
final SettingsValues currentSettingsValues = mSettings.getCurrent();
|
||||
if (isDifferentTextField) {
|
||||
mainKeyboardView.closing();
|
||||
currentSettingsValues = mSettings.getCurrent();
|
||||
|
||||
if (currentSettingsValues.mAutoCorrectionEnabledPerUserSettings) {
|
||||
suggest.setAutoCorrectionThreshold(
|
||||
|
Loading…
Reference in New Issue
Block a user