Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1d867453 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

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

parents 54f0b9e2 07cb6a4b
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -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;
}

/**
+3 −0
Original line number Diff line number Diff line
@@ -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());
                }
            }
+27 −0
Original line number Diff line number Diff line
@@ -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";