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

Commit c4f298c7 authored by Ibrahim Yilmaz's avatar Ibrahim Yilmaz
Browse files

Fix isExpanded behavior for sensitive notifications

ENR#isExpanded returns true for sensitive notifications when the state is not shade.
Expected behavior for isExpanded method for this case  is to return false.

In order to achieve this, we return false in isExpanded for sensitive notifications when the system set setHideSensitive true.
Bug: 275457408
Test: atest ExpandableNotificationRowTest

Change-Id: I8509e910dc0ce2e7b3796c5682bc6949dfa87b6b
parent 91821672
Loading
Loading
Loading
Loading
+8 −1
Original line number Diff line number Diff line
@@ -2673,7 +2673,12 @@ public class ExpandableNotificationRow extends ActivatableNotificationView
    }

    public boolean isExpanded(boolean allowOnKeyguard) {
        return (!mOnKeyguard || allowOnKeyguard)
        if (DEBUG) {
            if (!mShowingPublicInitialized && !allowOnKeyguard) {
                Log.d(TAG, "mShowingPublic is not initialized.");
            }
        }
        return !mShowingPublic && (!mOnKeyguard || allowOnKeyguard)
                && (!hasUserChangedExpansion() && (isSystemExpanded() || isSystemChildExpanded())
                || isUserExpanded());
    }
@@ -3620,6 +3625,8 @@ public class ExpandableNotificationRow extends ActivatableNotificationView
            pw.print(", mOnUserInteractionCallback null: " + (mOnUserInteractionCallback == null));
            pw.print(", removed: " + isRemoved());
            pw.print(", expandAnimationRunning: " + mExpandAnimationRunning);
            pw.print(", mShowingPublic: " + mShowingPublic);
            pw.print(", mShowingPublicInitialized: " + mShowingPublicInitialized);
            NotificationContentView showingLayout = getShowingLayout();
            pw.print(", privateShowing: " + (showingLayout == mPrivateLayout));
            pw.println();
+30 −0
Original line number Diff line number Diff line
@@ -733,6 +733,36 @@ public class ExpandableNotificationRowTest extends SysuiTestCase {
        verify(lowPriVectorDrawable, times(1)).start();
    }

    @Test
    public void isExpanded_hideSensitive_sensitiveNotExpanded()
            throws Exception {
        // GIVEN
        final ExpandableNotificationRow row = mNotificationTestHelper.createRow();
        row.setUserExpanded(true);
        row.setOnKeyguard(false);
        row.setSensitive(/* sensitive= */true, /* hideSensitive= */false);
        row.setHideSensitive(/* hideSensitive= */true, /* animated= */false,
                /* delay= */0L, /* duration= */0L);

        // THEN
        assertThat(row.isExpanded()).isFalse();
    }

    @Test
    public void isExpanded_hideSensitive_nonSensitiveExpanded()
            throws Exception {
        // GIVEN
        final ExpandableNotificationRow row = mNotificationTestHelper.createRow();
        row.setUserExpanded(true);
        row.setOnKeyguard(false);
        row.setSensitive(/* sensitive= */true, /* hideSensitive= */false);
        row.setHideSensitive(/* hideSensitive= */false, /* animated= */false,
                /* delay= */0L, /* duration= */0L);

        // THEN
        assertThat(row.isExpanded()).isTrue();
    }

    private void setDrawableIconsInImageView(CachingIconView icon, Drawable iconDrawable,
            Drawable rightIconDrawable) {
        ImageView iconView = mock(ImageView.class);