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

Commit 4f7eee43 authored by John Spurlock's avatar John Spurlock Committed by Android Git Automerger
Browse files

am 3d4aec1b: am b2344c81: Merge "Leave zen when apps set ringer-mode =...

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

* commit '3d4aec1b':
  Leave zen when apps set ringer-mode = non-silent (normal/vibrate).
parents df88ad0b 3d4aec1b
Loading
Loading
Loading
Loading
+10 −1
Original line number Original line Diff line number Diff line
@@ -982,12 +982,21 @@ public class AudioManager {
     * @see #isVolumeFixed()
     * @see #isVolumeFixed()
     */
     */
    public void setRingerMode(int ringerMode) {
    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)) {
        if (!isValidRingerMode(ringerMode)) {
            return;
            return;
        }
        }
        IAudioService service = getService();
        IAudioService service = getService();
        try {
        try {
            service.setRingerMode(ringerMode);
            service.setRingerMode(ringerMode, checkZen);
        } catch (RemoteException e) {
        } catch (RemoteException e) {
            Log.e(TAG, "Dead object in setRingerMode", e);
            Log.e(TAG, "Dead object in setRingerMode", e);
        }
        }
+20 −3
Original line number Original line Diff line number Diff line
@@ -66,6 +66,7 @@ import android.os.SystemProperties;
import android.os.UserHandle;
import android.os.UserHandle;
import android.os.Vibrator;
import android.os.Vibrator;
import android.provider.Settings;
import android.provider.Settings;
import android.provider.Settings.Global;
import android.provider.Settings.System;
import android.provider.Settings.System;
import android.telecom.TelecomManager;
import android.telecom.TelecomManager;
import android.text.TextUtils;
import android.text.TextUtils;
@@ -1175,7 +1176,7 @@ public class AudioService extends IAudioService.Stub {
            } else {
            } else {
                newRingerMode = AudioManager.RINGER_MODE_NORMAL;
                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) */
    /** @see AudioManager#setRingerMode(int) */
    public void setRingerMode(int ringerMode) {
    public void setRingerMode(int ringerMode, boolean checkZen) {
        if (mUseFixedVolume || isPlatformTelevision()) {
        if (mUseFixedVolume || isPlatformTelevision()) {
            return;
            return;
        }
        }
@@ -1746,6 +1747,9 @@ public class AudioService extends IAudioService.Stub {
        if ((ringerMode == AudioManager.RINGER_MODE_VIBRATE) && !mHasVibrator) {
        if ((ringerMode == AudioManager.RINGER_MODE_VIBRATE) && !mHasVibrator) {
            ringerMode = AudioManager.RINGER_MODE_SILENT;
            ringerMode = AudioManager.RINGER_MODE_SILENT;
        }
        }
        if (checkZen) {
            checkZen(ringerMode);
        }
        if (ringerMode != getRingerMode()) {
        if (ringerMode != getRingerMode()) {
            setRingerModeInt(ringerMode, true);
            setRingerModeInt(ringerMode, true);
            // Send sticky broadcast
            // 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) {
    private void setRingerModeInt(int ringerMode, boolean persist) {
        synchronized(mSettingsLock) {
        synchronized(mSettingsLock) {
            mRingerMode = ringerMode;
            mRingerMode = ringerMode;
@@ -2993,7 +3010,7 @@ public class AudioService extends IAudioService.Stub {
            break;
            break;
        }
        }


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


        mPrevVolDirection = direction;
        mPrevVolDirection = direction;


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


    void setMicrophoneMute(boolean on, String callingPackage);
    void setMicrophoneMute(boolean on, String callingPackage);


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


    int getRingerMode();
    int getRingerMode();


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