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_SET_BIGRAM_PREDICTIONS = 7;
private static final int MSG_START_ORIENTATION_CHANGE = 8; private static final int MSG_START_ORIENTATION_CHANGE = 8;
private static final int MSG_START_INPUT_VIEW = 9; 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) { public UIHandler(LatinIME outerInstance) {
super(outerInstance); super(outerInstance);
@ -293,6 +294,9 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
case MSG_START_INPUT_VIEW: case MSG_START_INPUT_VIEW:
latinIme.onStartInputView((EditorInfo)msg.obj, false); latinIme.onStartInputView((EditorInfo)msg.obj, false);
break; break;
case MSG_DISPLAY_COMPLETIONS:
latinIme.onDisplayCompletions((CompletionInfo[])msg.obj);
break;
case MSG_RESTORE_KEYBOARD_LAYOUT: case MSG_RESTORE_KEYBOARD_LAYOUT:
removeMessages(MSG_UPDATE_SHIFT_STATE); removeMessages(MSG_UPDATE_SHIFT_STATE);
((KeyboardLayoutState)msg.obj).restore(); ((KeyboardLayoutState)msg.obj).restore();
@ -417,6 +421,18 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
} }
return false; 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 @Override
@ -923,6 +939,9 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
@Override @Override
public void onDisplayCompletions(CompletionInfo[] applicationSpecifiedCompletions) { public void onDisplayCompletions(CompletionInfo[] applicationSpecifiedCompletions) {
if (mHandler.postDisplayCompletions(applicationSpecifiedCompletions)) {
return;
}
if (DEBUG) { if (DEBUG) {
Log.i(TAG, "Received completions:"); Log.i(TAG, "Received completions:");
if (applicationSpecifiedCompletions != null) { if (applicationSpecifiedCompletions != null) {