summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/NotificationUiAdjustment.java11
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationUiAdjustmentTest.java33
2 files changed, 40 insertions, 4 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationUiAdjustment.java b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationUiAdjustment.java
index 564d8bc14c8c..3f74aaf3abf5 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationUiAdjustment.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationUiAdjustment.java
@@ -38,10 +38,12 @@ public class NotificationUiAdjustment {
public final String key;
public final List<Notification.Action> smartActions;
public final List<CharSequence> smartReplies;
+ public final boolean isConversation;
@VisibleForTesting
NotificationUiAdjustment(
- String key, List<Notification.Action> smartActions, List<CharSequence> smartReplies) {
+ String key, List<Notification.Action> smartActions, List<CharSequence> smartReplies,
+ boolean isConversation) {
this.key = key;
this.smartActions = smartActions == null
? Collections.emptyList()
@@ -49,12 +51,14 @@ public class NotificationUiAdjustment {
this.smartReplies = smartReplies == null
? Collections.emptyList()
: smartReplies;
+ this.isConversation = isConversation;
}
public static NotificationUiAdjustment extractFromNotificationEntry(
NotificationEntry entry) {
return new NotificationUiAdjustment(
- entry.getKey(), entry.getSmartActions(), entry.getSmartReplies());
+ entry.getKey(), entry.getSmartActions(), entry.getSmartReplies(),
+ entry.getRanking().isConversation());
}
public static boolean needReinflate(
@@ -63,6 +67,9 @@ public class NotificationUiAdjustment {
if (oldAdjustment == newAdjustment) {
return false;
}
+ if (oldAdjustment.isConversation != newAdjustment.isConversation) {
+ return true;
+ }
if (areDifferent(oldAdjustment.smartActions, newAdjustment.smartActions)) {
return true;
}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationUiAdjustmentTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationUiAdjustmentTest.java
index d00be568cbff..3c9c9cca1619 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationUiAdjustmentTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationUiAdjustmentTest.java
@@ -188,6 +188,30 @@ public class NotificationUiAdjustmentTest extends SysuiTestCase {
.isFalse();
}
+ @Test
+ public void needReinflate_bothConversation() {
+ assertThat(NotificationUiAdjustment.needReinflate(
+ createUiAdjustmentForConversation("first", true),
+ createUiAdjustmentForConversation("first", true)))
+ .isFalse();
+ }
+
+ @Test
+ public void needReinflate_neitherConversation() {
+ assertThat(NotificationUiAdjustment.needReinflate(
+ createUiAdjustmentForConversation("first", false),
+ createUiAdjustmentForConversation("first", false)))
+ .isFalse();
+ }
+
+ @Test
+ public void needReinflate_differentIsConversation() {
+ assertThat(NotificationUiAdjustment.needReinflate(
+ createUiAdjustmentForConversation("first", false),
+ createUiAdjustmentForConversation("first", true)))
+ .isTrue();
+ }
+
private Notification.Action.Builder createActionBuilder(
String title, int drawableRes, PendingIntent pendingIntent) {
return new Notification.Action.Builder(
@@ -200,11 +224,16 @@ public class NotificationUiAdjustmentTest extends SysuiTestCase {
private NotificationUiAdjustment createUiAdjustmentFromSmartActions(
String key, List<Notification.Action> actions) {
- return new NotificationUiAdjustment(key, actions, null);
+ return new NotificationUiAdjustment(key, actions, null, false);
}
private NotificationUiAdjustment createUiAdjustmentFromSmartReplies(
String key, CharSequence[] replies) {
- return new NotificationUiAdjustment(key, null, Arrays.asList(replies));
+ return new NotificationUiAdjustment(key, null, Arrays.asList(replies), false);
+ }
+
+ private NotificationUiAdjustment createUiAdjustmentForConversation(
+ String key, boolean isConversation) {
+ return new NotificationUiAdjustment(key, null, null, isConversation);
}
}