diff options
| author | 2016-07-07 11:35:13 -0700 | |
|---|---|---|
| committer | 2016-07-07 18:47:03 +0000 | |
| commit | 1913e5acc42db2000a5a9cdcbc2b7ddd1cb8f358 (patch) | |
| tree | 21bd956af7dd8d1227b00f90ae9fb26b0c4bda66 | |
| parent | 557b747fb48a452cd15a51c84cb43535f63a3d79 (diff) | |
SoundPool: fix enforced camera shutter sound
Make sure that camera shutter sound is played in
total silence DND mode when enforced by country
regulation.
Bug: 29973005
Change-Id: I208f7ae5b07777eac48597f68feae6358999b2c3
| -rw-r--r-- | media/java/android/media/SoundPool.java | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/media/java/android/media/SoundPool.java b/media/java/android/media/SoundPool.java index 3164930aa749..5ede1d5f7c91 100644 --- a/media/java/android/media/SoundPool.java +++ b/media/java/android/media/SoundPool.java @@ -133,6 +133,8 @@ public class SoundPool { private final IAppOpsService mAppOps; private final IAppOpsCallback mAppOpsCallback; + private static IAudioService sService; + /** * Constructor. Constructs a SoundPool object with the following * characteristics: @@ -492,7 +494,34 @@ public class SoundPool { } } + private static IAudioService getService() + { + if (sService != null) { + return sService; + } + IBinder b = ServiceManager.getService(Context.AUDIO_SERVICE); + sService = IAudioService.Stub.asInterface(b); + return sService; + } + private boolean isRestricted() { + IAudioService service = getService(); + boolean cameraSoundForced = false; + + try { + cameraSoundForced = service.isCameraSoundForced(); + } catch (RemoteException e) { + Log.e(TAG, "Cannot access AudioService in isRestricted()"); + } + + if (cameraSoundForced && + ((mAttributes.getAllFlags() & AudioAttributes.FLAG_AUDIBILITY_ENFORCED) != 0) +// FIXME: should also check usage when set properly by camera app +// && (mAttributes.getUsage() == AudioAttributes.USAGE_ASSISTANCE_SONIFICATION) + ) { + return false; + } + if ((mAttributes.getAllFlags() & AudioAttributes.FLAG_BYPASS_INTERRUPTION_POLICY) != 0) { return false; } |