From cdaa0b99eb81998c6b3f94aedb09f0e28dedca10 Mon Sep 17 00:00:00 2001 From: Julia Reynolds Date: Thu, 17 Mar 2016 13:26:21 -0400 Subject: [PATCH] Relax policy access restriction for adjust volume changes. Otherwise users can't enter DND while using volume buttons in most apps. Bug: 27711587 Change-Id: Idb4976680d9bb88206928a7b623f17d07183ea28 --- media/java/android/media/AudioManager.java | 3 --- .../java/com/android/server/audio/AudioService.java | 10 ++-------- 2 files changed, 2 insertions(+), 11 deletions(-) diff --git a/media/java/android/media/AudioManager.java b/media/java/android/media/AudioManager.java index d179171a320e6..3c42161643287 100644 --- a/media/java/android/media/AudioManager.java +++ b/media/java/android/media/AudioManager.java @@ -1076,9 +1076,6 @@ public class AudioManager { *

* This method has no effect if the device implements a fixed volume policy * as indicated by {@link #isVolumeFixed()}. - *

From N onward, stream mute changes that would toggle Do Not Disturb are not allowed unless - * the app has been granted Do Not Disturb Access. - * See {@link NotificationManager#isNotificationPolicyAccessGranted()}. *

* This method was deprecated in API level 22. Prior to API level 22 this * method had significantly different behavior and should be used carefully. diff --git a/services/core/java/com/android/server/audio/AudioService.java b/services/core/java/com/android/server/audio/AudioService.java index 532022112c6db..b4df689b14a84 100644 --- a/services/core/java/com/android/server/audio/AudioService.java +++ b/services/core/java/com/android/server/audio/AudioService.java @@ -1290,7 +1290,7 @@ public class AudioService extends IAudioService.Stub { // Check if the ringer mode handles this adjustment. If it does we don't // need to adjust the volume further. final int result = checkForRingerModeChange(aliasIndex, direction, step, - streamState.mIsMuted, caller); + streamState.mIsMuted); adjustVolume = (result & FLAG_ADJUST_VOLUME) != 0; // If suppressing a volume adjustment in silent mode, display the UI hint if ((result & AudioManager.FLAG_SHOW_SILENT_HINT) != 0) { @@ -3361,8 +3361,7 @@ public class AudioService extends IAudioService.Stub { * adjusting volume. If so, this will set the proper ringer mode and volume * indices on the stream states. */ - private int checkForRingerModeChange(int oldIndex, int direction, int step, boolean isMuted, - String caller) { + private int checkForRingerModeChange(int oldIndex, int direction, int step, boolean isMuted) { final boolean isTv = mPlatformType == AudioSystem.PLATFORM_TELEVISION; int result = FLAG_ADJUST_VOLUME; int ringerMode = getRingerModeInternal(); @@ -3451,11 +3450,6 @@ public class AudioService extends IAudioService.Stub { break; } - if (isAndroidNPlus(caller) && wouldToggleZenMode(ringerMode) - && !mNm.isNotificationPolicyAccessGrantedForPackage(caller)) { - throw new SecurityException("Not allowed to change Do Not Disturb state"); - } - setRingerMode(ringerMode, TAG + ".checkForRingerModeChange", false /*external*/); mPrevVolDirection = direction;