aboutsummaryrefslogtreecommitdiffstats
path: root/java/src/com/android/inputmethod/voice/VoiceIMEConnector.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/src/com/android/inputmethod/voice/VoiceIMEConnector.java')
-rw-r--r--java/src/com/android/inputmethod/voice/VoiceIMEConnector.java14
1 files changed, 12 insertions, 2 deletions
diff --git a/java/src/com/android/inputmethod/voice/VoiceIMEConnector.java b/java/src/com/android/inputmethod/voice/VoiceIMEConnector.java
index a3a3ea88e..a30570aa2 100644
--- a/java/src/com/android/inputmethod/voice/VoiceIMEConnector.java
+++ b/java/src/com/android/inputmethod/voice/VoiceIMEConnector.java
@@ -564,8 +564,18 @@ public class VoiceIMEConnector implements VoiceInput.UiListener {
}
private void switchToLastInputMethod() {
- IBinder token = mService.getWindow().getWindow().getAttributes().token;
- mImm.switchToLastInputMethod(token);
+ final IBinder token = mService.getWindow().getWindow().getAttributes().token;
+ new Thread ("switchToLastInputMethod") {
+ @Override
+ public void run() {
+ if (!mImm.switchToLastInputMethod(token)) {
+ // Needs to reset here because LatinIME failed to back to any IME and
+ // the same voice subtype will be triggered in the next time.
+ mVoiceInput.reset();
+ mService.requestHideSelf(0);
+ }
+ }
+ }.start();
}
private void reallyStartListening(boolean swipe) {