summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/SystemUI/res/layout/zen_mode_button.xml29
-rw-r--r--packages/SystemUI/res/layout/zen_mode_condition.xml14
-rw-r--r--packages/SystemUI/res/layout/zen_mode_panel.xml15
-rw-r--r--packages/SystemUI/src/com/android/systemui/volume/ZenModePanel.java62
4 files changed, 73 insertions, 47 deletions
diff --git a/packages/SystemUI/res/layout/zen_mode_button.xml b/packages/SystemUI/res/layout/zen_mode_button.xml
new file mode 100644
index 000000000000..f25131b6b360
--- /dev/null
+++ b/packages/SystemUI/res/layout/zen_mode_button.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2016 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<RadioButton
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@android:id/checkbox"
+ android:layout_width="40dp"
+ android:layout_marginStart="7dp"
+ android:layout_marginEnd="4dp"
+ android:layout_height="48dp"
+ android:layout_alignParentStart="true"
+ android:gravity="center"
+ android:paddingTop="10dp"
+ android:paddingBottom="10dp">
+
+</RadioButton> \ No newline at end of file
diff --git a/packages/SystemUI/res/layout/zen_mode_condition.xml b/packages/SystemUI/res/layout/zen_mode_condition.xml
index 53f39083acd1..ca4f7278a5ae 100644
--- a/packages/SystemUI/res/layout/zen_mode_condition.xml
+++ b/packages/SystemUI/res/layout/zen_mode_condition.xml
@@ -18,18 +18,10 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clipChildren="false"
- android:layout_marginBottom="@dimen/zen_mode_condition_detail_item_spacing"
android:layout_marginStart="1dp"
- android:layout_marginEnd="0dp" >
-
- <RadioButton
- android:id="@android:id/checkbox"
- android:layout_width="40dp"
- android:layout_marginStart="7dp"
- android:layout_marginEnd="4dp"
- android:layout_height="48dp"
- android:layout_alignParentStart="true"
- android:gravity="center" />
+ android:layout_marginEnd="0dp"
+ android:layout_weight="1"
+ android:gravity="center_vertical" >
<LinearLayout
android:id="@android:id/content"
diff --git a/packages/SystemUI/res/layout/zen_mode_panel.xml b/packages/SystemUI/res/layout/zen_mode_panel.xml
index 43ab4bb4e1db..906b8679931b 100644
--- a/packages/SystemUI/res/layout/zen_mode_panel.xml
+++ b/packages/SystemUI/res/layout/zen_mode_panel.xml
@@ -94,9 +94,18 @@
android:layout_marginTop="8dp"
android:layout_marginEnd="4dp"
android:layout_marginStart="4dp"
- android:orientation="vertical"
- android:paddingBottom="@dimen/zen_mode_condition_detail_bottom_padding" />
-
+ android:paddingBottom="@dimen/zen_mode_condition_detail_bottom_padding"
+ android:orientation="horizontal" >
+ <RadioGroup
+ android:id="@+id/zen_radio_buttons"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content" />
+ <LinearLayout
+ android:id="@+id/zen_radio_buttons_content"
+ android:layout_width="fill_parent"
+ android:layout_height="fill_parent"
+ android:orientation="vertical"/>
+ </LinearLayout>
<TextView
android:id="@+id/zen_alarm_warning"
diff --git a/packages/SystemUI/src/com/android/systemui/volume/ZenModePanel.java b/packages/SystemUI/src/com/android/systemui/volume/ZenModePanel.java
index fda57eb188ff..a67299e95327 100644
--- a/packages/SystemUI/src/com/android/systemui/volume/ZenModePanel.java
+++ b/packages/SystemUI/src/com/android/systemui/volume/ZenModePanel.java
@@ -48,6 +48,7 @@ import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RadioButton;
+import android.widget.RadioGroup;
import android.widget.TextView;
import com.android.internal.logging.MetricsLogger;
@@ -102,6 +103,8 @@ public class ZenModePanel extends LinearLayout {
private TextView mZenIntroductionCustomize;
protected LinearLayout mZenConditions;
private TextView mZenAlarmWarning;
+ private RadioGroup mZenRadioGroup;
+ private LinearLayout mZenRadioGroupContent;
private Callback mCallback;
private ZenModeController mController;
@@ -117,7 +120,6 @@ public class ZenModePanel extends LinearLayout {
private Condition mSessionExitCondition;
private Condition[] mConditions;
private Condition mTimeCondition;
- private Condition mTimeUntilAlarmCondition;
private boolean mVoiceCapable;
public ZenModePanel(Context context, AttributeSet attrs) {
@@ -190,6 +192,8 @@ public class ZenModePanel extends LinearLayout {
mZenConditions = (LinearLayout) findViewById(R.id.zen_conditions);
mZenAlarmWarning = (TextView) findViewById(R.id.zen_alarm_warning);
+ mZenRadioGroup = (RadioGroup) findViewById(R.id.zen_radio_buttons);
+ mZenRadioGroupContent = (LinearLayout) findViewById(R.id.zen_radio_buttons_content);
}
@Override
@@ -306,7 +310,12 @@ public class ZenModePanel extends LinearLayout {
protected void addZenConditions(int count) {
for (int i = 0; i < count; i++) {
- mZenConditions.addView(mInflater.inflate(R.layout.zen_mode_condition, this, false));
+ final View rb = mInflater.inflate(R.layout.zen_mode_button, this, false);
+ rb.setId(i);
+ mZenRadioGroup.addView(rb);
+ final View rbc = mInflater.inflate(R.layout.zen_mode_condition, this, false);
+ rbc.setId(i + count);
+ mZenRadioGroupContent.addView(rbc);
}
}
@@ -385,7 +394,7 @@ public class ZenModePanel extends LinearLayout {
final ConditionTag tag = getConditionTagAt(i);
if (tag != null) {
if (sameConditionId(tag.condition, mExitCondition)) {
- bind(exitCondition, mZenConditions.getChildAt(i), i);
+ bind(exitCondition, mZenRadioGroupContent.getChildAt(i), i);
}
}
}
@@ -481,11 +490,11 @@ public class ZenModePanel extends LinearLayout {
final int conditionCount = mConditions == null ? 0 : mConditions.length;
if (DEBUG) Log.d(mTag, "handleUpdateConditions conditionCount=" + conditionCount);
// forever
- bind(forever(), mZenConditions.getChildAt(FOREVER_CONDITION_INDEX),
+ bind(forever(), mZenRadioGroupContent.getChildAt(FOREVER_CONDITION_INDEX),
FOREVER_CONDITION_INDEX);
// countdown
if (mCountdownConditionSupported && mTimeCondition != null) {
- bind(mTimeCondition, mZenConditions.getChildAt(COUNTDOWN_CONDITION_INDEX),
+ bind(mTimeCondition, mZenRadioGroupContent.getChildAt(COUNTDOWN_CONDITION_INDEX),
COUNTDOWN_CONDITION_INDEX);
}
// countdown until alarm
@@ -493,7 +502,7 @@ public class ZenModePanel extends LinearLayout {
Condition nextAlarmCondition = getTimeUntilNextAlarmCondition();
if (nextAlarmCondition != null) {
bind(nextAlarmCondition,
- mZenConditions.getChildAt(COUNTDOWN_ALARM_CONDITION_INDEX),
+ mZenRadioGroupContent.getChildAt(COUNTDOWN_ALARM_CONDITION_INDEX),
COUNTDOWN_ALARM_CONDITION_INDEX);
}
}
@@ -541,22 +550,22 @@ public class ZenModePanel extends LinearLayout {
}
private ConditionTag getConditionTagAt(int index) {
- return (ConditionTag) mZenConditions.getChildAt(index).getTag();
+ return (ConditionTag) mZenRadioGroupContent.getChildAt(index).getTag();
}
private int getVisibleConditions() {
int rt = 0;
- final int N = mZenConditions.getChildCount();
+ final int N = mZenRadioGroupContent.getChildCount();
for (int i = 0; i < N; i++) {
- rt += mZenConditions.getChildAt(i).getVisibility() == VISIBLE ? 1 : 0;
+ rt += mZenRadioGroupContent.getChildAt(i).getVisibility() == VISIBLE ? 1 : 0;
}
return rt;
}
private void hideAllConditions() {
- final int N = mZenConditions.getChildCount();
+ final int N = mZenRadioGroupContent.getChildCount();
for (int i = 0; i < N; i++) {
- mZenConditions.getChildAt(i).setVisibility(GONE);
+ mZenRadioGroupContent.getChildAt(i).setVisibility(GONE);
}
}
@@ -576,27 +585,14 @@ public class ZenModePanel extends LinearLayout {
if (DEBUG) Log.d(mTag, "Selecting a default");
final int favoriteIndex = mPrefs.getMinuteIndex();
if (favoriteIndex == -1 || !mCountdownConditionSupported) {
- setChecked(foreverTag.rb, true);
+ foreverTag.rb.setChecked(true);
} else {
mTimeCondition = ZenModeConfig.toTimeCondition(mContext,
MINUTE_BUCKETS[favoriteIndex], ActivityManager.getCurrentUser());
mBucketIndex = favoriteIndex;
- bind(mTimeCondition, mZenConditions.getChildAt(COUNTDOWN_CONDITION_INDEX),
+ bind(mTimeCondition, mZenRadioGroupContent.getChildAt(COUNTDOWN_CONDITION_INDEX),
COUNTDOWN_CONDITION_INDEX);
- setChecked(getConditionTagAt(COUNTDOWN_CONDITION_INDEX).rb, true);
- }
- }
-
- private void setChecked(RadioButton rb, boolean checked) {
- final int N = getVisibleConditions();
- for (int i = 0; i < N; i++) {
- final ConditionTag tag = getConditionTagAt(i);
- if (tag != null && tag.rb.isChecked() && !Objects.equals(tag.rb, rb)) {
- tag.rb.setChecked(false);
- }
- }
- if (rb.isChecked() != checked) {
- rb.setChecked(checked);
+ getConditionTagAt(COUNTDOWN_CONDITION_INDEX).rb.setChecked(true);
}
}
@@ -616,18 +612,18 @@ public class ZenModePanel extends LinearLayout {
row.setTag(tag);
final boolean first = tag.rb == null;
if (tag.rb == null) {
- tag.rb = (RadioButton) row.findViewById(android.R.id.checkbox);
+ tag.rb = (RadioButton) mZenRadioGroup.getChildAt(rowId);
}
tag.condition = condition;
final Uri conditionId = getConditionId(tag.condition);
- if (DEBUG) Log.d(mTag, "bind i=" + mZenConditions.indexOfChild(row) + " first=" + first
- + " condition=" + conditionId);
+ if (DEBUG) Log.d(mTag, "bind i=" + mZenRadioGroupContent.indexOfChild(row) + " first="
+ + first + " condition=" + conditionId);
tag.rb.setEnabled(enabled);
tag.rb.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (mExpanded && isChecked) {
- setChecked(tag.rb, isChecked);
+ tag.rb.setChecked(true);
if (DEBUG) Log.d(mTag, "onCheckedChanged " + conditionId);
MetricsLogger.action(mContext, MetricsEvent.QS_DND_CONDITION_SELECT);
select(tag.condition);
@@ -678,7 +674,7 @@ public class ZenModePanel extends LinearLayout {
tag.lines.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
- setChecked(tag.rb, true);
+ tag.rb.setChecked(true);
}
});
@@ -767,7 +763,7 @@ public class ZenModePanel extends LinearLayout {
}
mTimeCondition = newCondition;
bind(mTimeCondition, row, rowId);
- setChecked(tag.rb, true);
+ tag.rb.setChecked(true);
select(mTimeCondition);
announceConditionSelection(tag);
}