Merge "Cache Blockable state of Notif. Entry" into tm-qpr-dev am: 9c8a2793d5

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/19049813

Change-Id: I1827f683cf72b6cce0c6ee9fef0760b86321da63
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Jay Aliomer
2022-06-28 01:46:25 +00:00
committed by Automerger Merge Worker
2 changed files with 20 additions and 4 deletions

View File

@@ -175,6 +175,10 @@ public final class NotificationEntry extends ListEntry {
public boolean mRemoteEditImeAnimatingAway; public boolean mRemoteEditImeAnimatingAway;
public boolean mRemoteEditImeVisible; public boolean mRemoteEditImeVisible;
private boolean mExpandAnimationRunning; private boolean mExpandAnimationRunning;
/**
* Flag to determine if the entry is blockable by DnD filters
*/
private boolean mBlockable;
/** /**
* @param sbn the StatusBarNotification from system server * @param sbn the StatusBarNotification from system server
@@ -253,6 +257,7 @@ public final class NotificationEntry extends ListEntry {
} }
mRanking = ranking.withAudiblyAlertedInfo(mRanking); mRanking = ranking.withAudiblyAlertedInfo(mRanking);
updateIsBlockable();
} }
/* /*
@@ -781,15 +786,20 @@ public final class NotificationEntry extends ListEntry {
* or is not in an allowList). * or is not in an allowList).
*/ */
public boolean isBlockable() { public boolean isBlockable() {
return mBlockable;
}
private void updateIsBlockable() {
if (getChannel() == null) { if (getChannel() == null) {
return false; mBlockable = false;
return;
} }
if (getChannel().isImportanceLockedByCriticalDeviceFunction() if (getChannel().isImportanceLockedByCriticalDeviceFunction()
&& !getChannel().isBlockable()) { && !getChannel().isBlockable()) {
return false; mBlockable = false;
return;
} }
mBlockable = true;
return true;
} }
private boolean shouldSuppressVisualEffect(int effect) { private boolean shouldSuppressVisualEffect(int effect) {

View File

@@ -108,6 +108,7 @@ public class NotificationEntryTest extends SysuiTestCase {
@Test @Test
public void testBlockableEntryWhenCritical() { public void testBlockableEntryWhenCritical() {
doReturn(true).when(mChannel).isBlockable(); doReturn(true).when(mChannel).isBlockable();
mEntry.setRanking(mEntry.getRanking());
assertTrue(mEntry.isBlockable()); assertTrue(mEntry.isBlockable());
} }
@@ -117,6 +118,7 @@ public class NotificationEntryTest extends SysuiTestCase {
public void testBlockableEntryWhenCriticalAndChannelNotBlockable() { public void testBlockableEntryWhenCriticalAndChannelNotBlockable() {
doReturn(true).when(mChannel).isBlockable(); doReturn(true).when(mChannel).isBlockable();
doReturn(true).when(mChannel).isImportanceLockedByCriticalDeviceFunction(); doReturn(true).when(mChannel).isImportanceLockedByCriticalDeviceFunction();
mEntry.setRanking(mEntry.getRanking());
assertTrue(mEntry.isBlockable()); assertTrue(mEntry.isBlockable());
} }
@@ -125,6 +127,7 @@ public class NotificationEntryTest extends SysuiTestCase {
public void testNonBlockableEntryWhenCriticalAndChannelNotBlockable() { public void testNonBlockableEntryWhenCriticalAndChannelNotBlockable() {
doReturn(false).when(mChannel).isBlockable(); doReturn(false).when(mChannel).isBlockable();
doReturn(true).when(mChannel).isImportanceLockedByCriticalDeviceFunction(); doReturn(true).when(mChannel).isImportanceLockedByCriticalDeviceFunction();
mEntry.setRanking(mEntry.getRanking());
assertFalse(mEntry.isBlockable()); assertFalse(mEntry.isBlockable());
} }
@@ -164,6 +167,9 @@ public class NotificationEntryTest extends SysuiTestCase {
doReturn(true).when(mChannel).isImportanceLockedByCriticalDeviceFunction(); doReturn(true).when(mChannel).isImportanceLockedByCriticalDeviceFunction();
doReturn(false).when(mChannel).isBlockable(); doReturn(false).when(mChannel).isBlockable();
mEntry.setRanking(mEntry.getRanking());
assertFalse(mEntry.isBlockable());
assertTrue(mEntry.isExemptFromDndVisualSuppression()); assertTrue(mEntry.isExemptFromDndVisualSuppression());
assertFalse(mEntry.shouldSuppressAmbient()); assertFalse(mEntry.shouldSuppressAmbient());
} }