Merge "Zen: Maintain selection throughout rocker session." into lmp-dev
diff --git a/packages/SystemUI/src/com/android/systemui/volume/ZenModePanel.java b/packages/SystemUI/src/com/android/systemui/volume/ZenModePanel.java
index d7aa3d6..33cf3b6 100644
--- a/packages/SystemUI/src/com/android/systemui/volume/ZenModePanel.java
+++ b/packages/SystemUI/src/com/android/systemui/volume/ZenModePanel.java
@@ -100,7 +100,8 @@
private Uri mExitConditionId;
private int mBucketIndex = -1;
private boolean mExpanded;
- private int mAttachedZen;
+ private int mSessionZen;
+ private Uri mSessionExitConditionId;
private String mExitConditionText;
private long mNextAlarm;
@@ -162,7 +163,8 @@
protected void onAttachedToWindow() {
super.onAttachedToWindow();
if (DEBUG) Log.d(mTag, "onAttachedToWindow");
- mAttachedZen = getSelectedZen(-1);
+ mSessionZen = getSelectedZen(-1);
+ mSessionExitConditionId = mExitConditionId;
refreshExitConditionText();
refreshNextAlarm();
updateWidgets();
@@ -172,7 +174,8 @@
protected void onDetachedFromWindow() {
super.onDetachedFromWindow();
if (DEBUG) Log.d(mTag, "onDetachedFromWindow");
- mAttachedZen = -1;
+ mSessionZen = -1;
+ mSessionExitConditionId = null;
setExpanded(false);
}
@@ -215,7 +218,7 @@
updateTag();
setExitConditionId(mController.getExitConditionId());
refreshExitConditionText();
- mAttachedZen = getSelectedZen(-1);
+ mSessionZen = getSelectedZen(-1);
handleUpdateZen(mController.getZen());
if (DEBUG) Log.d(mTag, "init mExitConditionId=" + mExitConditionId);
mZenConditions.removeAllViews();
@@ -262,9 +265,9 @@
}
private void handleUpdateZen(int zen) {
- if (mAttachedZen != -1 && mAttachedZen != zen) {
+ if (mSessionZen != -1 && mSessionZen != zen) {
setExpanded(zen != Global.ZEN_MODE_OFF);
- mAttachedZen = zen;
+ mSessionZen = zen;
}
mZenButtons.setSelectedValue(zen);
updateWidgets();
@@ -379,6 +382,8 @@
// are we left without anything selected? if so, set a default
for (int i = 0; i < mZenConditions.getChildCount(); i++) {
if (getConditionTagAt(i).rb.isChecked()) {
+ if (DEBUG) Log.d(mTag, "Not selecting a default, checked="
+ + getConditionTagAt(i).conditionId);
return;
}
}
@@ -422,7 +427,7 @@
}
tag.conditionId = condition != null ? condition.id : null;
tag.rb.setEnabled(enabled);
- if (Objects.equals(tag.conditionId, mExitConditionId)) {
+ if (mSessionExitConditionId != null && mSessionExitConditionId.equals(tag.conditionId)) {
tag.rb.setChecked(true);
}
tag.rb.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@@ -535,6 +540,7 @@
} else if (ZenModeConfig.isValidCountdownConditionId(conditionId) && mBucketIndex != -1) {
mFavorites.setMinuteIndex(mBucketIndex);
}
+ mSessionExitConditionId = conditionId;
}
private void fireMoreSettings() {
@@ -660,7 +666,6 @@
if (value != null && mZenButtons.isShown()) {
if (DEBUG) Log.d(mTag, "mZenButtonsCallback selected=" + value);
mController.setZen((Integer) value);
- mController.setExitConditionId(null);
}
}
};