From 6ac5f8df62a4b6d87cf32797d2886efab8e28226 Mon Sep 17 00:00:00 2001 From: John Spurlock Date: Fri, 18 Jul 2014 11:27:54 -0400 Subject: [PATCH] Allow user-prioritized packages through in priority mode. Bug:16396715 Change-Id: I115d717e5c25500407d4f7876f070a1497fb2887 --- .../android/server/notification/NotificationRecord.java | 2 +- .../server/notification/PackagePriorityExtractor.java | 1 - .../core/java/com/android/server/notification/ZenLog.java | 7 +++++++ .../com/android/server/notification/ZenModeHelper.java | 7 +++++++ 4 files changed, 15 insertions(+), 2 deletions(-) diff --git a/services/core/java/com/android/server/notification/NotificationRecord.java b/services/core/java/com/android/server/notification/NotificationRecord.java index fefa6f606f671..0186b8c38e23e 100644 --- a/services/core/java/com/android/server/notification/NotificationRecord.java +++ b/services/core/java/com/android/server/notification/NotificationRecord.java @@ -211,7 +211,7 @@ public final class NotificationRecord { } public void setPackagePriority(int packagePriority) { - mPackagePriority = packagePriority; + mPackagePriority = packagePriority; } public int getPackagePriority() { diff --git a/services/core/java/com/android/server/notification/PackagePriorityExtractor.java b/services/core/java/com/android/server/notification/PackagePriorityExtractor.java index 9cdb3e1f03afc..a13e54abbe218 100644 --- a/services/core/java/com/android/server/notification/PackagePriorityExtractor.java +++ b/services/core/java/com/android/server/notification/PackagePriorityExtractor.java @@ -15,7 +15,6 @@ */ package com.android.server.notification; -import android.app.Notification; import android.content.Context; import android.util.Slog; diff --git a/services/core/java/com/android/server/notification/ZenLog.java b/services/core/java/com/android/server/notification/ZenLog.java index 64efa676ae438..b22ed2dfe1e5a 100644 --- a/services/core/java/com/android/server/notification/ZenLog.java +++ b/services/core/java/com/android/server/notification/ZenLog.java @@ -58,6 +58,7 @@ public class ZenLog { private static final int TYPE_UNSUBSCRIBE = 8; private static final int TYPE_CONFIG = 9; private static final int TYPE_FOLLOW_RINGER_MODE = 10; + private static final int TYPE_NOT_INTERCEPTED = 11; private static int sNext; private static int sSize; @@ -67,6 +68,11 @@ public class ZenLog { append(TYPE_INTERCEPTED, record.getKey() + "," + reason); } + public static void traceNotIntercepted(NotificationRecord record, String reason) { + if (record != null && record.isUpdate) return; // already logged + append(TYPE_NOT_INTERCEPTED, record.getKey() + "," + reason); + } + public static void traceAllowDisable(String pkg, boolean allowDisable, String reason) { if (SYSTEM_PACKAGES.contains(pkg)) return; append(TYPE_ALLOW_DISABLE, allowDisable + "," + pkg + "," + reason); @@ -122,6 +128,7 @@ public class ZenLog { case TYPE_UNSUBSCRIBE: return "unsubscribe"; case TYPE_CONFIG: return "config"; case TYPE_FOLLOW_RINGER_MODE: return "follow_ringer_mode"; + case TYPE_NOT_INTERCEPTED: return "not_intercepted"; default: return "unknown"; } } diff --git a/services/core/java/com/android/server/notification/ZenModeHelper.java b/services/core/java/com/android/server/notification/ZenModeHelper.java index 6b5521397adad..9f97583f64876 100644 --- a/services/core/java/com/android/server/notification/ZenModeHelper.java +++ b/services/core/java/com/android/server/notification/ZenModeHelper.java @@ -137,6 +137,13 @@ public class ZenModeHelper { } return false; } + // allow user-prioritized packages through in priority mode + if (mZenMode == Global.ZEN_MODE_IMPORTANT_INTERRUPTIONS) { + if (record.getPackagePriority() == Notification.PRIORITY_MAX) { + ZenLog.traceNotIntercepted(record, "priorityApp"); + return false; + } + } // audience has veto power over all following rules if (!audienceMatches(record)) { ZenLog.traceIntercepted(record, "!audienceMatches");