Only return non demoted conversations

Demoted conversations should enver display
in a conversation space

Test: atest
Bug: 150791002
Change-Id: Icf7d6e7e2a22f14c47f30e625767ed71c4f993b8
This commit is contained in:
Julia Reynolds
2020-04-22 16:18:44 -04:00
parent 3a507cbf8c
commit b1b9d64b5a
2 changed files with 39 additions and 0 deletions

View File

@@ -1255,6 +1255,7 @@ public class PreferencesHelper implements RankingConfig {
for (int i = 0; i < N; i++) {
final NotificationChannel nc = p.channels.valueAt(i);
if (!TextUtils.isEmpty(nc.getConversationId()) && !nc.isDeleted()
&& !nc.isDemoted()
&& (nc.isImportantConversation() || !onlyImportant)) {
ConversationChannelWrapper conversation = new ConversationChannelWrapper();
conversation.setPkg(p.pkg);

View File

@@ -3141,6 +3141,44 @@ public class PreferencesHelperTest extends UiServiceTestCase {
assertTrue(conversationWrapperContainsChannel(convos, channel2));
}
@Test
public void testGetConversations_notDemoted() {
String convoId = "convo";
NotificationChannel messages =
new NotificationChannel("messages", "Messages", IMPORTANCE_DEFAULT);
mHelper.createNotificationChannel(PKG_O, UID_O, messages, true, false);
NotificationChannel calls =
new NotificationChannel("calls", "Calls", IMPORTANCE_DEFAULT);
mHelper.createNotificationChannel(PKG_O, UID_O, calls, true, false);
NotificationChannel p =
new NotificationChannel("p calls", "Calls", IMPORTANCE_DEFAULT);
mHelper.createNotificationChannel(PKG_P, UID_P, p, true, false);
NotificationChannel channel =
new NotificationChannel("A person msgs", "messages from A", IMPORTANCE_DEFAULT);
channel.setConversationId(messages.getId(), convoId);
mHelper.createNotificationChannel(PKG_O, UID_O, channel, true, false);
NotificationChannel diffConvo =
new NotificationChannel("B person msgs", "messages from B", IMPORTANCE_DEFAULT);
diffConvo.setConversationId(p.getId(), "different convo");
diffConvo.setDemoted(true);
mHelper.createNotificationChannel(PKG_P, UID_P, diffConvo, true, false);
NotificationChannel channel2 =
new NotificationChannel("A person calls", "calls from A", IMPORTANCE_DEFAULT);
channel2.setConversationId(calls.getId(), convoId);
channel2.setImportantConversation(true);
mHelper.createNotificationChannel(PKG_O, UID_O, channel2, true, false);
List<ConversationChannelWrapper> convos = mHelper.getConversations(false);
assertEquals(2, convos.size());
assertTrue(conversationWrapperContainsChannel(convos, channel));
assertFalse(conversationWrapperContainsChannel(convos, diffConvo));
assertTrue(conversationWrapperContainsChannel(convos, channel2));
}
@Test
public void testGetConversations_onlyImportant() {
String convoId = "convo";