From 09b9a643e7c79881db4561bf5c0ec42fd0712d33 Mon Sep 17 00:00:00 2001 From: Caitlin Cassidy Date: Fri, 8 Apr 2022 12:39:55 +0000 Subject: [PATCH] [Media Recs] Some updates to smartspace recommendations layout: - Only show 3 albums instead of 6 - Remove padding from app icon - Update various sizes This updates both the expanded and collapsed layouts. Bug: 223603970 Test: manual (see bug comment for screenshot) Test: atest SystemUITests Change-Id: I5c22b38b6195658ae47c1a48289bac71d0f92567 --- .../media_smartspace_recommendations.xml | 153 +++++------------- packages/SystemUI/res/values/dimens.xml | 10 +- packages/SystemUI/res/values/styles.xml | 22 ++- .../xml/media_recommendation_collapsed.xml | 90 +---------- .../res/xml/media_recommendation_expanded.xml | 111 +------------ .../systemui/media/MediaControlPanel.java | 28 +--- .../media/RecommendationViewHolder.kt | 32 +--- .../systemui/media/MediaControlPanelTest.kt | 5 - 8 files changed, 75 insertions(+), 376 deletions(-) diff --git a/packages/SystemUI/res/layout/media_smartspace_recommendations.xml b/packages/SystemUI/res/layout/media_smartspace_recommendations.xml index c3fc66952395e..3c3bc63906f0c 100644 --- a/packages/SystemUI/res/layout/media_smartspace_recommendations.xml +++ b/packages/SystemUI/res/layout/media_smartspace_recommendations.xml @@ -22,160 +22,87 @@ android:id="@+id/media_recommendations" android:layout_width="match_parent" android:layout_height="wrap_content" - android:paddingStart="@dimen/qs_media_padding" - android:paddingEnd="@dimen/qs_media_padding" android:clipChildren="false" android:clipToPadding="false" android:forceHasOverlappingRendering="false" android:background="@drawable/qs_media_background" android:theme="@style/MediaPlayer"> - - - + + - - - - + style="@style/MediaPlayer.Recommendation.AppIcon" /> + style="@style/MediaPlayer.Recommendation.AlbumContainer" + app:layout_constraintTop_toTopOf="parent" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintEnd_toStartOf="@id/media_cover2_container" + android:layout_marginEnd="@dimen/qs_media_rec_album_margin" + app:layout_constraintHorizontal_chainStyle="packed" + app:layout_constraintHorizontal_bias="1.0" + app:layout_constraintVertical_bias="0.5" + > + + + style="@style/MediaPlayer.Recommendation.AlbumContainer" + app:layout_constraintTop_toTopOf="parent" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintStart_toEndOf="@id/media_cover1_container" + app:layout_constraintEnd_toStartOf="@id/media_cover3_container" + android:layout_marginEnd="@dimen/qs_media_rec_album_margin" + app:layout_constraintVertical_bias="0.5" + > + style="@style/MediaPlayer.Recommendation.AlbumContainer" + app:layout_constraintTop_toTopOf="parent" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintStart_toEndOf="@id/media_cover2_container" + app:layout_constraintEnd_toEndOf="parent" + android:layout_marginEnd="@dimen/qs_media_padding" + app:layout_constraintVertical_bias="0.5" + > - - - - - - - - - - - - @@ -273,4 +200,4 @@ android:text="@string/controls_media_dismiss_button" /> - \ No newline at end of file + diff --git a/packages/SystemUI/res/values/dimens.xml b/packages/SystemUI/res/values/dimens.xml index d148403171970..e65b61b233f5d 100644 --- a/packages/SystemUI/res/values/dimens.xml +++ b/packages/SystemUI/res/values/dimens.xml @@ -959,7 +959,6 @@ 14dp 12dp 8dp - 20dp 4dp 10dp 4dp @@ -980,12 +979,9 @@ 144dp - 72dp - 76dp - 32dp - 8dp - 4dp - 16sp + 88dp + 16dp + 24dp 16dp diff --git a/packages/SystemUI/res/values/styles.xml b/packages/SystemUI/res/values/styles.xml index d7799a7addd18..5c658947c3b08 100644 --- a/packages/SystemUI/res/values/styles.xml +++ b/packages/SystemUI/res/values/styles.xml @@ -653,13 +653,29 @@ ?android:attr/textColorPrimary - - + + diff --git a/packages/SystemUI/res/xml/media_recommendation_collapsed.xml b/packages/SystemUI/res/xml/media_recommendation_collapsed.xml index b6258d1c71eb2..c9d76870ebbde 100644 --- a/packages/SystemUI/res/xml/media_recommendation_collapsed.xml +++ b/packages/SystemUI/res/xml/media_recommendation_collapsed.xml @@ -15,92 +15,12 @@ ~ limitations under the License --> + xmlns:android="http://schemas.android.com/apk/res/android" > - - - - - - - - - - + android:id="@+id/sizing_view" + android:layout_width="match_parent" + android:layout_height="@dimen/qs_media_session_height_collapsed" + /> diff --git a/packages/SystemUI/res/xml/media_recommendation_expanded.xml b/packages/SystemUI/res/xml/media_recommendation_expanded.xml index 2fb33415e0dff..09ffebb8b4a9a 100644 --- a/packages/SystemUI/res/xml/media_recommendation_expanded.xml +++ b/packages/SystemUI/res/xml/media_recommendation_expanded.xml @@ -15,113 +15,12 @@ ~ limitations under the License --> + xmlns:android="http://schemas.android.com/apk/res/android" > - - - - - - - - - - + android:id="@+id/sizing_view" + android:layout_width="match_parent" + android:layout_height="@dimen/qs_media_session_height_expanded" + /> diff --git a/packages/SystemUI/src/com/android/systemui/media/MediaControlPanel.java b/packages/SystemUI/src/com/android/systemui/media/MediaControlPanel.java index 1b6d1d5825da2..79ec0682d0439 100644 --- a/packages/SystemUI/src/com/android/systemui/media/MediaControlPanel.java +++ b/packages/SystemUI/src/com/android/systemui/media/MediaControlPanel.java @@ -97,8 +97,7 @@ public class MediaControlPanel { + ".android.apps.gsa.staticplugins.opa.smartspace.ExportedSmartspaceTrampolineActivity"; private static final String EXTRAS_SMARTSPACE_INTENT = "com.google.android.apps.gsa.smartspace.extra.SMARTSPACE_INTENT"; - private static final int MEDIA_RECOMMENDATION_ITEMS_PER_ROW = 3; - private static final int MEDIA_RECOMMENDATION_MAX_NUM = 6; + private static final int MEDIA_RECOMMENDATION_MAX_NUM = 3; private static final String KEY_SMARTSPACE_ARTIST_NAME = "artist_name"; private static final String KEY_SMARTSPACE_OPEN_IN_FOREGROUND = "KEY_OPEN_IN_FOREGROUND"; private static final String KEY_SMARTSPACE_APP_NAME = "KEY_SMARTSPACE_APP_NAME"; @@ -968,11 +967,6 @@ public class MediaControlPanel { appName = packageManager.getApplicationLabel(applicationInfo); } } - // Set the app name as card's title. - if (!TextUtils.isEmpty(appName)) { - TextView headerTitleText = mRecommendationViewHolder.getCardText(); - headerTitleText.setText(appName); - } // Set up media rec card's tap action if applicable. setSmartspaceRecItemOnClickListener(recommendationCard, data.getCardAction(), @@ -983,11 +977,6 @@ public class MediaControlPanel { List mediaCoverItems = mRecommendationViewHolder.getMediaCoverItems(); List mediaCoverContainers = mRecommendationViewHolder.getMediaCoverContainers(); - List mediaCoverItemsResIds = mRecommendationViewHolder.getMediaCoverItemsResIds(); - List mediaCoverContainersResIds = - mRecommendationViewHolder.getMediaCoverContainersResIds(); - ConstraintSet expandedSet = mMediaViewController.getExpandedLayout(); - ConstraintSet collapsedSet = mMediaViewController.getCollapsedLayout(); int mediaRecommendationNum = Math.min(mediaRecommendationList.size(), MEDIA_RECOMMENDATION_MAX_NUM); int uiComponentIndex = 0; @@ -1032,21 +1021,6 @@ public class MediaControlPanel { recommendation.getTitle(), artistName, appName)); } - if (uiComponentIndex < MEDIA_RECOMMENDATION_ITEMS_PER_ROW) { - setVisibleAndAlpha(collapsedSet, - mediaCoverItemsResIds.get(uiComponentIndex), true); - setVisibleAndAlpha(collapsedSet, - mediaCoverContainersResIds.get(uiComponentIndex), true); - } else { - setVisibleAndAlpha(collapsedSet, - mediaCoverItemsResIds.get(uiComponentIndex), false); - setVisibleAndAlpha(collapsedSet, - mediaCoverContainersResIds.get(uiComponentIndex), false); - } - setVisibleAndAlpha(expandedSet, - mediaCoverItemsResIds.get(uiComponentIndex), true); - setVisibleAndAlpha(expandedSet, - mediaCoverContainersResIds.get(uiComponentIndex), true); uiComponentIndex++; } diff --git a/packages/SystemUI/src/com/android/systemui/media/RecommendationViewHolder.kt b/packages/SystemUI/src/com/android/systemui/media/RecommendationViewHolder.kt index c0f79d575dc67..b2acc92fb30d0 100644 --- a/packages/SystemUI/src/com/android/systemui/media/RecommendationViewHolder.kt +++ b/packages/SystemUI/src/com/android/systemui/media/RecommendationViewHolder.kt @@ -31,35 +31,14 @@ class RecommendationViewHolder private constructor(itemView: View) { // Recommendation screen val cardIcon = itemView.requireViewById(R.id.recommendation_card_icon) - val cardText = itemView.requireViewById(R.id.recommendation_card_text) val mediaCoverItems = listOf( itemView.requireViewById(R.id.media_cover1), itemView.requireViewById(R.id.media_cover2), - itemView.requireViewById(R.id.media_cover3), - itemView.requireViewById(R.id.media_cover4), - itemView.requireViewById(R.id.media_cover5), - itemView.requireViewById(R.id.media_cover6)) + itemView.requireViewById(R.id.media_cover3)) val mediaCoverContainers = listOf( itemView.requireViewById(R.id.media_cover1_container), itemView.requireViewById(R.id.media_cover2_container), - itemView.requireViewById(R.id.media_cover3_container), - itemView.requireViewById(R.id.media_cover4_container), - itemView.requireViewById(R.id.media_cover5_container), - itemView.requireViewById(R.id.media_cover6_container)) - val mediaCoverItemsResIds = listOf( - R.id.media_cover1, - R.id.media_cover2, - R.id.media_cover3, - R.id.media_cover4, - R.id.media_cover5, - R.id.media_cover6) - val mediaCoverContainersResIds = listOf( - R.id.media_cover1_container, - R.id.media_cover2_container, - R.id.media_cover3_container, - R.id.media_cover4_container, - R.id.media_cover5_container, - R.id.media_cover6_container) + itemView.requireViewById(R.id.media_cover3_container)) // Settings/Guts screen val longPressText = itemView.requireViewById(R.id.remove_text) @@ -107,19 +86,12 @@ class RecommendationViewHolder private constructor(itemView: View) { // Res Ids for the control components on the recommendation view. val controlsIds = setOf( R.id.recommendation_card_icon, - R.id.recommendation_card_text, R.id.media_cover1, R.id.media_cover2, R.id.media_cover3, - R.id.media_cover4, - R.id.media_cover5, - R.id.media_cover6, R.id.media_cover1_container, R.id.media_cover2_container, R.id.media_cover3_container, - R.id.media_cover4_container, - R.id.media_cover5_container, - R.id.media_cover6_container ) // Res Ids for the components on the guts panel. diff --git a/packages/SystemUI/tests/src/com/android/systemui/media/MediaControlPanelTest.kt b/packages/SystemUI/tests/src/com/android/systemui/media/MediaControlPanelTest.kt index a39ae6c231bda..f91132891cd22 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/media/MediaControlPanelTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/media/MediaControlPanelTest.kt @@ -363,17 +363,12 @@ public class MediaControlPanelTest : SysuiTestCase() { private fun initRecommendationViewHolderMocks() { whenever(recommendationViewHolder.recommendations).thenReturn(view) whenever(recommendationViewHolder.cardIcon).thenReturn(appIcon) - whenever(recommendationViewHolder.cardText).thenReturn(titleText) // Add a recommendation item coverItem = ImageView(context).also { it.setId(R.id.media_cover1) } whenever(coverContainer.id).thenReturn(R.id.media_cover1_container) whenever(recommendationViewHolder.mediaCoverItems).thenReturn(listOf(coverItem)) whenever(recommendationViewHolder.mediaCoverContainers).thenReturn(listOf(coverContainer)) - whenever(recommendationViewHolder.mediaCoverItemsResIds) - .thenReturn(listOf(R.id.media_cover1)) - whenever(recommendationViewHolder.mediaCoverContainersResIds) - .thenReturn(listOf(R.id.media_cover1_container)) // Long press menu whenever(recommendationViewHolder.settings).thenReturn(settings)