diff options
author | 2013-10-09 20:59:51 -0700 | |
---|---|---|
committer | 2013-10-09 20:59:51 -0700 | |
commit | 322366d07ec2431ffc78767c37e58fd7c4a8aea3 (patch) | |
tree | 4047e1840baf42f27c01b0c5b72bb8a8c96c3a7b /java/src/com/android/inputmethod/latin/LatinIME.java | |
parent | e167265f748fc1965b38a95bf723ceb31e6bd436 (diff) | |
parent | 9493affce3156067acbaa895f921c70b32139a5f (diff) | |
download | latinime-322366d07ec2431ffc78767c37e58fd7c4a8aea3.tar.gz latinime-322366d07ec2431ffc78767c37e58fd7c4a8aea3.tar.xz latinime-322366d07ec2431ffc78767c37e58fd7c4a8aea3.zip |
am 9493affc: am 3c4e8cb6: Call loadKeyboard later if it can\'t be called right away
* commit '9493affce3156067acbaa895f921c70b32139a5f':
Call loadKeyboard later if it can't be called right away
Diffstat (limited to 'java/src/com/android/inputmethod/latin/LatinIME.java')
-rw-r--r-- | java/src/com/android/inputmethod/latin/LatinIME.java | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java index 851f9677f..0e93590a3 100644 --- a/java/src/com/android/inputmethod/latin/LatinIME.java +++ b/java/src/com/android/inputmethod/latin/LatinIME.java @@ -904,12 +904,17 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen // Sometimes, while rotating, for some reason the framework tells the app we are not // connected to it and that means we can't refresh the cache. In this case, schedule a // refresh later. + final boolean canReachInputConnection; if (!mConnection.resetCachesUponCursorMoveAndReturnSuccess(editorInfo.initialSelStart, false /* shouldFinishComposition */)) { // We try resetting the caches up to 5 times before giving up. mHandler.postResetCaches(isDifferentTextField, 5 /* remainingTries */); + canReachInputConnection = false; } else { - if (isDifferentTextField) mHandler.postResumeSuggestions(); + if (isDifferentTextField) { + mHandler.postResumeSuggestions(); + } + canReachInputConnection = true; } if (isDifferentTextField) { @@ -921,7 +926,11 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen suggest.setAutoCorrectionThreshold(currentSettingsValues.mAutoCorrectionThreshold); } - switcher.loadKeyboard(editorInfo, currentSettingsValues); + if (canReachInputConnection) { + // If we can't reach the input connection, we don't want to call loadKeyboard yet. + // It will be done in #retryResetCaches. + switcher.loadKeyboard(editorInfo, currentSettingsValues); + } } else if (restarting) { // TODO: Come up with a more comprehensive way to reset the keyboard layout when // a keyboard layout set doesn't get reloaded in this method. @@ -2955,11 +2964,13 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen if (!mConnection.resetCachesUponCursorMoveAndReturnSuccess(mLastSelectionStart, false)) { if (0 < remainingTries) { mHandler.postResetCaches(tryResumeSuggestions, remainingTries - 1); + return; } - return; + // If remainingTries is 0, we should stop waiting for new tries, but it's still + // better to load the keyboard (less things will be broken). } tryFixLyingCursorPosition(); - mKeyboardSwitcher.updateShiftState(); + mKeyboardSwitcher.loadKeyboard(getCurrentInputEditorInfo(), mSettings.getCurrent()); if (tryResumeSuggestions) mHandler.postResumeSuggestions(); } |