Merge "Cache Blockable state of Notif. Entry"
This commit is contained in:
committed by
Android (Google) Code Review
commit
bf41d8d48f
@@ -175,6 +175,10 @@ public final class NotificationEntry extends ListEntry {
|
||||
public boolean mRemoteEditImeAnimatingAway;
|
||||
public boolean mRemoteEditImeVisible;
|
||||
private boolean mExpandAnimationRunning;
|
||||
/**
|
||||
* Flag to determine if the entry is blockable by DnD filters
|
||||
*/
|
||||
private boolean mBlockable;
|
||||
|
||||
/**
|
||||
* @param sbn the StatusBarNotification from system server
|
||||
@@ -253,6 +257,7 @@ public final class NotificationEntry extends ListEntry {
|
||||
}
|
||||
|
||||
mRanking = ranking.withAudiblyAlertedInfo(mRanking);
|
||||
updateIsBlockable();
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -781,15 +786,20 @@ public final class NotificationEntry extends ListEntry {
|
||||
* or is not in an allowList).
|
||||
*/
|
||||
public boolean isBlockable() {
|
||||
return mBlockable;
|
||||
}
|
||||
|
||||
private void updateIsBlockable() {
|
||||
if (getChannel() == null) {
|
||||
return false;
|
||||
mBlockable = false;
|
||||
return;
|
||||
}
|
||||
if (getChannel().isImportanceLockedByCriticalDeviceFunction()
|
||||
&& !getChannel().isBlockable()) {
|
||||
return false;
|
||||
mBlockable = false;
|
||||
return;
|
||||
}
|
||||
|
||||
return true;
|
||||
mBlockable = true;
|
||||
}
|
||||
|
||||
private boolean shouldSuppressVisualEffect(int effect) {
|
||||
|
||||
@@ -108,6 +108,7 @@ public class NotificationEntryTest extends SysuiTestCase {
|
||||
@Test
|
||||
public void testBlockableEntryWhenCritical() {
|
||||
doReturn(true).when(mChannel).isBlockable();
|
||||
mEntry.setRanking(mEntry.getRanking());
|
||||
|
||||
assertTrue(mEntry.isBlockable());
|
||||
}
|
||||
@@ -117,6 +118,7 @@ public class NotificationEntryTest extends SysuiTestCase {
|
||||
public void testBlockableEntryWhenCriticalAndChannelNotBlockable() {
|
||||
doReturn(true).when(mChannel).isBlockable();
|
||||
doReturn(true).when(mChannel).isImportanceLockedByCriticalDeviceFunction();
|
||||
mEntry.setRanking(mEntry.getRanking());
|
||||
|
||||
assertTrue(mEntry.isBlockable());
|
||||
}
|
||||
@@ -125,6 +127,7 @@ public class NotificationEntryTest extends SysuiTestCase {
|
||||
public void testNonBlockableEntryWhenCriticalAndChannelNotBlockable() {
|
||||
doReturn(false).when(mChannel).isBlockable();
|
||||
doReturn(true).when(mChannel).isImportanceLockedByCriticalDeviceFunction();
|
||||
mEntry.setRanking(mEntry.getRanking());
|
||||
|
||||
assertFalse(mEntry.isBlockable());
|
||||
}
|
||||
@@ -164,6 +167,9 @@ public class NotificationEntryTest extends SysuiTestCase {
|
||||
doReturn(true).when(mChannel).isImportanceLockedByCriticalDeviceFunction();
|
||||
doReturn(false).when(mChannel).isBlockable();
|
||||
|
||||
mEntry.setRanking(mEntry.getRanking());
|
||||
|
||||
assertFalse(mEntry.isBlockable());
|
||||
assertTrue(mEntry.isExemptFromDndVisualSuppression());
|
||||
assertFalse(mEntry.shouldSuppressAmbient());
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user