summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author John Spurlock <jspurlock@google.com> 2015-04-14 09:32:25 -0400
committer John Spurlock <jspurlock@google.com> 2015-04-14 09:36:28 -0400
commitb02c744f05b0cca05b77fcbaad4a546ad86081eb (patch)
tree2c59e43349df173982e73b02a92f32fb7f9e3ba0
parentcbcf902a4afbb449ae6ba3738d32d3ca1c5c4602 (diff)
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
-rw-r--r--media/java/android/media/VolumePolicy.java19
-rw-r--r--packages/SystemUI/src/com/android/systemui/volume/VolumeDialogComponent.java8
-rw-r--r--packages/SystemUI/src/com/android/systemui/volume/VolumeDialogController.java3
-rw-r--r--packages/SystemUI/src/com/android/systemui/volume/ZenFooter.java3
-rw-r--r--services/core/java/com/android/server/audio/AudioService.java3
-rw-r--r--services/core/java/com/android/server/notification/ZenModeHelper.java2
6 files changed, 32 insertions, 6 deletions
diff --git a/media/java/android/media/VolumePolicy.java b/media/java/android/media/VolumePolicy.java
index 2d3376ad80a6..1d33128ba752 100644
--- a/media/java/android/media/VolumePolicy.java
+++ b/media/java/android/media/VolumePolicy.java
@@ -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);
@@ -53,6 +55,23 @@ public final class VolumePolicy implements Parcelable {
}
@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;
}
diff --git a/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogComponent.java b/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogComponent.java
index 741e4988cb42..c83e343699cc 100644
--- a/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogComponent.java
+++ b/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogComponent.java
@@ -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);
}
diff --git a/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogController.java b/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogController.java
index 5bc8c3ec55a2..012eb41b2d30 100644
--- a/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogController.java
+++ b/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogController.java
@@ -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) {
diff --git a/packages/SystemUI/src/com/android/systemui/volume/ZenFooter.java b/packages/SystemUI/src/com/android/systemui/volume/ZenFooter.java
index ef8257c0a798..c03c0419d440 100644
--- a/packages/SystemUI/src/com/android/systemui/volume/ZenFooter.java
+++ b/packages/SystemUI/src/com/android/systemui/volume/ZenFooter.java
@@ -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);
diff --git a/services/core/java/com/android/server/audio/AudioService.java b/services/core/java/com/android/server/audio/AudioService.java
index 1eddc8e21aa2..9a30f0dd8371 100644
--- a/services/core/java/com/android/server/audio/AudioService.java
+++ b/services/core/java/com/android/server/audio/AudioService.java
@@ -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);
}
}
diff --git a/services/core/java/com/android/server/notification/ZenModeHelper.java b/services/core/java/com/android/server/notification/ZenModeHelper.java
index 683d1fdcbafd..40218bb43e77 100644
--- a/services/core/java/com/android/server/notification/ZenModeHelper.java
+++ b/services/core/java/com/android/server/notification/ZenModeHelper.java
@@ -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;