Merge "Revert "Fix potential failures in InputMethodService""

This commit is contained in:
Wilson Wu
2022-09-19 09:13:38 +00:00
committed by Android (Google) Code Review
3 changed files with 6 additions and 21 deletions

View File

@@ -147,16 +147,12 @@ class IInputMethodWrapper extends IInputMethod.Stub
@MainThread
@Override
public void executeMessage(Message msg) {
final InputMethod inputMethod = mInputMethod.get();
InputMethod inputMethod = mInputMethod.get();
// Need a valid reference to the inputMethod for everything except a dump.
if (inputMethod == null && msg.what != DO_DUMP) {
Log.w(TAG, "Input method reference was null, ignoring message: " + msg.what);
return;
}
if (inputMethod != null && inputMethod.isServiceDestroyed() && msg.what != DO_DUMP) {
Log.w(TAG, "InputMethodService was destroyed, ignoring message: " + msg.what);
return;
}
switch (msg.what) {
case DO_DUMP: {

View File

@@ -700,6 +700,11 @@ public class InputMethodService extends AbstractInputMethodService {
@MainThread
@Override
public final void initializeInternal(@NonNull IInputMethod.InitParams params) {
if (mDestroyed) {
Log.i(TAG, "The InputMethodService has already onDestroyed()."
+ "Ignore the initialization.");
return;
}
Trace.traceBegin(TRACE_TAG_WINDOW_MANAGER, "IMS.initializeInternal");
mConfigTracker.onInitialize(params.configChanges);
mPrivOps.set(params.privilegedOperations);
@@ -1065,16 +1070,6 @@ public class InputMethodService extends AbstractInputMethodService {
public void changeInputMethodSubtype(InputMethodSubtype subtype) {
dispatchOnCurrentInputMethodSubtypeChanged(subtype);
}
/**
* {@inheritDoc}
* @hide
*/
@MainThread
@Override
public final boolean isServiceDestroyed() {
return mDestroyed;
}
}
/**

View File

@@ -417,10 +417,4 @@ public interface InputMethod {
default void removeStylusHandwritingWindow() {
// intentionally empty
}
/**
* Return {@code true} if the {@link InputMethodService} is destroyed.
* @hide
*/
boolean isServiceDestroyed();
}