OSDN Git Service

Zen: tweak audience interruption logic.
authorJohn Spurlock <jspurlock@google.com>
Fri, 15 Aug 2014 18:05:47 +0000 (14:05 -0400)
committerJohn Spurlock <jspurlock@google.com>
Fri, 15 Aug 2014 18:05:47 +0000 (14:05 -0400)
Only check audience for calls & messages.

Bug:17061146
Change-Id: I7f0176a7184c725fef393784fe8ccb0eb7f49ff7

services/core/java/com/android/server/notification/ZenModeHelper.java

index b7b5f98..758f334 100644 (file)
@@ -169,24 +169,19 @@ public class ZenModeHelper {
                     return false;
                 }
             }
-            // audience has veto power over all following rules
-            if (!audienceMatches(record)) {
-                ZenLog.traceIntercepted(record, "!audienceMatches");
-                return true;
-            }
             if (isCall(record)) {
                 if (!mConfig.allowCalls) {
                     ZenLog.traceIntercepted(record, "!allowCalls");
                     return true;
                 }
-                return false;
+                return shouldInterceptAudience(record);
             }
             if (isMessage(record)) {
                 if (!mConfig.allowMessages) {
                     ZenLog.traceIntercepted(record, "!allowMessages");
                     return true;
                 }
-                return false;
+                return shouldInterceptAudience(record);
             }
             ZenLog.traceIntercepted(record, "!allowed");
             return true;
@@ -194,6 +189,14 @@ public class ZenModeHelper {
         return false;
     }
 
+    private boolean shouldInterceptAudience(NotificationRecord record) {
+        if (!audienceMatches(record)) {
+            ZenLog.traceIntercepted(record, "!audienceMatches");
+            return true;
+        }
+        return false;
+    }
+
     public int getZenMode() {
         return mZenMode;
     }