Revert "Fix potential failures in InputMethodService"

This reverts commit ce98507bf3.

Reason for revert: b/247426953

Change-Id: If7b7a258150f8f57a7b4a88e4926d412f948fd9c
This commit is contained in:
Wilson Wu
2022-09-19 08:55:19 +00:00
parent ce98507bf3
commit 1e5f9b6bfd
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();
}