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

Commit 23f87d67 authored by Johannes Gallmann's avatar Johannes Gallmann Committed by Android (Google) Code Review
Browse files

Merge "Fix back callback not cleared by RIV" into main

parents d98e0c07 3db0392c
Loading
Loading
Loading
Loading
+2 −5
Original line number Diff line number Diff line
@@ -461,6 +461,7 @@ public class RemoteInputView extends LinearLayout implements View.OnClickListene
                }
            }
        }
        unregisterBackCallback();

        if (logClose) {
            mUiEventLogger.logWithInstanceId(
@@ -558,11 +559,6 @@ public class RemoteInputView extends LinearLayout implements View.OnClickListene

    @Override
    public void onVisibilityAggregated(boolean isVisible) {
        if (isVisible) {
            registerBackCallback();
        } else {
            unregisterBackCallback();
        }
        super.onVisibilityAggregated(isVisible);
        mEditText.setEnabled(isVisible && !mSending);
    }
@@ -623,6 +619,7 @@ public class RemoteInputView extends LinearLayout implements View.OnClickListene
        setAttachment(mEntry.remoteInputAttachment);

        updateSendButton();
        registerBackCallback();
    }

    public void onNotificationUpdateOrReset() {
+5 −6
Original line number Diff line number Diff line
@@ -269,14 +269,14 @@ public class RemoteInputViewTest extends SysuiTestCase {
        when(viewRoot.getOnBackInvokedDispatcher()).thenReturn(backInvokedDispatcher);
        view.setViewRootImpl(viewRoot);

        /* verify that predictive back callback registered when RemoteInputView becomes visible */
        view.onVisibilityAggregated(true);
        /* verify that predictive back callback registered when RemoteInputView gains focus */
        view.focus();
        verify(backInvokedDispatcher).registerOnBackInvokedCallback(
                eq(OnBackInvokedDispatcher.PRIORITY_OVERLAY),
                onBackInvokedCallbackCaptor.capture());

        /* verify that same callback unregistered when RemoteInputView becomes invisible */
        view.onVisibilityAggregated(false);
        /* verify that same callback unregistered when RemoteInputView loses focus */
        view.onDefocus(false, false, null);
        verify(backInvokedDispatcher).unregisterOnBackInvokedCallback(
                eq(onBackInvokedCallbackCaptor.getValue()));
    }
@@ -299,13 +299,12 @@ public class RemoteInputViewTest extends SysuiTestCase {
        view.onVisibilityAggregated(true);
        view.setEditTextReferenceToSelf();

        view.focus();
        /* capture the callback during registration */
        verify(backInvokedDispatcher).registerOnBackInvokedCallback(
                eq(OnBackInvokedDispatcher.PRIORITY_OVERLAY),
                onBackInvokedCallbackCaptor.capture());

        view.focus();

        /* invoke the captured callback */
        onBackInvokedCallbackCaptor.getValue().onBackInvoked();