diff --git a/packages/SystemUI/res/color/accent_tint_color_selector.xml b/packages/SystemUI/res/color/accent_tint_color_selector.xml new file mode 100644 index 0000000000000..85af186ab45ea --- /dev/null +++ b/packages/SystemUI/res/color/accent_tint_color_selector.xml @@ -0,0 +1,21 @@ + + + + + + + \ No newline at end of file diff --git a/packages/SystemUI/res/layout/volume_dialog.xml b/packages/SystemUI/res/layout/volume_dialog.xml index bab4eba72822c..803659f9c7aef 100644 --- a/packages/SystemUI/res/layout/volume_dialog.xml +++ b/packages/SystemUI/res/layout/volume_dialog.xml @@ -38,59 +38,64 @@ android:layout_height="wrap_content" android:clipChildren="false" android:clipToPadding="false" - android:paddingTop="10dp" - android:paddingBottom="10dp" android:background="@drawable/rounded_bg_full" android:translationZ="@dimen/volume_panel_elevation" android:orientation="horizontal" > - + android:background="@drawable/rounded_bg_full"> - + - + - + - + + + + + \ No newline at end of file diff --git a/packages/SystemUI/res/layout/volume_dialog_row.xml b/packages/SystemUI/res/layout/volume_dialog_row.xml index 70654a803b44a..fb9355ad061b8 100644 --- a/packages/SystemUI/res/layout/volume_dialog_row.xml +++ b/packages/SystemUI/res/layout/volume_dialog_row.xml @@ -13,89 +13,98 @@ See the License for the specific language governing permissions and limitations under the License. --> - + android:theme="@style/qs_theme"> - + android:orientation="vertical" > + + android:gravity="center" + android:padding="5dp"> - + + android:gravity="center"> + + + - - - - + android:layout_height="@dimen/volume_dialog_panel_width"> + + - + + - \ No newline at end of file + + + diff --git a/packages/SystemUI/res/layout/volume_dnd_icon.xml b/packages/SystemUI/res/layout/volume_dnd_icon.xml new file mode 100644 index 0000000000000..215b2300992a4 --- /dev/null +++ b/packages/SystemUI/res/layout/volume_dnd_icon.xml @@ -0,0 +1,30 @@ + + + + + diff --git a/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogImpl.java b/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogImpl.java index fb5c447c2592d..8881ee94092ea 100644 --- a/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogImpl.java +++ b/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogImpl.java @@ -68,6 +68,7 @@ import android.view.accessibility.AccessibilityEvent; import android.view.accessibility.AccessibilityManager.AccessibilityStateChangeListener; import android.view.animation.DecelerateInterpolator; import android.widget.ImageButton; +import android.widget.ImageView; import android.widget.SeekBar; import android.widget.SeekBar.OnSeekBarChangeListener; import android.widget.TextView; @@ -109,7 +110,9 @@ public class VolumeDialogImpl implements VolumeDialog { private ViewGroup mDialogRowsView; private ViewGroup mFooter; private ImageButton mRingerIcon; + private ImageView mZenIcon; private TextView mRingerStatus; + private TextView mRingerTitle; private final List mRows = new ArrayList<>(); private ConfigurableTexts mConfigurableTexts; private final SparseBooleanArray mDynamic = new SparseBooleanArray(); @@ -216,6 +219,8 @@ public class VolumeDialogImpl implements VolumeDialog { mFooter = mDialog.findViewById(R.id.footer); mRingerIcon = mFooter.findViewById(R.id.ringer_icon); mRingerStatus = mFooter.findViewById(R.id.ringer_status); + mRingerTitle = mFooter.findViewById(R.id.ringer_title); + mZenIcon = mFooter.findViewById(R.id.dnd_icon); if (mRows.isEmpty()) { addRow(AudioManager.STREAM_MUSIC, @@ -349,6 +354,7 @@ public class VolumeDialogImpl implements VolumeDialog { if (stream == STREAM_ACCESSIBILITY) { row.header.setFilters(new InputFilter[] {new InputFilter.LengthFilter(13)}); } + row.dndIcon = row.view.findViewById(R.id.dnd_icon); row.slider = row.view.findViewById(R.id.volume_row_slider); row.slider.setOnSeekBarChangeListener(new VolumeSeekBarChangeListener(row)); row.anim = null; @@ -559,6 +565,8 @@ public class VolumeDialogImpl implements VolumeDialog { if (ss == null) { return; } + + enableRingerViewsH(mState.zenMode == Global.ZEN_MODE_OFF || !mState.disallowRinger); switch (mState.ringerModeInternal) { case AudioManager.RINGER_MODE_VIBRATE: mRingerStatus.setText(R.string.volume_ringer_status_vibrate); @@ -603,6 +611,28 @@ public class VolumeDialogImpl implements VolumeDialog { } } + /** + * Toggles enable state of views in a VolumeRow (not including seekbar, outputChooser or icon) + * Hides/shows zen icon + * @param enable whether to enable volume row views and hide dnd icon + */ + private void enableVolumeRowViewsH(VolumeRow row, boolean enable) { + row.header.setEnabled(enable); + row.dndIcon.setVisibility(enable ? View.GONE : View.VISIBLE); + } + + /** + * Toggles enable state of footer/ringer views + * Hides/shows zen icon + * @param enable whether to enable ringer views and hide dnd icon + */ + private void enableRingerViewsH(boolean enable) { + mRingerTitle.setEnabled(enable); + mRingerStatus.setEnabled(enable); + mRingerIcon.setEnabled(enable); + mZenIcon.setVisibility(enable ? View.GONE : View.VISIBLE); + } + private void trimObsoleteH() { if (D.BUG) Log.d(TAG, "trimObsoleteH"); for (int i = mRows.size() - 1; i >= 0; i--) { @@ -748,6 +778,7 @@ public class VolumeDialogImpl implements VolumeDialog { if (zenMuted) { row.tracking = false; } + enableVolumeRowViewsH(row, !zenMuted); // update slider final boolean enableSlider = !zenMuted; @@ -1178,5 +1209,6 @@ public class VolumeDialogImpl implements VolumeDialog { private int lastAudibleLevel = 1; private View outputChooser; private TextView connectedDevice; + private ImageView dndIcon; } }