Merge "Zen: Enter alarms only on volume down from vibrate."
This commit is contained in:
committed by
Android (Google) Code Review
commit
1740c625c6
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user