summaryrefslogtreecommitdiffstats
path: root/services
diff options
context:
space:
mode:
authorJohn Spurlock <jspurlock@google.com>2014-07-27 15:38:37 +0000
committerAndroid Git Automerger <android-git-automerger@android.com>2014-07-27 15:38:37 +0000
commit1b67448fcf96b668ba93012c734de9ea45295d52 (patch)
tree843f4641c2f9175a2e0fc00c9c92a58c49e96029 /services
parent39542d116cc7d1b3d1d76bbb6111b8cb4d5246e4 (diff)
parent6d37b59c6aee279d88a8bcd25c17d2dfa0d50353 (diff)
downloadframeworks_base-1b67448fcf96b668ba93012c734de9ea45295d52.zip
frameworks_base-1b67448fcf96b668ba93012c734de9ea45295d52.tar.gz
frameworks_base-1b67448fcf96b668ba93012c734de9ea45295d52.tar.bz2
am d1518fe6: am 592226f6: am e6de13b1: Merge "Zen: Remove hardcoded package name filters." into lmp-dev
* commit 'd1518fe697c71c321a550ce847772bdcc0014177': Zen: Remove hardcoded package name filters.
Diffstat (limited to 'services')
-rw-r--r--services/core/java/com/android/server/notification/ZenLog.java7
-rw-r--r--services/core/java/com/android/server/notification/ZenModeHelper.java31
2 files changed, 18 insertions, 20 deletions
diff --git a/services/core/java/com/android/server/notification/ZenLog.java b/services/core/java/com/android/server/notification/ZenLog.java
index 81f64b1..3069ad9 100644
--- a/services/core/java/com/android/server/notification/ZenLog.java
+++ b/services/core/java/com/android/server/notification/ZenLog.java
@@ -30,6 +30,8 @@ import java.io.PrintWriter;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date;
+import java.util.HashSet;
+import java.util.Set;
public class ZenLog {
private static final String TAG = "ZenLog";
@@ -41,6 +43,10 @@ public class ZenLog {
private static final String[] MSGS = new String[SIZE];
private static final SimpleDateFormat FORMAT = new SimpleDateFormat("MM-dd HH:mm:ss.SSS");
+ private static final Set<String> SYSTEM_PACKAGES = new HashSet<String>(Arrays.asList(
+ "android",
+ "com.android.systemui"
+ ));
private static final int TYPE_INTERCEPTED = 1;
private static final int TYPE_ALLOW_DISABLE = 2;
@@ -61,6 +67,7 @@ public class ZenLog {
}
public static void traceAllowDisable(String pkg, boolean allowDisable, String reason) {
+ if (SYSTEM_PACKAGES.contains(pkg)) return;
append(TYPE_ALLOW_DISABLE, allowDisable + "," + pkg + "," + reason);
}
diff --git a/services/core/java/com/android/server/notification/ZenModeHelper.java b/services/core/java/com/android/server/notification/ZenModeHelper.java
index a896550..d63e40b 100644
--- a/services/core/java/com/android/server/notification/ZenModeHelper.java
+++ b/services/core/java/com/android/server/notification/ZenModeHelper.java
@@ -38,6 +38,7 @@ import android.net.Uri;
import android.os.Handler;
import android.os.IBinder;
import android.provider.Settings.Global;
+import android.provider.Settings.Secure;
import android.service.notification.ZenModeConfig;
import android.telecomm.TelecommManager;
import android.util.Slog;
@@ -53,11 +54,9 @@ import org.xmlpull.v1.XmlSerializer;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
-import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
-import java.util.HashSet;
-import java.util.Set;
+import java.util.Objects;
/**
* NotificationManagerService helper for functionality related to zen mode.
@@ -84,17 +83,6 @@ public class ZenModeHelper {
private AudioManager mAudioManager;
private int mPreviousRingerMode = -1;
- // temporary, until we update apps to provide metadata
- private static final Set<String> MESSAGE_PACKAGES = new HashSet<String>(Arrays.asList(
- "com.google.android.talk",
- "com.android.mms",
- "com.android.example.notificationshowcase"
- ));
- private static final Set<String> SYSTEM_PACKAGES = new HashSet<String>(Arrays.asList(
- "android",
- "com.android.systemui"
- ));
-
public ZenModeHelper(Context context, Handler handler) {
mContext = context;
mHandler = handler;
@@ -249,9 +237,7 @@ public class ZenModeHelper {
allowDisable = mZenMode == Global.ZEN_MODE_OFF || mConfig.allowCalls;
reason = mZenMode == Global.ZEN_MODE_OFF ? "zenOff" : "allowCalls";
}
- if (!SYSTEM_PACKAGES.contains(pkg)) {
- ZenLog.traceAllowDisable(pkg, allowDisable, reason);
- }
+ ZenLog.traceAllowDisable(pkg, allowDisable, reason);
return allowDisable;
}
@@ -305,8 +291,7 @@ public class ZenModeHelper {
}
private boolean isSystem(NotificationRecord record) {
- return SYSTEM_PACKAGES.contains(record.sbn.getPackageName())
- && record.isCategory(Notification.CATEGORY_SYSTEM);
+ return record.isCategory(Notification.CATEGORY_SYSTEM);
}
private boolean isAlarm(NotificationRecord record) {
@@ -330,8 +315,14 @@ public class ZenModeHelper {
&& pkg.equals(mDefaultPhoneApp.getPackageName());
}
+ private boolean isDefaultMessagingApp(NotificationRecord record) {
+ final String defaultApp = Secure.getStringForUser(mContext.getContentResolver(),
+ Secure.SMS_DEFAULT_APPLICATION, record.getUserId());
+ return Objects.equals(defaultApp, record.sbn.getPackageName());
+ }
+
private boolean isMessage(NotificationRecord record) {
- return MESSAGE_PACKAGES.contains(record.sbn.getPackageName());
+ return record.isCategory(Notification.CATEGORY_MESSAGE) || isDefaultMessagingApp(record);
}
private boolean audienceMatches(NotificationRecord record) {