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

Commit af84e073 authored by John Spurlock's avatar John Spurlock Committed by Android (Google) Code Review
Browse files

Merge "Audio Policy: Clear calling identity for all paths setting ringer mode." into lmp-mr1-dev

parents 45c6ae56 af88a191
Loading
Loading
Loading
Loading
+27 −32
Original line number Diff line number Diff line
@@ -1841,22 +1841,12 @@ public class AudioService extends IAudioService.Stub {
    }

    public void setRingerModeExternal(int ringerMode, String caller) {
        final long identity = Binder.clearCallingIdentity();
        try {
        setRingerMode(ringerMode, caller, true /*external*/);
        } finally {
            Binder.restoreCallingIdentity(identity);
        }
    }

    public void setRingerModeInternal(int ringerMode, String caller) {
        enforceSelfOrSystemUI("setRingerModeInternal");
        final long identity = Binder.clearCallingIdentity();
        try {
        setRingerMode(ringerMode, caller, false /*external*/);
        } finally {
            Binder.restoreCallingIdentity(identity);
        }
    }

    private void setRingerMode(int ringerMode, String caller, boolean external) {
@@ -1870,6 +1860,8 @@ public class AudioService extends IAudioService.Stub {
        if ((ringerMode == AudioManager.RINGER_MODE_VIBRATE) && !mHasVibrator) {
            ringerMode = AudioManager.RINGER_MODE_SILENT;
        }
        final long identity = Binder.clearCallingIdentity();
        try {
            synchronized (mSettingsLock) {
                final int ringerModeInternal = getRingerModeInternal();
                final int ringerModeExternal = getRingerModeExternal();
@@ -1893,6 +1885,9 @@ public class AudioService extends IAudioService.Stub {
                    setRingerModeExt(ringerMode);
                }
            }
        } finally {
            Binder.restoreCallingIdentity(identity);
        }
    }

    private void setRingerModeExt(int ringerMode) {