From a08adafba9207eebb044dc605469853c85a11072 Mon Sep 17 00:00:00 2001 From: Michael Mikhail Date: Thu, 16 Mar 2023 19:13:44 +0000 Subject: [PATCH] Add minimum height and width to recommendation covers Found an illegal exception because the width or height of a certain image view is zero. The crash came from adding the recommendation card. So to make sure we have a certain value for height and width, we add minWidth and minHeight attributes in style.And post set the image icon in order to avoid create bitmap before width and height are set. Also, added a dimension for recommendation album icon size. Bug: 271959514 Test: atest MediaControlPanelTest. Test: checked recommendation card UI for old and new version. Change-Id: Ic99cf0b5f58217c95940bae29fc3ba2e6efbbb9b --- .../SystemUI/res/layout/media_recommendation_view.xml | 6 ++++-- .../res/layout/media_smartspace_recommendations.xml | 8 ++++++++ packages/SystemUI/res/values/dimens.xml | 1 + packages/SystemUI/res/values/styles.xml | 2 ++ .../systemui/media/controls/ui/MediaControlPanel.java | 3 ++- 5 files changed, 17 insertions(+), 3 deletions(-) diff --git a/packages/SystemUI/res/layout/media_recommendation_view.xml b/packages/SystemUI/res/layout/media_recommendation_view.xml index a4aeba1dbcd6e..e63aa211f9f11 100644 --- a/packages/SystemUI/res/layout/media_recommendation_view.xml +++ b/packages/SystemUI/res/layout/media_recommendation_view.xml @@ -31,8 +31,10 @@ diff --git a/packages/SystemUI/res/layout/media_smartspace_recommendations.xml b/packages/SystemUI/res/layout/media_smartspace_recommendations.xml index aa655e6b35644..9304ff72f0547 100644 --- a/packages/SystemUI/res/layout/media_smartspace_recommendations.xml +++ b/packages/SystemUI/res/layout/media_smartspace_recommendations.xml @@ -40,6 +40,8 @@ android:id="@+id/recommendation_card_icon" android:layout_width="@dimen/qs_media_app_icon_size" android:layout_height="@dimen/qs_media_app_icon_size" + android:minWidth="@dimen/qs_media_app_icon_size" + android:minHeight="@dimen/qs_media_app_icon_size" android:layout_marginStart="@dimen/qs_media_padding" android:layout_marginTop="@dimen/qs_media_rec_icon_top_margin" app:layout_constraintStart_toStartOf="parent" @@ -53,6 +55,8 @@ android:id="@+id/media_cover1" android:layout_width="match_parent" android:layout_height="match_parent" + android:minWidth="@dimen/qs_media_rec_album_size" + android:minHeight="@dimen/qs_media_rec_album_size" app:layout_constraintTop_toTopOf="parent" app:layout_constraintBottom_toBottomOf="parent" android:adjustViewBounds="true" @@ -80,6 +84,8 @@ android:id="@+id/media_cover2" android:layout_width="match_parent" android:layout_height="match_parent" + android:minWidth="@dimen/qs_media_rec_album_size" + android:minHeight="@dimen/qs_media_rec_album_size" android:adjustViewBounds="true" android:background="@drawable/bg_smartspace_media_item" style="@style/MediaPlayer.Recommendation.Album" @@ -105,6 +111,8 @@ android:id="@+id/media_cover3" android:layout_width="match_parent" android:layout_height="match_parent" + android:minWidth="@dimen/qs_media_rec_album_size" + android:minHeight="@dimen/qs_media_rec_album_size" android:adjustViewBounds="true" android:background="@drawable/bg_smartspace_media_item" style="@style/MediaPlayer.Recommendation.Album" diff --git a/packages/SystemUI/res/values/dimens.xml b/packages/SystemUI/res/values/dimens.xml index 262086f43d890..faabf98715891 100644 --- a/packages/SystemUI/res/values/dimens.xml +++ b/packages/SystemUI/res/values/dimens.xml @@ -1102,6 +1102,7 @@ 16dp + 16dp 88dp 110dp 108dp diff --git a/packages/SystemUI/res/values/styles.xml b/packages/SystemUI/res/values/styles.xml index 58b0234023ae0..1da1a294f9ba8 100644 --- a/packages/SystemUI/res/values/styles.xml +++ b/packages/SystemUI/res/values/styles.xml @@ -699,6 +699,8 @@ diff --git a/packages/SystemUI/src/com/android/systemui/media/controls/ui/MediaControlPanel.java b/packages/SystemUI/src/com/android/systemui/media/controls/ui/MediaControlPanel.java index 638c4c408bb1b..e21663ad39805 100644 --- a/packages/SystemUI/src/com/android/systemui/media/controls/ui/MediaControlPanel.java +++ b/packages/SystemUI/src/com/android/systemui/media/controls/ui/MediaControlPanel.java @@ -1370,7 +1370,8 @@ public class MediaControlPanel { itemIndex ); } else { - mediaCoverImageView.setImageIcon(recommendation.getIcon()); + mediaCoverImageView.post( + () -> mediaCoverImageView.setImageIcon(recommendation.getIcon())); } // Set up the media item's click listener if applicable.