summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Michael Mikhail <michaelmikhil@google.com> 2023-03-16 19:13:44 +0000
committer Michael Mikhail <michaelmikhil@google.com> 2023-03-16 21:21:10 +0000
commita08adafba9207eebb044dc605469853c85a11072 (patch)
tree2dec7bdccf0c12646a993ee0d5a6eb3bf9356260
parent16685036c752c6e3d33cf43e3dba2d2feccf5753 (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
-rw-r--r--packages/SystemUI/res/layout/media_recommendation_view.xml6
-rw-r--r--packages/SystemUI/res/layout/media_smartspace_recommendations.xml8
-rw-r--r--packages/SystemUI/res/values/dimens.xml1
-rw-r--r--packages/SystemUI/res/values/styles.xml2
-rw-r--r--packages/SystemUI/src/com/android/systemui/media/controls/ui/MediaControlPanel.java3
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.