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

Commit b02c744f authored by John Spurlock's avatar John Spurlock
Browse files

Zen: Enter alarms only on volume down from vibrate.

And vice versa (when dialog is showing).

Also make alarms only the default mode when DND is switched on
via the switch.

Bug: 19260237
Change-Id: I16e4a27944bc8245bb2beed84c0421d493b0b876
parent cbcf902a
Loading
Loading
Loading
Loading
+19 −0
Original line number Diff line number Diff line
@@ -19,6 +19,8 @@ package android.media;
import android.os.Parcel;
import android.os.Parcelable;

import java.util.Objects;

/** @hide */
public final class VolumePolicy implements Parcelable {
    public static final VolumePolicy DEFAULT = new VolumePolicy(false, false, true, 400);
@@ -52,6 +54,23 @@ public final class VolumePolicy implements Parcelable {
                + ",vibrateToSilentDebounce=" + vibrateToSilentDebounce + "]";
    }

    @Override
    public int hashCode() {
        return Objects.hash(volumeDownToEnterSilent, volumeUpToExitSilent, doNotDisturbWhenSilent,
                vibrateToSilentDebounce);
    }

    @Override
    public boolean equals(Object o) {
        if (!(o instanceof VolumePolicy)) return false;
        if (o == this) return true;
        final VolumePolicy other = (VolumePolicy) o;
        return other.volumeDownToEnterSilent == volumeDownToEnterSilent
                && other.volumeUpToExitSilent == volumeUpToExitSilent
                && other.doNotDisturbWhenSilent == doNotDisturbWhenSilent
                && other.vibrateToSilentDebounce == vibrateToSilentDebounce;
    }

    @Override
    public int describeContents() {
        return 0;
+7 −1
Original line number Diff line number Diff line
@@ -41,6 +41,12 @@ public class VolumeDialogComponent implements VolumeComponent {
    private final VolumeDialogController mController;
    private final ZenModeController mZenModeController;
    private final VolumeDialog mDialog;
    private final VolumePolicy mVolumePolicy = new VolumePolicy(
            true,  // volumeDownToEnterSilent
            true,  // volumeUpToExitSilent
            true,  // doNotDisturbWhenSilent
            400    // vibrateToSilentDebounce
    );

    public VolumeDialogComponent(SystemUI sysui, Context context, Handler handler,
            ZenModeController zen) {
@@ -77,7 +83,7 @@ public class VolumeDialogComponent implements VolumeComponent {
        mDialog.setZenFooter(true);
        mDialog.setAutomute(true);
        mDialog.setSilentMode(false);
        mController.setVolumePolicy(VolumePolicy.DEFAULT);
        mController.setVolumePolicy(mVolumePolicy);
        mController.showDndTile(false);
    }

+2 −1
Original line number Diff line number Diff line
@@ -99,7 +99,7 @@ public class VolumeDialogController {

    private boolean mEnabled;
    private boolean mDestroyed;
    private VolumePolicy mVolumePolicy = new VolumePolicy(true, true, false, 400);
    private VolumePolicy mVolumePolicy;
    private boolean mShowDndTile = false;

    public VolumeDialogController(Context context, ComponentName component) {
@@ -147,6 +147,7 @@ public class VolumeDialogController {

    public void setVolumePolicy(VolumePolicy policy) {
        mVolumePolicy = policy;
        if (mVolumePolicy == null) return;
        try {
            mAudio.setVolumePolicy(mVolumePolicy);
        } catch (NoSuchMethodError e) {
+1 −2
Original line number Diff line number Diff line
@@ -217,8 +217,7 @@ public class ZenFooter extends LinearLayout {
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            if (D.BUG) Log.d(TAG, "onCheckedChanged " + isChecked);
            if (isChecked != isZen()) {
                final int newZen = isChecked ? Global.ZEN_MODE_IMPORTANT_INTERRUPTIONS
                        : Global.ZEN_MODE_OFF;
                final int newZen = isChecked ? Global.ZEN_MODE_ALARMS : Global.ZEN_MODE_OFF;
                mZen = newZen;  // this one's optimistic
                setFooterExpanded(isChecked);
                mController.setZen(newZen, null, TAG);
+2 −1
Original line number Diff line number Diff line
@@ -5577,8 +5577,9 @@ public class AudioService extends IAudioService.Stub {
    @Override
    public void setVolumePolicy(VolumePolicy policy) {
        enforceVolumeController("set volume policy");
        if (policy != null) {
        if (policy != null && !policy.equals(mVolumePolicy)) {
            mVolumePolicy = policy;
            if (DEBUG_VOL) Log.d(TAG, "Volume policy changed: " + mVolumePolicy);
        }
    }

Loading