Revert "Fix potential failures in InputMethodService"
This reverts commit ce98507bf3.
Reason for revert: b/247426953
Change-Id: If7b7a258150f8f57a7b4a88e4926d412f948fd9c
This commit is contained in:
@@ -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: {
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -417,10 +417,4 @@ public interface InputMethod {
|
||||
default void removeStylusHandwritingWindow() {
|
||||
// intentionally empty
|
||||
}
|
||||
|
||||
/**
|
||||
* Return {@code true} if the {@link InputMethodService} is destroyed.
|
||||
* @hide
|
||||
*/
|
||||
boolean isServiceDestroyed();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user