diff options
author | John Spurlock <jspurlock@google.com> | 2014-07-27 15:38:37 +0000 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2014-07-27 15:38:37 +0000 |
commit | 1b67448fcf96b668ba93012c734de9ea45295d52 (patch) | |
tree | 843f4641c2f9175a2e0fc00c9c92a58c49e96029 /services | |
parent | 39542d116cc7d1b3d1d76bbb6111b8cb4d5246e4 (diff) | |
parent | 6d37b59c6aee279d88a8bcd25c17d2dfa0d50353 (diff) | |
download | frameworks_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.java | 7 | ||||
-rw-r--r-- | services/core/java/com/android/server/notification/ZenModeHelper.java | 31 |
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) { |