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

Commit 56f59132 authored by Eric Laurent's avatar Eric Laurent Committed by The Android Automerger
Browse files

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
parent bd850641
Loading
Loading
Loading
Loading
+29 −0
Original line number Diff line number Diff line
@@ -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;
        }