From c909e1b2dfa2e47b786d96818f70f6308c5a78be Mon Sep 17 00:00:00 2001 From: John Spurlock Date: Wed, 1 Oct 2014 09:19:43 -0400 Subject: [PATCH] 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 --- .../android/server/notification/ZenModeHelper.java | 68 +++++++++++----------- 1 file changed, 35 insertions(+), 33 deletions(-) diff --git a/services/core/java/com/android/server/notification/ZenModeHelper.java b/services/core/java/com/android/server/notification/ZenModeHelper.java index 557a44e0cb7b..e6007bf704f8 100644 --- a/services/core/java/com/android/server/notification/ZenModeHelper.java +++ b/services/core/java/com/android/server/notification/ZenModeHelper.java @@ -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) { -- 2.11.0