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

Commit c6990a01 authored by Rohan Shah's avatar Rohan Shah
Browse files

[Notif] Disable long click listener after dismiss

Fix for blocking helper - disable long click after the main notification
has been dismissed, in preparation for the blocking helper (which can't
be long pressed)

Test: Visually
Change-Id: I78795df4e77cb8d51382c1103bfa4ce02c1a11f3
Fixes: 76227576
parent 4efdab2a
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -1061,6 +1061,7 @@ public class ExpandableNotificationRow extends ActivatableNotificationView
    }

    public void setDismissed(boolean fromAccessibility) {
        setLongPressListener(null);
        mDismissed = true;
        mGroupParentWhenDismissed = mNotificationParent;
        mRefocusOnDismiss = fromAccessibility;
+19 −0
Original line number Diff line number Diff line
@@ -18,7 +18,9 @@ package com.android.systemui.statusbar;

import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.reset;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
@@ -32,6 +34,7 @@ import android.view.NotificationHeaderView;
import android.view.View;

import com.android.systemui.SysuiTestCase;
import com.android.systemui.plugins.statusbar.NotificationMenuRowPlugin;
import com.android.systemui.statusbar.notification.AboveShelfChangedListener;
import com.android.systemui.statusbar.stack.NotificationChildrenContainer;

@@ -158,6 +161,22 @@ public class ExpandableNotificationRowTest extends SysuiTestCase {
                mGroup.isSoundEffectsEnabled());
    }

    @Test
    public void testSetDismissed_longPressListenerRemoved() {
        ExpandableNotificationRow.LongPressListener listener =
                mock(ExpandableNotificationRow.LongPressListener.class);
        mGroup.setLongPressListener(listener);
        mGroup.doLongClickCallback(0,0);
        verify(listener, times(1)).onLongPress(eq(mGroup), eq(0), eq(0),
                any(NotificationMenuRowPlugin.MenuItem.class));
        reset(listener);

        mGroup.setDismissed(true);
        mGroup.doLongClickCallback(0,0);
        verify(listener, times(0)).onLongPress(eq(mGroup), eq(0), eq(0),
                any(NotificationMenuRowPlugin.MenuItem.class));
    }

    @Test
    public void testShowAppOps_noHeader() {
        // public notification is custom layout - no header