diff options
| author | 2014-03-24 11:27:18 -0700 | |
|---|---|---|
| committer | 2014-03-24 11:28:27 -0700 | |
| commit | 6b6b3fdbf5547417fde3ce56d9eb883963a54b58 (patch) | |
| tree | 9c426deb9bfe423905e54c19107d510d3fe6cd90 | |
| parent | e9c9c441346586e26eccc0523fcf12f5158e53f7 (diff) | |
Fix issue #13564072: Back button no longer dismisses IME after voice usage
Calling identity wasn't being cleared in an incoming code path.
Change-Id: Ib32060a91bf81531de049fafde69835b5382a25f
| -rw-r--r-- | core/java/android/view/inputmethod/InputMethodManager.java | 1 | ||||
| -rw-r--r-- | services/core/java/com/android/server/InputMethodManagerService.java | 7 |
2 files changed, 7 insertions, 1 deletions
diff --git a/core/java/android/view/inputmethod/InputMethodManager.java b/core/java/android/view/inputmethod/InputMethodManager.java index e812edd57246..f2ce113aab90 100644 --- a/core/java/android/view/inputmethod/InputMethodManager.java +++ b/core/java/android/view/inputmethod/InputMethodManager.java @@ -714,6 +714,7 @@ public final class InputMethodManager { * Reset all of the state associated with being bound to an input method. */ void clearBindingLocked() { + if (DEBUG) Log.v(TAG, "Clearing binding!"); clearConnectionLocked(); setInputChannelLocked(null); mBindSequence = -1; diff --git a/services/core/java/com/android/server/InputMethodManagerService.java b/services/core/java/com/android/server/InputMethodManagerService.java index 31822e71f429..5fb64056cd21 100644 --- a/services/core/java/com/android/server/InputMethodManagerService.java +++ b/services/core/java/com/android/server/InputMethodManagerService.java @@ -581,7 +581,12 @@ public class InputMethodManagerService extends IInputMethodManager.Stub @Override public void sessionCreated(IInputMethodSession session) { - mParentIMMS.onSessionCreated(mMethod, session, mChannel); + long ident = Binder.clearCallingIdentity(); + try { + mParentIMMS.onSessionCreated(mMethod, session, mChannel); + } finally { + Binder.restoreCallingIdentity(ident); + } } } |