Merge "Write ZenPolicy conversation settings out to XML" into tm-dev am: 1a9c4a2a3d
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/17355880 Change-Id: If848fadb474148ad82fda2a1f47bd18e32685edb Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -777,6 +777,8 @@ public class ZenModeConfig implements Parcelable {
|
|||||||
final int calls = safeInt(parser, ALLOW_ATT_CALLS_FROM, ZenPolicy.PEOPLE_TYPE_UNSET);
|
final int calls = safeInt(parser, ALLOW_ATT_CALLS_FROM, ZenPolicy.PEOPLE_TYPE_UNSET);
|
||||||
final int messages = safeInt(parser, ALLOW_ATT_MESSAGES_FROM, ZenPolicy.PEOPLE_TYPE_UNSET);
|
final int messages = safeInt(parser, ALLOW_ATT_MESSAGES_FROM, ZenPolicy.PEOPLE_TYPE_UNSET);
|
||||||
final int repeatCallers = safeInt(parser, ALLOW_ATT_REPEAT_CALLERS, ZenPolicy.STATE_UNSET);
|
final int repeatCallers = safeInt(parser, ALLOW_ATT_REPEAT_CALLERS, ZenPolicy.STATE_UNSET);
|
||||||
|
final int conversations = safeInt(parser, ALLOW_ATT_CONV_FROM,
|
||||||
|
ZenPolicy.CONVERSATION_SENDERS_UNSET);
|
||||||
final int alarms = safeInt(parser, ALLOW_ATT_ALARMS, ZenPolicy.STATE_UNSET);
|
final int alarms = safeInt(parser, ALLOW_ATT_ALARMS, ZenPolicy.STATE_UNSET);
|
||||||
final int media = safeInt(parser, ALLOW_ATT_MEDIA, ZenPolicy.STATE_UNSET);
|
final int media = safeInt(parser, ALLOW_ATT_MEDIA, ZenPolicy.STATE_UNSET);
|
||||||
final int system = safeInt(parser, ALLOW_ATT_SYSTEM, ZenPolicy.STATE_UNSET);
|
final int system = safeInt(parser, ALLOW_ATT_SYSTEM, ZenPolicy.STATE_UNSET);
|
||||||
@@ -795,6 +797,10 @@ public class ZenModeConfig implements Parcelable {
|
|||||||
builder.allowRepeatCallers(repeatCallers == ZenPolicy.STATE_ALLOW);
|
builder.allowRepeatCallers(repeatCallers == ZenPolicy.STATE_ALLOW);
|
||||||
policySet = true;
|
policySet = true;
|
||||||
}
|
}
|
||||||
|
if (conversations != ZenPolicy.CONVERSATION_SENDERS_UNSET) {
|
||||||
|
builder.allowConversations(conversations);
|
||||||
|
policySet = true;
|
||||||
|
}
|
||||||
if (alarms != ZenPolicy.STATE_UNSET) {
|
if (alarms != ZenPolicy.STATE_UNSET) {
|
||||||
builder.allowAlarms(alarms == ZenPolicy.STATE_ALLOW);
|
builder.allowAlarms(alarms == ZenPolicy.STATE_ALLOW);
|
||||||
policySet = true;
|
policySet = true;
|
||||||
@@ -870,6 +876,7 @@ public class ZenModeConfig implements Parcelable {
|
|||||||
writeZenPolicyState(ALLOW_ATT_MESSAGES_FROM, policy.getPriorityMessageSenders(), out);
|
writeZenPolicyState(ALLOW_ATT_MESSAGES_FROM, policy.getPriorityMessageSenders(), out);
|
||||||
writeZenPolicyState(ALLOW_ATT_REPEAT_CALLERS, policy.getPriorityCategoryRepeatCallers(),
|
writeZenPolicyState(ALLOW_ATT_REPEAT_CALLERS, policy.getPriorityCategoryRepeatCallers(),
|
||||||
out);
|
out);
|
||||||
|
writeZenPolicyState(ALLOW_ATT_CONV_FROM, policy.getPriorityConversationSenders(), out);
|
||||||
writeZenPolicyState(ALLOW_ATT_ALARMS, policy.getPriorityCategoryAlarms(), out);
|
writeZenPolicyState(ALLOW_ATT_ALARMS, policy.getPriorityCategoryAlarms(), out);
|
||||||
writeZenPolicyState(ALLOW_ATT_MEDIA, policy.getPriorityCategoryMedia(), out);
|
writeZenPolicyState(ALLOW_ATT_MEDIA, policy.getPriorityCategoryMedia(), out);
|
||||||
writeZenPolicyState(ALLOW_ATT_SYSTEM, policy.getPriorityCategorySystem(), out);
|
writeZenPolicyState(ALLOW_ATT_SYSTEM, policy.getPriorityCategorySystem(), out);
|
||||||
@@ -894,6 +901,10 @@ public class ZenModeConfig implements Parcelable {
|
|||||||
if (val != ZenPolicy.PEOPLE_TYPE_UNSET) {
|
if (val != ZenPolicy.PEOPLE_TYPE_UNSET) {
|
||||||
out.attributeInt(null, attr, val);
|
out.attributeInt(null, attr, val);
|
||||||
}
|
}
|
||||||
|
} else if (Objects.equals(attr, ALLOW_ATT_CONV_FROM)) {
|
||||||
|
if (val != ZenPolicy.CONVERSATION_SENDERS_UNSET) {
|
||||||
|
out.attributeInt(null, attr, val);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
if (val != ZenPolicy.STATE_UNSET) {
|
if (val != ZenPolicy.STATE_UNSET) {
|
||||||
out.attributeInt(null, attr, val);
|
out.attributeInt(null, attr, val);
|
||||||
|
|||||||
@@ -498,11 +498,11 @@ public final class ZenPolicy implements Parcelable {
|
|||||||
mZenPolicy.mPriorityCategories.set(category, STATE_UNSET);
|
mZenPolicy.mPriorityCategories.set(category, STATE_UNSET);
|
||||||
|
|
||||||
if (category == PRIORITY_CATEGORY_MESSAGES) {
|
if (category == PRIORITY_CATEGORY_MESSAGES) {
|
||||||
mZenPolicy.mPriorityMessages = STATE_UNSET;
|
mZenPolicy.mPriorityMessages = PEOPLE_TYPE_UNSET;
|
||||||
} else if (category == PRIORITY_CATEGORY_CALLS) {
|
} else if (category == PRIORITY_CATEGORY_CALLS) {
|
||||||
mZenPolicy.mPriorityCalls = STATE_UNSET;
|
mZenPolicy.mPriorityCalls = PEOPLE_TYPE_UNSET;
|
||||||
} else if (category == PRIORITY_CATEGORY_CONVERSATIONS) {
|
} else if (category == PRIORITY_CATEGORY_CONVERSATIONS) {
|
||||||
mZenPolicy.mConversationSenders = STATE_UNSET;
|
mZenPolicy.mConversationSenders = CONVERSATION_SENDERS_UNSET;
|
||||||
}
|
}
|
||||||
|
|
||||||
return this;
|
return this;
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ import static android.service.notification.ZenPolicy.CONVERSATION_SENDERS_IMPORT
|
|||||||
|
|
||||||
import static junit.framework.TestCase.assertEquals;
|
import static junit.framework.TestCase.assertEquals;
|
||||||
import static junit.framework.TestCase.assertFalse;
|
import static junit.framework.TestCase.assertFalse;
|
||||||
|
import static junit.framework.TestCase.assertNotNull;
|
||||||
import static junit.framework.TestCase.assertNull;
|
import static junit.framework.TestCase.assertNull;
|
||||||
import static junit.framework.TestCase.assertTrue;
|
import static junit.framework.TestCase.assertTrue;
|
||||||
|
|
||||||
@@ -311,6 +312,92 @@ public class ZenModeConfigTest extends UiServiceTestCase {
|
|||||||
assertTrue(fromXml.isAutomaticActive());
|
assertTrue(fromXml.isAutomaticActive());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testZenPolicyXml_allUnset() throws Exception {
|
||||||
|
String tag = "tag";
|
||||||
|
|
||||||
|
ZenPolicy policy = new ZenPolicy.Builder().build();
|
||||||
|
|
||||||
|
TypedXmlSerializer out = Xml.newFastSerializer();
|
||||||
|
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
||||||
|
out.setOutput(new BufferedOutputStream(baos), "utf-8");
|
||||||
|
out.startDocument(null, true);
|
||||||
|
out.startTag(null, tag);
|
||||||
|
ZenModeConfig.writeZenPolicyXml(policy, out);
|
||||||
|
out.endTag(null, tag);
|
||||||
|
out.endDocument();
|
||||||
|
|
||||||
|
TypedXmlPullParser parser = Xml.newFastPullParser();
|
||||||
|
parser.setInput(new BufferedInputStream(
|
||||||
|
new ByteArrayInputStream(baos.toByteArray())), null);
|
||||||
|
parser.nextTag();
|
||||||
|
ZenPolicy fromXml = ZenModeConfig.readZenPolicyXml(parser);
|
||||||
|
|
||||||
|
// nothing was set, so we should have nothing from the parser
|
||||||
|
assertNull(fromXml);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testZenPolicyXml() throws Exception {
|
||||||
|
String tag = "tag";
|
||||||
|
|
||||||
|
ZenPolicy policy = new ZenPolicy.Builder()
|
||||||
|
.allowCalls(ZenPolicy.PEOPLE_TYPE_CONTACTS)
|
||||||
|
.allowMessages(ZenPolicy.PEOPLE_TYPE_NONE)
|
||||||
|
.allowConversations(ZenPolicy.CONVERSATION_SENDERS_IMPORTANT)
|
||||||
|
.allowRepeatCallers(true)
|
||||||
|
.allowAlarms(true)
|
||||||
|
.allowMedia(false)
|
||||||
|
.allowSystem(true)
|
||||||
|
.allowReminders(false)
|
||||||
|
.allowEvents(true)
|
||||||
|
.hideAllVisualEffects()
|
||||||
|
.showVisualEffect(ZenPolicy.VISUAL_EFFECT_AMBIENT, true)
|
||||||
|
.build();
|
||||||
|
|
||||||
|
TypedXmlSerializer out = Xml.newFastSerializer();
|
||||||
|
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
||||||
|
out.setOutput(new BufferedOutputStream(baos), "utf-8");
|
||||||
|
out.startDocument(null, true);
|
||||||
|
out.startTag(null, tag);
|
||||||
|
ZenModeConfig.writeZenPolicyXml(policy, out);
|
||||||
|
out.endTag(null, tag);
|
||||||
|
out.endDocument();
|
||||||
|
|
||||||
|
TypedXmlPullParser parser = Xml.newFastPullParser();
|
||||||
|
parser.setInput(new BufferedInputStream(
|
||||||
|
new ByteArrayInputStream(baos.toByteArray())), null);
|
||||||
|
parser.nextTag();
|
||||||
|
ZenPolicy fromXml = ZenModeConfig.readZenPolicyXml(parser);
|
||||||
|
|
||||||
|
assertNotNull(fromXml);
|
||||||
|
assertEquals(policy.getPriorityCategoryCalls(), fromXml.getPriorityCategoryCalls());
|
||||||
|
assertEquals(policy.getPriorityCallSenders(), fromXml.getPriorityCallSenders());
|
||||||
|
assertEquals(policy.getPriorityCategoryMessages(), fromXml.getPriorityCategoryMessages());
|
||||||
|
assertEquals(policy.getPriorityMessageSenders(), fromXml.getPriorityMessageSenders());
|
||||||
|
assertEquals(policy.getPriorityCategoryConversations(),
|
||||||
|
fromXml.getPriorityCategoryConversations());
|
||||||
|
assertEquals(policy.getPriorityConversationSenders(),
|
||||||
|
fromXml.getPriorityConversationSenders());
|
||||||
|
assertEquals(policy.getPriorityCategoryRepeatCallers(),
|
||||||
|
fromXml.getPriorityCategoryRepeatCallers());
|
||||||
|
assertEquals(policy.getPriorityCategoryAlarms(), fromXml.getPriorityCategoryAlarms());
|
||||||
|
assertEquals(policy.getPriorityCategoryMedia(), fromXml.getPriorityCategoryMedia());
|
||||||
|
assertEquals(policy.getPriorityCategorySystem(), fromXml.getPriorityCategorySystem());
|
||||||
|
assertEquals(policy.getPriorityCategoryReminders(), fromXml.getPriorityCategoryReminders());
|
||||||
|
assertEquals(policy.getPriorityCategoryEvents(), fromXml.getPriorityCategoryEvents());
|
||||||
|
|
||||||
|
assertEquals(policy.getVisualEffectFullScreenIntent(),
|
||||||
|
fromXml.getVisualEffectFullScreenIntent());
|
||||||
|
assertEquals(policy.getVisualEffectLights(), fromXml.getVisualEffectLights());
|
||||||
|
assertEquals(policy.getVisualEffectPeek(), fromXml.getVisualEffectPeek());
|
||||||
|
assertEquals(policy.getVisualEffectStatusBar(), fromXml.getVisualEffectStatusBar());
|
||||||
|
assertEquals(policy.getVisualEffectBadge(), fromXml.getVisualEffectBadge());
|
||||||
|
assertEquals(policy.getVisualEffectAmbient(), fromXml.getVisualEffectAmbient());
|
||||||
|
assertEquals(policy.getVisualEffectNotificationList(),
|
||||||
|
fromXml.getVisualEffectNotificationList());
|
||||||
|
}
|
||||||
|
|
||||||
private ZenModeConfig getMutedRingerConfig() {
|
private ZenModeConfig getMutedRingerConfig() {
|
||||||
ZenModeConfig config = new ZenModeConfig();
|
ZenModeConfig config = new ZenModeConfig();
|
||||||
// Allow alarms, media
|
// Allow alarms, media
|
||||||
|
|||||||
Reference in New Issue
Block a user