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
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user