Zen: Fix new event category check.

Allow events through if configured, and use a switch
for separating mode-specific logic.

Bug:17580878
Change-Id: Id7b5d8b50173015d6a78568ed0a90e0bccf98549
This commit is contained in:
John Spurlock
2014-10-01 09:19:43 -04:00
parent 7dc7f676d6
commit c909e1b2df

View File

@@ -150,48 +150,50 @@ public class ZenModeHelper {
}
public boolean shouldIntercept(NotificationRecord record) {
if (mZenMode != Global.ZEN_MODE_OFF) {
if (isSystem(record)) {
return false;
}
if (isAlarm(record)) {
if (mZenMode == Global.ZEN_MODE_NO_INTERRUPTIONS) {
ZenLog.traceIntercepted(record, "alarm");
return true;
if (isSystem(record)) {
return false;
}
switch (mZenMode) {
case Global.ZEN_MODE_NO_INTERRUPTIONS:
// #notevenalarms
ZenLog.traceIntercepted(record, "none");
return true;
case Global.ZEN_MODE_IMPORTANT_INTERRUPTIONS:
if (isAlarm(record)) {
// Alarms are always priority
return false;
}
return false;
}
// allow user-prioritized packages through in priority mode
if (mZenMode == Global.ZEN_MODE_IMPORTANT_INTERRUPTIONS) {
// allow user-prioritized packages through in priority mode
if (record.getPackagePriority() == Notification.PRIORITY_MAX) {
ZenLog.traceNotIntercepted(record, "priorityApp");
return false;
}
}
if (isCall(record)) {
if (!mConfig.allowCalls) {
ZenLog.traceIntercepted(record, "!allowCalls");
return true;
if (isCall(record)) {
if (!mConfig.allowCalls) {
ZenLog.traceIntercepted(record, "!allowCalls");
return true;
}
return shouldInterceptAudience(record);
}
return shouldInterceptAudience(record);
}
if (isMessage(record)) {
if (!mConfig.allowMessages) {
ZenLog.traceIntercepted(record, "!allowMessages");
return true;
if (isMessage(record)) {
if (!mConfig.allowMessages) {
ZenLog.traceIntercepted(record, "!allowMessages");
return true;
}
return shouldInterceptAudience(record);
}
return shouldInterceptAudience(record);
}
if (isEvent(record)) {
if (!mConfig.allowEvents) {
ZenLog.traceIntercepted(record, "!allowEvents");
return true;
if (isEvent(record)) {
if (!mConfig.allowEvents) {
ZenLog.traceIntercepted(record, "!allowEvents");
return true;
}
return false;
}
}
ZenLog.traceIntercepted(record, "!allowed");
return true;
ZenLog.traceIntercepted(record, "!priority");
return true;
default:
return false;
}
return false;
}
private boolean shouldInterceptAudience(NotificationRecord record) {