diff options
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/statusbar/NotificationUiAdjustment.java | 11 | ||||
| -rw-r--r-- | packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationUiAdjustmentTest.java | 33 |
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); } } |