am ffd156c7: Postpone onDisplayCompletions until onStartInputView has been executed

* commit 'ffd156c77e93a54b704780b46886ba597d1c77cb':
  Postpone onDisplayCompletions until onStartInputView has been executed
main
Tadashi G. Takaoka 2011-09-27 19:32:40 -07:00 committed by Android Git Automerger
commit 34e56f1a2e
1 changed files with 20 additions and 1 deletions

View File

@ -241,7 +241,8 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
private static final int MSG_SET_BIGRAM_PREDICTIONS = 7;
private static final int MSG_START_ORIENTATION_CHANGE = 8;
private static final int MSG_START_INPUT_VIEW = 9;
private static final int MSG_RESTORE_KEYBOARD_LAYOUT = 10;
private static final int MSG_DISPLAY_COMPLETIONS = 10;
private static final int MSG_RESTORE_KEYBOARD_LAYOUT = 11;
public UIHandler(LatinIME outerInstance) {
super(outerInstance);
@ -293,6 +294,9 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
case MSG_START_INPUT_VIEW:
latinIme.onStartInputView((EditorInfo)msg.obj, false);
break;
case MSG_DISPLAY_COMPLETIONS:
latinIme.onDisplayCompletions((CompletionInfo[])msg.obj);
break;
case MSG_RESTORE_KEYBOARD_LAYOUT:
removeMessages(MSG_UPDATE_SHIFT_STATE);
((KeyboardLayoutState)msg.obj).restore();
@ -417,6 +421,18 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
}
return false;
}
public boolean postDisplayCompletions(CompletionInfo[] applicationSpecifiedCompletions) {
if (hasMessages(MSG_START_INPUT_VIEW) || hasMessages(MSG_DISPLAY_COMPLETIONS)) {
removeMessages(MSG_DISPLAY_COMPLETIONS);
// Postpone onDisplayCompletions by ACCUMULATE_START_INPUT_VIEW_DELAY.
sendMessageDelayed(
obtainMessage(MSG_DISPLAY_COMPLETIONS, applicationSpecifiedCompletions),
ACCUMULATE_START_INPUT_VIEW_DELAY);
return true;
}
return false;
}
}
@Override
@ -923,6 +939,9 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
@Override
public void onDisplayCompletions(CompletionInfo[] applicationSpecifiedCompletions) {
if (mHandler.postDisplayCompletions(applicationSpecifiedCompletions)) {
return;
}
if (DEBUG) {
Log.i(TAG, "Received completions:");
if (applicationSpecifiedCompletions != null) {