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
This commit is contained in:
Michael Mikhail
2023-03-16 19:13:44 +00:00
parent 16685036c7
commit a08adafba9
5 changed files with 17 additions and 3 deletions

View File

@@ -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"/>

View File

@@ -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"

View File

@@ -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>

View File

@@ -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>

View File

@@ -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.