Merge "Zen: Enter alarms only on volume down from vibrate."

This commit is contained in:
John Spurlock
2015-04-14 20:00:40 +00:00
committed by Android (Google) Code Review
6 changed files with 32 additions and 6 deletions

View File

@@ -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;

View File

@@ -43,6 +43,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) {
@@ -74,7 +80,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);
}

View File

@@ -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) {

View File

@@ -244,8 +244,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);

View File

@@ -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);
}
}

View File

@@ -501,7 +501,7 @@ public class ZenModeHelper {
if (isChange && policy.doNotDisturbWhenSilent) {
if (mZenMode != Global.ZEN_MODE_NO_INTERRUPTIONS
&& mZenMode != Global.ZEN_MODE_ALARMS) {
newZen = Global.ZEN_MODE_NO_INTERRUPTIONS;
newZen = Global.ZEN_MODE_ALARMS;
}
}
break;