Loading cmds/statsd/src/atoms.proto +6 −0 Original line number Diff line number Diff line Loading @@ -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; } /** Loading services/core/java/com/android/server/notification/PreferencesHelper.java +3 −0 Original line number Diff line number Diff line Loading @@ -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()); } } Loading services/tests/uiservicestests/src/com/android/server/notification/PreferencesHelperTest.java +27 −0 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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; Loading Loading @@ -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"; Loading Loading
cmds/statsd/src/atoms.proto +6 −0 Original line number Diff line number Diff line Loading @@ -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; } /** Loading
services/core/java/com/android/server/notification/PreferencesHelper.java +3 −0 Original line number Diff line number Diff line Loading @@ -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()); } } Loading
services/tests/uiservicestests/src/com/android/server/notification/PreferencesHelperTest.java +27 −0 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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; Loading Loading @@ -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"; Loading