Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 56f4dca4 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Pre-P cannot change alarms/media dnd policy"

parents 4ab3a172 98ef61b5
Loading
Loading
Loading
Loading
+11 −7
Original line number Diff line number Diff line
@@ -3021,9 +3021,9 @@ public class NotificationManagerService extends SystemService {

        /**
         * Sets the notification policy.  Apps that target API levels below
         * {@link android.os.Build.VERSION_CODES#P} cannot make DND silence
         * {@link Policy#PRIORITY_CATEGORY_ALARMS} or
         * {@link Policy#PRIORITY_CATEGORY_MEDIA_SYSTEM_OTHER}
         * {@link android.os.Build.VERSION_CODES#P} cannot change user-designated values to
         * allow or disallow {@link Policy#PRIORITY_CATEGORY_ALARMS} and
         * {@link Policy#PRIORITY_CATEGORY_MEDIA_SYSTEM_OTHER} from bypassing dnd
         */
        @Override
        public void setNotificationPolicy(String pkg, Policy policy) {
@@ -3036,10 +3036,14 @@ public class NotificationManagerService extends SystemService {
                if (applicationInfo.targetSdkVersion <= Build.VERSION_CODES.O_MR1) {
                    Policy currPolicy = mZenModeHelper.getNotificationPolicy();

                    int priorityCategories = policy.priorityCategories
                            | (currPolicy.priorityCategories & Policy.PRIORITY_CATEGORY_ALARMS)
                            | (currPolicy.priorityCategories &
                            Policy.PRIORITY_CATEGORY_MEDIA_SYSTEM_OTHER);
                    int priorityCategories = policy.priorityCategories;
                    // ignore alarm and media values from new policy
                    priorityCategories &= ~Policy.PRIORITY_CATEGORY_ALARMS;
                    priorityCategories &= ~Policy.PRIORITY_CATEGORY_MEDIA_SYSTEM_OTHER;
                    // use user-designated values
                    priorityCategories |= currPolicy.PRIORITY_CATEGORY_ALARMS;
                    priorityCategories |= currPolicy.PRIORITY_CATEGORY_MEDIA_SYSTEM_OTHER;

                    policy = new Policy(priorityCategories,
                            policy.priorityCallSenders, policy.priorityMessageSenders,
                            policy.suppressedVisualEffects);