OSDN Git Service

Relax policy access restriction for adjust volume changes.
authorJulia Reynolds <juliacr@google.com>
Thu, 17 Mar 2016 17:26:21 +0000 (13:26 -0400)
committerJulia Reynolds <juliacr@google.com>
Thu, 17 Mar 2016 17:28:31 +0000 (13:28 -0400)
Otherwise users can't enter DND while using volume buttons in most
apps.

Bug: 27711587
Change-Id: Idb4976680d9bb88206928a7b623f17d07183ea28

media/java/android/media/AudioManager.java
services/core/java/com/android/server/audio/AudioService.java

index d179171..3c42161 100644 (file)
@@ -1076,9 +1076,6 @@ public class AudioManager {
      * <p>
      * This method has no effect if the device implements a fixed volume policy
      * as indicated by {@link #isVolumeFixed()}.
-     * <p>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()}.
      * <p>
      * This method was deprecated in API level 22. Prior to API level 22 this
      * method had significantly different behavior and should be used carefully.
index 5320221..b4df689 100644 (file)
@@ -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;