Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fe8bf190 authored by Wilson Wu's avatar Wilson Wu Committed by Android (Google) Code Review
Browse files

Merge "Revert "Fix potential failures in InputMethodService""

parents 98800faf 1e5f9b6b
Loading
Loading
Loading
Loading
+1 −5
Original line number Diff line number Diff line
@@ -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: {
+5 −10
Original line number Diff line number Diff line
@@ -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;
        }
    }

    /**
+0 −6
Original line number Diff line number Diff line
@@ -417,10 +417,4 @@ public interface InputMethod {
    default void removeStylusHandwritingWindow() {
        // intentionally empty
    }

    /**
     * Return {@code true} if the {@link InputMethodService} is destroyed.
     * @hide
     */
    boolean isServiceDestroyed();
}