diff options
author | John Spurlock <jspurlock@google.com> | 2014-10-01 09:19:43 -0400 |
---|---|---|
committer | John Spurlock <jspurlock@google.com> | 2014-10-01 11:17:43 -0400 |
commit | c909e1b2dfa2e47b786d96818f70f6308c5a78be (patch) | |
tree | 9a4312fd2d6e3bd69ab2ed8f98f7faa194f9d6f2 | |
parent | 7dc7f676d699c739128dcc7855cbc0dacddaaa57 (diff) | |
download | frameworks_base-c909e1b2dfa2e47b786d96818f70f6308c5a78be.zip frameworks_base-c909e1b2dfa2e47b786d96818f70f6308c5a78be.tar.gz frameworks_base-c909e1b2dfa2e47b786d96818f70f6308c5a78be.tar.bz2 |
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
-rw-r--r-- | services/core/java/com/android/server/notification/ZenModeHelper.java | 68 |
1 files 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 557a44e..e6007bf 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) { |