From ff07fa364ca2e030d91066e91d87ca9c079b6863 Mon Sep 17 00:00:00 2001 From: Galia Peycheva Date: Mon, 15 Mar 2021 10:43:37 +0100 Subject: [PATCH] Fix TV volume dialog Bug: 181864498 Test: m && check volume dialog looks right Change-Id: Ia7011db6d5c2c74536e6c6cbaa888bbde55805de --- .../volume_row_seekbar.xml | 37 +++++++++++++++++++ .../volume_row_seekbar_progress.xml | 29 +++++++++++++++ .../res/drawable/tv_volume_row_seek_bar.xml | 32 ---------------- .../res/drawable/volume_row_seekbar.xml | 6 +-- .../volume_dialog_row.xml | 12 +++--- .../SystemUI/res/layout/volume_dialog_row.xml | 1 + .../res/values-land-television/dimens.xml | 9 +++-- packages/SystemUI/res/values/dimens.xml | 4 ++ .../systemui/volume/VolumeDialogImpl.java | 32 ++++++++++------ 9 files changed, 106 insertions(+), 56 deletions(-) create mode 100644 packages/SystemUI/res/drawable-television/volume_row_seekbar.xml create mode 100644 packages/SystemUI/res/drawable-television/volume_row_seekbar_progress.xml delete mode 100644 packages/SystemUI/res/drawable/tv_volume_row_seek_bar.xml diff --git a/packages/SystemUI/res/drawable-television/volume_row_seekbar.xml b/packages/SystemUI/res/drawable-television/volume_row_seekbar.xml new file mode 100644 index 0000000000000..e49fc15fbd7fe --- /dev/null +++ b/packages/SystemUI/res/drawable-television/volume_row_seekbar.xml @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + diff --git a/packages/SystemUI/res/drawable-television/volume_row_seekbar_progress.xml b/packages/SystemUI/res/drawable-television/volume_row_seekbar_progress.xml new file mode 100644 index 0000000000000..bce193a564a02 --- /dev/null +++ b/packages/SystemUI/res/drawable-television/volume_row_seekbar_progress.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + + + diff --git a/packages/SystemUI/res/drawable/tv_volume_row_seek_bar.xml b/packages/SystemUI/res/drawable/tv_volume_row_seek_bar.xml deleted file mode 100644 index fe76b639f15ab..0000000000000 --- a/packages/SystemUI/res/drawable/tv_volume_row_seek_bar.xml +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/packages/SystemUI/res/drawable/volume_row_seekbar.xml b/packages/SystemUI/res/drawable/volume_row_seekbar.xml index b0e0ed5079e62..a845e73eb3a45 100644 --- a/packages/SystemUI/res/drawable/volume_row_seekbar.xml +++ b/packages/SystemUI/res/drawable/volume_row_seekbar.xml @@ -25,9 +25,9 @@ - + - + - \ No newline at end of file + diff --git a/packages/SystemUI/res/layout-land-television/volume_dialog_row.xml b/packages/SystemUI/res/layout-land-television/volume_dialog_row.xml index 4f6cb0140d099..0dec981bd4ae7 100644 --- a/packages/SystemUI/res/layout-land-television/volume_dialog_row.xml +++ b/packages/SystemUI/res/layout-land-television/volume_dialog_row.xml @@ -17,7 +17,7 @@ xmlns:android="http://schemas.android.com/apk/res/android" android:tag="row" android:layout_width="wrap_content" - android:layout_height="@dimen/volume_dialog_row_height" + android:layout_height="@dimen/volume_dialog_panel_height" android:background="@android:color/transparent" android:clipChildren="false" android:clipToPadding="false" @@ -54,18 +54,18 @@ + android:layout_height="@dimen/volume_dialog_panel_height"> diff --git a/packages/SystemUI/res/layout/volume_dialog_row.xml b/packages/SystemUI/res/layout/volume_dialog_row.xml index fda59b50104a3..1d5bca92ddb06 100644 --- a/packages/SystemUI/res/layout/volume_dialog_row.xml +++ b/packages/SystemUI/res/layout/volume_dialog_row.xml @@ -54,6 +54,7 @@ android:layout_width="@dimen/volume_row_slider_height" android:layout_height="match_parent" android:layout_gravity="center" + android:thumb="@android:color/transparent" android:rotation="270" /> diff --git a/packages/SystemUI/res/values-land-television/dimens.xml b/packages/SystemUI/res/values-land-television/dimens.xml index 95ff59bdf1df2..8c905739b9919 100644 --- a/packages/SystemUI/res/values-land-television/dimens.xml +++ b/packages/SystemUI/res/values-land-television/dimens.xml @@ -16,14 +16,17 @@ - 190dp - 48dp + 190dp + 48dp + 24dp 24dp + 4dp + @dimen/volume_dialog_slider_width + 36dp 36dp 6dp 16sp - 4dp 24dp 8dp 20dp diff --git a/packages/SystemUI/res/values/dimens.xml b/packages/SystemUI/res/values/dimens.xml index 2062104be2df1..7a9e79d4564ef 100644 --- a/packages/SystemUI/res/values/dimens.xml +++ b/packages/SystemUI/res/values/dimens.xml @@ -463,6 +463,10 @@ 116dp + @dimen/volume_dialog_panel_width + + @dimen/volume_dialog_panel_width_half + 64dp 20dp diff --git a/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogImpl.java b/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogImpl.java index 5dc7006406eea..044d8285b079b 100644 --- a/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogImpl.java +++ b/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogImpl.java @@ -546,9 +546,10 @@ public class VolumeDialogImpl implements VolumeDialog, row.sliderBgSolid = seekbarBgDrawable.findDrawableByLayerId( R.id.volume_seekbar_background_solid); - row.sliderBgIcon = (AlphaTintDrawableWrapper) - ((RotateDrawable) seekbarBgDrawable.findDrawableByLayerId( - R.id.volume_seekbar_background_icon)).getDrawable(); + final Drawable sliderBgIcon = seekbarBgDrawable.findDrawableByLayerId( + R.id.volume_seekbar_background_icon); + row.sliderBgIcon = sliderBgIcon != null ? (AlphaTintDrawableWrapper) + ((RotateDrawable) sliderBgIcon).getDrawable() : null; final LayerDrawable seekbarProgressDrawable = (LayerDrawable) ((RoundedCornerProgressDrawable) seekbarDrawable.findDrawableByLayerId( @@ -556,13 +557,12 @@ public class VolumeDialogImpl implements VolumeDialog, row.sliderProgressSolid = seekbarProgressDrawable.findDrawableByLayerId( R.id.volume_seekbar_progress_solid); - - row.sliderProgressIcon = (AlphaTintDrawableWrapper) - ((RotateDrawable) seekbarProgressDrawable.findDrawableByLayerId( - R.id.volume_seekbar_progress_icon)).getDrawable(); + final Drawable sliderProgressIcon = seekbarProgressDrawable.findDrawableByLayerId( + R.id.volume_seekbar_progress_icon); + row.sliderProgressIcon = sliderProgressIcon != null ? (AlphaTintDrawableWrapper) + ((RotateDrawable) sliderProgressIcon).getDrawable() : null; row.slider.setProgressDrawable(seekbarDrawable); - row.slider.setThumb(null); row.icon = row.view.findViewById(R.id.volume_row_icon); @@ -1484,10 +1484,14 @@ public class VolumeDialogImpl implements VolumeDialog, mContext, android.R.attr.colorBackgroundFloating); row.sliderProgressSolid.setTintList(colorTint); - row.sliderBgIcon.setTintList(colorTint); + if (row.sliderBgIcon != null) { + row.sliderBgIcon.setTintList(colorTint); + } row.sliderBgSolid.setTintList(bgTint); - row.sliderProgressIcon.setTintList(bgTint); + if (row.sliderProgressIcon != null) { + row.sliderProgressIcon.setTintList(bgTint); + } if (row.icon != null) { row.icon.setImageTintList(colorTint); @@ -1878,8 +1882,12 @@ public class VolumeDialogImpl implements VolumeDialog, icon.setImageResource(iconRes); } - sliderProgressIcon.setDrawable(view.getResources().getDrawable(iconRes, theme)); - sliderBgIcon.setDrawable(view.getResources().getDrawable(iconRes, theme)); + if (sliderProgressIcon != null) { + sliderProgressIcon.setDrawable(view.getResources().getDrawable(iconRes, theme)); + } + if (sliderBgIcon != null) { + sliderBgIcon.setDrawable(view.getResources().getDrawable(iconRes, theme)); + } } }