Fix ZenPolicy -> NotificationManager.Policy for conversations setting.
Unlike the priority senders (for messages and calls), the conversations setting uses the same enum in both ZenPolicy and NotificationManager.Policy, so the extraneous call to getNotificationPolicySenders resulted in an incorrect value in conversion. Bug: 197223270 Test: atest ZenModeConfigTest Change-Id: Ifa135ba9869ae1a2d3bffe5ec40f411eee197d7e
This commit is contained in:
@@ -1051,9 +1051,8 @@ public class ZenModeConfig implements Parcelable {
|
||||
if (zenPolicy.isCategoryAllowed(ZenPolicy.PRIORITY_CATEGORY_CONVERSATIONS,
|
||||
isPriorityCategoryEnabled(Policy.PRIORITY_CATEGORY_CONVERSATIONS, defaultPolicy))) {
|
||||
priorityCategories |= Policy.PRIORITY_CATEGORY_CONVERSATIONS;
|
||||
conversationSenders = getNotificationPolicySenders(
|
||||
zenPolicy.getPriorityConversationSenders(),
|
||||
conversationSenders);
|
||||
conversationSenders = getConversationSendersWithDefault(
|
||||
zenPolicy.getPriorityConversationSenders(), conversationSenders);
|
||||
}
|
||||
|
||||
if (zenPolicy.isCategoryAllowed(ZenPolicy.PRIORITY_CATEGORY_CALLS,
|
||||
@@ -1166,6 +1165,17 @@ public class ZenModeConfig implements Parcelable {
|
||||
}
|
||||
}
|
||||
|
||||
private int getConversationSendersWithDefault(@ZenPolicy.ConversationSenders int senders,
|
||||
int defaultPolicySender) {
|
||||
switch (senders) {
|
||||
case ZenPolicy.CONVERSATION_SENDERS_ANYONE:
|
||||
case ZenPolicy.CONVERSATION_SENDERS_IMPORTANT:
|
||||
case ZenPolicy.CONVERSATION_SENDERS_NONE:
|
||||
return senders;
|
||||
default:
|
||||
return defaultPolicySender;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Maps NotificationManager.Policy senders type to ZenPolicy.PeopleType
|
||||
@@ -1216,7 +1226,8 @@ public class ZenModeConfig implements Parcelable {
|
||||
}
|
||||
priorityCallSenders = sourceToPrioritySenders(allowCallsFrom, priorityCallSenders);
|
||||
priorityMessageSenders = sourceToPrioritySenders(allowMessagesFrom, priorityMessageSenders);
|
||||
priorityConversationSenders = allowConversationsFrom;
|
||||
priorityConversationSenders = getConversationSendersWithDefault(
|
||||
allowConversationsFrom, priorityConversationSenders);
|
||||
|
||||
return new Policy(priorityCategories, priorityCallSenders, priorityMessageSenders,
|
||||
suppressedVisualEffects, areChannelsBypassingDnd
|
||||
|
||||
@@ -16,6 +16,8 @@
|
||||
|
||||
package com.android.server.notification;
|
||||
|
||||
import static android.service.notification.ZenPolicy.CONVERSATION_SENDERS_IMPORTANT;
|
||||
|
||||
import static junit.framework.TestCase.assertEquals;
|
||||
import static junit.framework.TestCase.assertFalse;
|
||||
import static junit.framework.TestCase.assertNull;
|
||||
@@ -36,13 +38,10 @@ import android.util.Xml;
|
||||
|
||||
import androidx.test.runner.AndroidJUnit4;
|
||||
|
||||
import com.android.internal.util.FastXmlSerializer;
|
||||
import com.android.server.UiServiceTestCase;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.xmlpull.v1.XmlPullParser;
|
||||
import org.xmlpull.v1.XmlSerializer;
|
||||
|
||||
import java.io.BufferedInputStream;
|
||||
import java.io.BufferedOutputStream;
|
||||
@@ -81,10 +80,12 @@ public class ZenModeConfigTest extends UiServiceTestCase {
|
||||
ZenModeConfig config = getMutedAllConfig();
|
||||
config.suppressedVisualEffects |= Policy.SUPPRESSED_EFFECT_BADGE;
|
||||
|
||||
// Explicitly allow conversations from priority senders to make sure that goes through
|
||||
ZenPolicy zenPolicy = new ZenPolicy.Builder()
|
||||
.allowAlarms(true)
|
||||
.allowReminders(true)
|
||||
.allowEvents(true)
|
||||
.allowConversations(CONVERSATION_SENDERS_IMPORTANT)
|
||||
.showLights(false)
|
||||
.showInAmbientDisplay(false)
|
||||
.build();
|
||||
@@ -93,11 +94,12 @@ public class ZenModeConfigTest extends UiServiceTestCase {
|
||||
int priorityCategories = originalPolicy.priorityCategories;
|
||||
int priorityCallSenders = originalPolicy.priorityCallSenders;
|
||||
int priorityMessageSenders = originalPolicy.priorityMessageSenders;
|
||||
int priorityConversationsSenders = originalPolicy.priorityConversationSenders;
|
||||
int priorityConversationsSenders = CONVERSATION_SENDERS_IMPORTANT;
|
||||
int suppressedVisualEffects = originalPolicy.suppressedVisualEffects;
|
||||
priorityCategories |= Policy.PRIORITY_CATEGORY_ALARMS;
|
||||
priorityCategories |= Policy.PRIORITY_CATEGORY_REMINDERS;
|
||||
priorityCategories |= Policy.PRIORITY_CATEGORY_EVENTS;
|
||||
priorityCategories |= Policy.PRIORITY_CATEGORY_CONVERSATIONS;
|
||||
suppressedVisualEffects |= Policy.SUPPRESSED_EFFECT_LIGHTS;
|
||||
suppressedVisualEffects |= Policy.SUPPRESSED_EFFECT_AMBIENT;
|
||||
|
||||
@@ -344,7 +346,7 @@ public class ZenModeConfigTest extends UiServiceTestCase {
|
||||
config.allowCallsFrom = ZenModeConfig.SOURCE_ANYONE;
|
||||
config.allowMessagesFrom = ZenModeConfig.SOURCE_ANYONE;
|
||||
config.allowConversations = true;
|
||||
config.allowConversationsFrom = ZenPolicy.CONVERSATION_SENDERS_IMPORTANT;
|
||||
config.allowConversationsFrom = CONVERSATION_SENDERS_IMPORTANT;
|
||||
|
||||
config.suppressedVisualEffects = 0;
|
||||
return config;
|
||||
|
||||
Reference in New Issue
Block a user