diff options
| author | 2023-03-16 19:13:44 +0000 | |
|---|---|---|
| committer | 2023-03-16 21:21:10 +0000 | |
| commit | a08adafba9207eebb044dc605469853c85a11072 (patch) | |
| tree | 2dec7bdccf0c12646a993ee0d5a6eb3bf9356260 | |
| parent | 16685036c752c6e3d33cf43e3dba2d2feccf5753 (diff) | |
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
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 a4aeba1dbcd6..e63aa211f9f1 100644 --- a/packages/SystemUI/res/layout/media_recommendation_view.xml +++ b/packages/SystemUI/res/layout/media_recommendation_view.xml @@ -31,8 +31,10 @@ <!-- App icon --> <com.android.internal.widget.CachingIconView android:id="@+id/media_rec_app_icon" - android:layout_width="@dimen/qs_media_rec_icon_top_margin" - android:layout_height="@dimen/qs_media_rec_icon_top_margin" + android:layout_width="@dimen/qs_media_rec_album_icon_size" + android:layout_height="@dimen/qs_media_rec_album_icon_size" + android:minWidth="@dimen/qs_media_rec_album_icon_size" + android:minHeight="@dimen/qs_media_rec_album_icon_size" android:layout_marginStart="@dimen/qs_media_info_spacing" android:layout_marginTop="@dimen/qs_media_info_spacing"/> diff --git a/packages/SystemUI/res/layout/media_smartspace_recommendations.xml b/packages/SystemUI/res/layout/media_smartspace_recommendations.xml index aa655e6b3564..9304ff72f054 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 262086f43d89..faabf9871589 100644 --- a/packages/SystemUI/res/values/dimens.xml +++ b/packages/SystemUI/res/values/dimens.xml @@ -1102,6 +1102,7 @@ <!-- Size of Smartspace media recommendations cards in the QSPanel carousel --> <dimen name="qs_media_rec_icon_top_margin">16dp</dimen> + <dimen name="qs_media_rec_album_icon_size">16dp</dimen> <dimen name="qs_media_rec_album_size">88dp</dimen> <dimen name="qs_media_rec_album_width">110dp</dimen> <dimen name="qs_media_rec_album_height_expanded">108dp</dimen> diff --git a/packages/SystemUI/res/values/styles.xml b/packages/SystemUI/res/values/styles.xml index 58b0234023ae..1da1a294f9ba 100644 --- a/packages/SystemUI/res/values/styles.xml +++ b/packages/SystemUI/res/values/styles.xml @@ -699,6 +699,8 @@ <style name="MediaPlayer.Recommendation.AlbumContainer.Updated"> <item name="android:layout_width">@dimen/qs_media_rec_album_width</item> + <item name="android:minWidth">@dimen/qs_media_rec_album_width</item> + <item name="android:minHeight">@dimen/qs_media_rec_album_height_collapsed</item> <item name="android:background">@drawable/qs_media_light_source</item> <item name="android:layout_marginTop">@dimen/qs_media_info_spacing</item> </style> 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 638c4c408bb1..e21663ad3980 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. |