diff options
| author | 2017-02-10 13:39:10 -0800 | |
|---|---|---|
| committer | 2017-02-11 02:56:48 +0000 | |
| commit | 1a5838e966eab7a9f0dca71cabbc9922babb995e (patch) | |
| tree | dcf1ba51362caeb9b72f4080748ec5794a7490c0 | |
| parent | 0a54d4bbed189357c82598918d819d3bf111d104 (diff) | |
Merge restartInput into startInput in internal IPC
As a preparation to start tracking all the event flows that
cause InputMethodManagerService#setImeWindowStatus(), this CL
merges an internal IPC method IInputMethod#restartInput() into
IInputMethod#startInput() in favor of simplicity.
Test: Done some quick manual testing to make sure that IME is
still working
Bug: 35079353
Change-Id: Ifda6f74ac1b1370d9e9a9fe60354b692121fdcb9
3 files changed, 16 insertions, 52 deletions
diff --git a/core/java/android/inputmethodservice/IInputMethodWrapper.java b/core/java/android/inputmethodservice/IInputMethodWrapper.java index 167d5a09a2dc..bdc301c41adf 100644 --- a/core/java/android/inputmethodservice/IInputMethodWrapper.java +++ b/core/java/android/inputmethodservice/IInputMethodWrapper.java @@ -61,7 +61,6 @@ class IInputMethodWrapper extends IInputMethod.Stub private static final int DO_SET_INPUT_CONTEXT = 20; private static final int DO_UNSET_INPUT_CONTEXT = 30; private static final int DO_START_INPUT = 32; - private static final int DO_RESTART_INPUT = 34; private static final int DO_CREATE_SESSION = 40; private static final int DO_SET_SESSION_ENABLED = 45; private static final int DO_REVOKE_SESSION = 50; @@ -166,24 +165,17 @@ class IInputMethodWrapper extends IInputMethod.Stub case DO_START_INPUT: { SomeArgs args = (SomeArgs)msg.obj; int missingMethods = msg.arg1; + boolean restarting = msg.arg2 != 0; IInputContext inputContext = (IInputContext)args.arg1; InputConnection ic = inputContext != null ? new InputConnectionWrapper(mTarget, inputContext, missingMethods) : null; EditorInfo info = (EditorInfo)args.arg2; info.makeCompatible(mTargetSdkVersion); - inputMethod.startInput(ic, info); - args.recycle(); - return; - } - case DO_RESTART_INPUT: { - SomeArgs args = (SomeArgs)msg.obj; - int missingMethods = msg.arg1; - IInputContext inputContext = (IInputContext)args.arg1; - InputConnection ic = inputContext != null - ? new InputConnectionWrapper(mTarget, inputContext, missingMethods) : null; - EditorInfo info = (EditorInfo)args.arg2; - info.makeCompatible(mTargetSdkVersion); - inputMethod.restartInput(ic, info); + if (restarting) { + inputMethod.restartInput(ic, info); + } else { + inputMethod.startInput(ic, info); + } args.recycle(); return; } @@ -265,17 +257,9 @@ class IInputMethodWrapper extends IInputMethod.Stub @Override public void startInput(IInputContext inputContext, @InputConnectionInspector.MissingMethodFlags final int missingMethods, - EditorInfo attribute) { - mCaller.executeOrSendMessage(mCaller.obtainMessageIOO(DO_START_INPUT, - missingMethods, inputContext, attribute)); - } - - @Override - public void restartInput(IInputContext inputContext, - @InputConnectionInspector.MissingMethodFlags final int missingMethods, - EditorInfo attribute) { - mCaller.executeOrSendMessage(mCaller.obtainMessageIOO(DO_RESTART_INPUT, - missingMethods, inputContext, attribute)); + EditorInfo attribute, boolean restarting) { + mCaller.executeOrSendMessage(mCaller.obtainMessageIIOO(DO_START_INPUT, + missingMethods, restarting ? 1 : 0, inputContext, attribute)); } @Override diff --git a/core/java/com/android/internal/view/IInputMethod.aidl b/core/java/com/android/internal/view/IInputMethod.aidl index 6ab1ec797a22..9870612dfac5 100644 --- a/core/java/com/android/internal/view/IInputMethod.aidl +++ b/core/java/com/android/internal/view/IInputMethod.aidl @@ -38,9 +38,8 @@ oneway interface IInputMethod { void unbindInput(); - void startInput(in IInputContext inputContext, int missingMethods, in EditorInfo attribute); - - void restartInput(in IInputContext inputContext, int missingMethods, in EditorInfo attribute); + void startInput(in IInputContext inputContext, int missingMethods, in EditorInfo attribute, + boolean restarting); void createSession(in InputChannel channel, IInputSessionCallback callback); diff --git a/services/core/java/com/android/server/InputMethodManagerService.java b/services/core/java/com/android/server/InputMethodManagerService.java index f0f50f07fcca..6cfbc5a2662b 100644 --- a/services/core/java/com/android/server/InputMethodManagerService.java +++ b/services/core/java/com/android/server/InputMethodManagerService.java @@ -175,7 +175,6 @@ public class InputMethodManagerService extends IInputMethodManager.Stub static final int MSG_CREATE_SESSION = 1050; static final int MSG_START_INPUT = 2000; - static final int MSG_RESTART_INPUT = 2010; static final int MSG_UNBIND_CLIENT = 3000; static final int MSG_BIND_CLIENT = 3010; @@ -1341,15 +1340,9 @@ public class InputMethodManagerService extends IInputMethodManager.Stub mBoundToMethod = true; } final SessionState session = mCurClient.curSession; - if (initial) { - executeOrSendMessage(session.method, mCaller.obtainMessageIOOO( - MSG_START_INPUT, mCurInputContextMissingMethods, session, mCurInputContext, - mCurAttribute)); - } else { - executeOrSendMessage(session.method, mCaller.obtainMessageIOOO( - MSG_RESTART_INPUT, mCurInputContextMissingMethods, session, mCurInputContext, - mCurAttribute)); - } + executeOrSendMessage(session.method, mCaller.obtainMessageIIOOO( + MSG_START_INPUT, initial ? 0 : 1 /* restarting */, mCurInputContextMissingMethods, + session, mCurInputContext, mCurAttribute)); if (mShowRequested) { if (DEBUG) Slog.v(TAG, "Attach new input asks to show input"); showCurrentInputLocked(getAppShowFlags(), null); @@ -2898,25 +2891,13 @@ public class InputMethodManagerService extends IInputMethodManager.Stub case MSG_START_INPUT: { int missingMethods = msg.arg1; + boolean restarting = msg.arg2 != 0; args = (SomeArgs) msg.obj; try { SessionState session = (SessionState) args.arg1; setEnabledSessionInMainThread(session); session.method.startInput((IInputContext) args.arg2, missingMethods, - (EditorInfo) args.arg3); - } catch (RemoteException e) { - } - args.recycle(); - return true; - } - case MSG_RESTART_INPUT: { - int missingMethods = msg.arg1; - args = (SomeArgs) msg.obj; - try { - SessionState session = (SessionState) args.arg1; - setEnabledSessionInMainThread(session); - session.method.restartInput((IInputContext) args.arg2, missingMethods, - (EditorInfo) args.arg3); + (EditorInfo) args.arg3, restarting); } catch (RemoteException e) { } args.recycle(); |