Merge "add conversation flags to channel atom" into rvc-dev

This commit is contained in:
TreeHugger Robot
2020-05-19 06:51:54 +00:00
committed by Android (Google) Code Review
3 changed files with 36 additions and 0 deletions

View File

@@ -6032,6 +6032,12 @@ message PackageNotificationChannelPreferences {
optional int32 user_locked_fields = 6;
// Indicates if the channel was deleted by the app.
optional bool is_deleted = 7;
// Indicates if the channel was marked as a conversation by the app.
optional bool is_conversation = 8;
// Indicates if the channel is a conversation that was demoted by the user.
optional bool is_demoted_conversation = 9;
// Indicates if the channel is a conversation that was marked as important by the user.
optional bool is_important_conversation = 10;
}
/**

View File

@@ -1936,6 +1936,9 @@ public class PreferencesHelper implements RankingConfig {
event.writeInt(channel.getImportance());
event.writeInt(channel.getUserLockedFields());
event.writeBoolean(channel.isDeleted());
event.writeBoolean(channel.getConversationId() != null);
event.writeBoolean(channel.isDemoted());
event.writeBoolean(channel.isImportantConversation());
events.add(event.build());
}
}

View File

@@ -81,6 +81,7 @@ import android.testing.TestableContentResolver;
import android.util.ArrayMap;
import android.util.ArraySet;
import android.util.Pair;
import android.util.StatsEvent;
import android.util.Xml;
import androidx.test.InstrumentationRegistry;
@@ -89,6 +90,7 @@ import androidx.test.runner.AndroidJUnit4;
import com.android.internal.util.FastXmlSerializer;
import com.android.server.UiServiceTestCase;
import org.json.JSONArray;
import org.json.JSONObject;
import org.junit.Before;
@@ -2996,6 +2998,31 @@ public class PreferencesHelperTest extends UiServiceTestCase {
PKG_O, UID_O, parent.getId(), conversationId, false, false), conversationId);
}
@Test
public void testPullConversationNotificationChannel() {
String conversationId = "friend";
NotificationChannel parent =
new NotificationChannel("parent", "messages", IMPORTANCE_DEFAULT);
mHelper.createNotificationChannel(PKG_O, UID_O, parent, true, false);
String channelId = String.format(
CONVERSATION_CHANNEL_ID_FORMAT, parent.getId(), conversationId);
NotificationChannel friend = new NotificationChannel(channelId,
"messages", IMPORTANCE_DEFAULT);
friend.setConversationId(parent.getId(), conversationId);
mHelper.createNotificationChannel(PKG_O, UID_O, friend, true, false);
ArrayList<StatsEvent> events = new ArrayList<>();
mHelper.pullPackageChannelPreferencesStats(events);
boolean found = false;
for (StatsEvent event : events) {
// TODO(b/153195691): inspect the content once it is possible to do so
found = true;
}
assertTrue("conversation was not in the pull", found);
}
@Test
public void testGetNotificationChannel_conversationProvidedByNotCustomizedYet() {
String conversationId = "friend";