diff options
| author | 2023-06-13 20:41:00 +0000 | |
|---|---|---|
| committer | 2023-06-13 20:41:00 +0000 | |
| commit | 448e6a95d2f788b5271f5dfa627b2d698a42ecec (patch) | |
| tree | 04c43735c203450babea60cd0eb5c79de3252837 | |
| parent | 9eca058e484b787b35a4a4f89bfb2372799c6061 (diff) | |
| parent | c4f298c72c2c89b4facb7ff9b5075db2b6badc91 (diff) | |
Merge "Fix isExpanded behavior for sensitive notifications" into udc-qpr-dev
2 files changed, 38 insertions, 1 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRow.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRow.java index 9f397fe9ac0c..0bfd3c3c0b2b 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRow.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRow.java @@ -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(); diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRowTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRowTest.java index 4c83194783ab..608778e05dad 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRowTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRowTest.java @@ -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); |