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

Commit 40e4bf09 authored by Automerger Merge Worker's avatar Automerger Merge Worker Committed by Android (Google) Code Review
Browse files

Merge "Merge "Fix IME callback not being re-registered on screen off / on."...

Merge "Merge "Fix IME callback not being re-registered on screen off / on." into tm-dev am: bd7ac0c6 am: a4144a69" into tm-d1-dev-plus-aosp
parents 5eeb26cb 4c936265
Loading
Loading
Loading
Loading
+5 −1
Original line number Original line Diff line number Diff line
@@ -1625,7 +1625,6 @@ public class InputMethodService extends AbstractInputMethodService {
            // when IME developers are doing something unsupported.
            // when IME developers are doing something unsupported.
            InputMethodPrivilegedOperationsRegistry.remove(mToken);
            InputMethodPrivilegedOperationsRegistry.remove(mToken);
        }
        }
        unregisterCompatOnBackInvokedCallback();
        mImeDispatcher = null;
        mImeDispatcher = null;
    }
    }


@@ -2788,6 +2787,11 @@ public class InputMethodService extends AbstractInputMethodService {
        if (mInkWindow != null) {
        if (mInkWindow != null) {
            finishStylusHandwriting();
            finishStylusHandwriting();
        }
        }
        // Back callback is typically unregistered in {@link #hideWindow()}, but it's possible
        // for {@link #doFinishInput()} to be called without {@link #hideWindow()} so we also
        // unregister here.
        // TODO(b/232341407): Add CTS to verify back behavior after screen on / off.
        unregisterCompatOnBackInvokedCallback();
    }
    }


    void doStartInput(InputConnection ic, EditorInfo attribute, boolean restarting) {
    void doStartInput(InputConnection ic, EditorInfo attribute, boolean restarting) {
+6 −0
Original line number Original line Diff line number Diff line
@@ -158,6 +158,12 @@ public class ImeOnBackInvokedDispatcher implements OnBackInvokedDispatcher, Parc


    /** Clears all registered callbacks on the instance. */
    /** Clears all registered callbacks on the instance. */
    public void clear() {
    public void clear() {
        // Unregister previously registered callbacks if there's any.
        if (getReceivingDispatcher() != null) {
            for (OnBackInvokedCallback callback : mImeCallbackMap.values()) {
                getReceivingDispatcher().unregisterOnBackInvokedCallback(callback);
            }
        }
        mImeCallbackMap.clear();
        mImeCallbackMap.clear();
    }
    }