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

Commit b7d6d972 authored by Shan Huang's avatar Shan Huang Committed by Automerger Merge Worker
Browse files

Merge "Fix IME callback not being re-registered on screen off / on." into tm-dev am: bd7ac0c6

parents 74c53a9d bd7ac0c6
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -1625,7 +1625,6 @@ public class InputMethodService extends AbstractInputMethodService {
            // when IME developers are doing something unsupported.
            InputMethodPrivilegedOperationsRegistry.remove(mToken);
        }
        unregisterCompatOnBackInvokedCallback();
        mImeDispatcher = null;
    }

@@ -2788,6 +2787,11 @@ public class InputMethodService extends AbstractInputMethodService {
        if (mInkWindow != null) {
            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) {
+6 −0
Original line number Diff line number Diff line
@@ -158,6 +158,12 @@ public class ImeOnBackInvokedDispatcher implements OnBackInvokedDispatcher, Parc

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