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

Commit 3d4aec1b authored by John Spurlock's avatar John Spurlock Committed by Android Git Automerger
Browse files

am b2344c81: Merge "Leave zen when apps set ringer-mode = non-silent...

am b2344c81: Merge "Leave zen when apps set ringer-mode = non-silent (normal/vibrate)." into lmp-dev

* commit 'b2344c81':
  Leave zen when apps set ringer-mode = non-silent (normal/vibrate).
parents e8a700e9 b2344c81
Loading
Loading
Loading
Loading
+10 −1
Original line number Diff line number Diff line
@@ -982,12 +982,21 @@ public class AudioManager {
     * @see #isVolumeFixed()
     */
    public void setRingerMode(int ringerMode) {
        setRingerMode(ringerMode, true /*checkZen*/);
    }

    /**
     * @see #setRingerMode(int)
     * @param checkZen  Update zen mode if necessary to compensate.
     * @hide
     */
    public void setRingerMode(int ringerMode, boolean checkZen) {
        if (!isValidRingerMode(ringerMode)) {
            return;
        }
        IAudioService service = getService();
        try {
            service.setRingerMode(ringerMode);
            service.setRingerMode(ringerMode, checkZen);
        } catch (RemoteException e) {
            Log.e(TAG, "Dead object in setRingerMode", e);
        }
+20 −3
Original line number Diff line number Diff line
@@ -66,6 +66,7 @@ import android.os.SystemProperties;
import android.os.UserHandle;
import android.os.Vibrator;
import android.provider.Settings;
import android.provider.Settings.Global;
import android.provider.Settings.System;
import android.telecom.TelecomManager;
import android.text.TextUtils;
@@ -1175,7 +1176,7 @@ public class AudioService extends IAudioService.Stub {
            } else {
                newRingerMode = AudioManager.RINGER_MODE_NORMAL;
            }
            setRingerMode(newRingerMode);
            setRingerMode(newRingerMode, false /*checkZen*/);
        }
    }

@@ -1738,7 +1739,7 @@ public class AudioService extends IAudioService.Stub {
    }

    /** @see AudioManager#setRingerMode(int) */
    public void setRingerMode(int ringerMode) {
    public void setRingerMode(int ringerMode, boolean checkZen) {
        if (mUseFixedVolume || isPlatformTelevision()) {
            return;
        }
@@ -1746,6 +1747,9 @@ public class AudioService extends IAudioService.Stub {
        if ((ringerMode == AudioManager.RINGER_MODE_VIBRATE) && !mHasVibrator) {
            ringerMode = AudioManager.RINGER_MODE_SILENT;
        }
        if (checkZen) {
            checkZen(ringerMode);
        }
        if (ringerMode != getRingerMode()) {
            setRingerModeInt(ringerMode, true);
            // Send sticky broadcast
@@ -1753,6 +1757,19 @@ public class AudioService extends IAudioService.Stub {
        }
    }

    private void checkZen(int ringerMode) {
        // leave zen when callers set ringer-mode = normal or vibrate
        final int zen = Global.getInt(mContentResolver, Global.ZEN_MODE, Global.ZEN_MODE_OFF);
        if (ringerMode != AudioManager.RINGER_MODE_SILENT && zen != Global.ZEN_MODE_OFF) {
            final long ident = Binder.clearCallingIdentity();
            try {
                Global.putInt(mContentResolver, Global.ZEN_MODE, Global.ZEN_MODE_OFF);
            } finally {
                Binder.restoreCallingIdentity(ident);
            }
        }
    }

    private void setRingerModeInt(int ringerMode, boolean persist) {
        synchronized(mSettingsLock) {
            mRingerMode = ringerMode;
@@ -2993,7 +3010,7 @@ public class AudioService extends IAudioService.Stub {
            break;
        }

        setRingerMode(ringerMode);
        setRingerMode(ringerMode, false /*checkZen*/);

        mPrevVolDirection = direction;

+1 −1
Original line number Diff line number Diff line
@@ -76,7 +76,7 @@ interface IAudioService {

    void setMicrophoneMute(boolean on, String callingPackage);

    void setRingerMode(int ringerMode);
    void setRingerMode(int ringerMode, boolean checkZen);

    int getRingerMode();

+1 −1
Original line number Diff line number Diff line
@@ -260,7 +260,7 @@ public class ZenModeHelper {
                }
            }
            if (forcedRingerMode != -1) {
                mAudioManager.setRingerMode(forcedRingerMode);
                mAudioManager.setRingerMode(forcedRingerMode, false /*checkZen*/);
                ZenLog.traceSetRingerMode(forcedRingerMode);
            }
        }