Merge "[Media Recs] Some updates to smartspace recommendations layout: - Only show 3 albums instead of 6 - Remove padding from app icon - Update various sizes" into tm-dev

This commit is contained in:
TreeHugger Robot
2022-04-14 18:07:07 +00:00
committed by Android (Google) Code Review
8 changed files with 75 additions and 376 deletions

View File

@@ -22,160 +22,87 @@
android:id="@+id/media_recommendations" android:id="@+id/media_recommendations"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:paddingStart="@dimen/qs_media_padding"
android:paddingEnd="@dimen/qs_media_padding"
android:clipChildren="false" android:clipChildren="false"
android:clipToPadding="false" android:clipToPadding="false"
android:forceHasOverlappingRendering="false" android:forceHasOverlappingRendering="false"
android:background="@drawable/qs_media_background" android:background="@drawable/qs_media_background"
android:theme="@style/MediaPlayer"> android:theme="@style/MediaPlayer">
<androidx.constraintlayout.widget.Guideline <!-- This view just ensures the full media player is a certain height. -->
android:id="@+id/media_vertical_start_guideline" <View
android:layout_width="wrap_content" android:id="@+id/sizing_view"
android:layout_height="wrap_content" android:layout_width="match_parent"
android:orientation="vertical" android:layout_height="@dimen/qs_media_session_height_expanded" />
app:layout_constraintGuide_percent="0.25" />
<androidx.constraintlayout.widget.Guideline
android:id="@+id/media_horizontal_center_guideline"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintGuide_percent="0.5" />
<com.android.internal.widget.CachingIconView <com.android.internal.widget.CachingIconView
android:id="@+id/recommendation_card_icon" android:id="@+id/recommendation_card_icon"
android:layout_width="@dimen/qs_media_icon_size" style="@style/MediaPlayer.Recommendation.AppIcon" />
android:layout_height="@dimen/qs_media_icon_size"
android:layout_marginTop="@dimen/qs_media_padding"
android:src="@drawable/ic_headset"
style="@style/MediaPlayer.AppIcon"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toStartOf="@id/media_vertical_start_guideline"
app:layout_constraintHorizontal_bias="0"/>
<TextView
android:id="@+id/recommendation_card_text"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:maxLines="1"
android:text="@string/controls_media_smartspace_rec_title"
android:fontFamily="google-sans-medium"
android:textDirection="locale"
android:textSize="@dimen/qq_aa_media_rec_header_text_size"
android:hyphenationFrequency="none"
app:layout_constraintTop_toBottomOf="@id/recommendation_card_icon"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toStartOf="@id/media_vertical_start_guideline"
app:layout_constraintHorizontal_bias="0"/>
<View
android:id="@+id/recommendation_gradient_view"
android:layout_width="@dimen/qs_aa_media_gradient_bg_width"
android:layout_height="0dp"
android:clipToPadding="false"
android:clipChildren="false"
android:background="@drawable/qs_media_recommendation_bg_gradient"
app:layout_constraintTop_toTopOf="@id/recommendation_card_text"
app:layout_constraintBottom_toBottomOf="@id/recommendation_card_text"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toStartOf="@id/media_vertical_start_guideline"
app:layout_constraintHorizontal_bias="1"/>
<FrameLayout <FrameLayout
android:id="@+id/media_cover1_container" android:id="@+id/media_cover1_container"
android:layout_width="0dp" style="@style/MediaPlayer.Recommendation.AlbumContainer"
android:layout_height="@dimen/qs_aa_media_rec_album_size_collapsed" app:layout_constraintTop_toTopOf="parent"
android:background="@drawable/qs_media_light_source"> 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"
>
<ImageView <ImageView
android:id="@+id/media_cover1" android:id="@+id/media_cover1"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
android:adjustViewBounds="true" android:adjustViewBounds="true"
android:background="@drawable/bg_smartspace_media_item" android:background="@drawable/bg_smartspace_media_item"
style="@style/MediaPlayer.Album" style="@style/MediaPlayer.Recommendation.Album"
android:clipToOutline="true" android:clipToOutline="true"
android:scaleType="centerCrop"/> android:scaleType="centerCrop"/>
</FrameLayout> </FrameLayout>
<!-- TODO(b/223603970): Add title and subtitle below each album cover. -->
<FrameLayout <FrameLayout
android:id="@+id/media_cover2_container" android:id="@+id/media_cover2_container"
android:layout_width="0dp" style="@style/MediaPlayer.Recommendation.AlbumContainer"
android:layout_height="@dimen/qs_aa_media_rec_album_size_collapsed" app:layout_constraintTop_toTopOf="parent"
android:background="@drawable/qs_media_light_source"> 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"
>
<ImageView <ImageView
android:id="@+id/media_cover2" android:id="@+id/media_cover2"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:adjustViewBounds="true" android:adjustViewBounds="true"
android:background="@drawable/bg_smartspace_media_item" android:background="@drawable/bg_smartspace_media_item"
style="@style/MediaPlayer.Album" style="@style/MediaPlayer.Recommendation.Album"
android:clipToOutline="true" android:clipToOutline="true"
android:scaleType="centerCrop"/> android:scaleType="centerCrop"/>
</FrameLayout> </FrameLayout>
<FrameLayout <FrameLayout
android:id="@+id/media_cover3_container" android:id="@+id/media_cover3_container"
android:layout_width="0dp" style="@style/MediaPlayer.Recommendation.AlbumContainer"
android:layout_height="@dimen/qs_aa_media_rec_album_size_collapsed" app:layout_constraintTop_toTopOf="parent"
android:background="@drawable/qs_media_light_source"> 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"
>
<ImageView <ImageView
android:id="@+id/media_cover3" android:id="@+id/media_cover3"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:adjustViewBounds="true" android:adjustViewBounds="true"
android:background="@drawable/bg_smartspace_media_item" android:background="@drawable/bg_smartspace_media_item"
style="@style/MediaPlayer.Album" style="@style/MediaPlayer.Recommendation.Album"
android:clipToOutline="true"
android:scaleType="centerCrop"/>
</FrameLayout>
<FrameLayout
android:id="@+id/media_cover4_container"
android:layout_width="0dp"
android:layout_height="@dimen/qs_aa_media_rec_album_size_collapsed"
android:background="@drawable/qs_media_light_source">
<ImageView
android:id="@+id/media_cover4"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:adjustViewBounds="true"
android:background="@drawable/bg_smartspace_media_item"
style="@style/MediaPlayer.Album"
android:clipToOutline="true"
android:scaleType="centerCrop"/>
</FrameLayout>
<FrameLayout
android:id="@+id/media_cover5_container"
android:layout_width="0dp"
android:layout_height="@dimen/qs_aa_media_rec_album_size_collapsed"
android:background="@drawable/qs_media_light_source">
<ImageView
android:id="@+id/media_cover5"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:adjustViewBounds="true"
android:background="@drawable/bg_smartspace_media_item"
style="@style/MediaPlayer.Album"
android:clipToOutline="true"
android:scaleType="centerCrop"/>
</FrameLayout>
<FrameLayout
android:id="@+id/media_cover6_container"
android:layout_width="0dp"
android:layout_height="@dimen/qs_aa_media_rec_album_size_collapsed"
android:background="@drawable/qs_media_light_source">
<ImageView
android:id="@+id/media_cover6"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:adjustViewBounds="true"
android:background="@drawable/bg_smartspace_media_item"
style="@style/MediaPlayer.Album"
android:clipToOutline="true" android:clipToOutline="true"
android:scaleType="centerCrop"/> android:scaleType="centerCrop"/>
</FrameLayout> </FrameLayout>
@@ -273,4 +200,4 @@
android:text="@string/controls_media_dismiss_button" android:text="@string/controls_media_dismiss_button"
/> />
</FrameLayout> </FrameLayout>
</com.android.systemui.util.animation.TransitionLayout> </com.android.systemui.util.animation.TransitionLayout>

View File

@@ -959,7 +959,6 @@
<dimen name="qs_media_album_radius">14dp</dimen> <dimen name="qs_media_album_radius">14dp</dimen>
<dimen name="qs_media_info_margin">12dp</dimen> <dimen name="qs_media_info_margin">12dp</dimen>
<dimen name="qs_media_info_spacing">8dp</dimen> <dimen name="qs_media_info_spacing">8dp</dimen>
<dimen name="qs_media_icon_size">20dp</dimen>
<dimen name="qs_media_icon_offset">4dp</dimen> <dimen name="qs_media_icon_offset">4dp</dimen>
<dimen name="qs_center_guideline_padding">10dp</dimen> <dimen name="qs_center_guideline_padding">10dp</dimen>
<dimen name="qs_media_action_spacing">4dp</dimen> <dimen name="qs_media_action_spacing">4dp</dimen>
@@ -980,12 +979,9 @@
<dimen name="qs_media_session_collapsed_guideline">144dp</dimen> <dimen name="qs_media_session_collapsed_guideline">144dp</dimen>
<!-- Size of Smartspace media recommendations cards in the QSPanel carousel --> <!-- Size of Smartspace media recommendations cards in the QSPanel carousel -->
<dimen name="qs_aa_media_rec_album_size_collapsed">72dp</dimen> <dimen name="qs_media_rec_album_size">88dp</dimen>
<dimen name="qs_aa_media_rec_album_size_expanded">76dp</dimen> <dimen name="qs_media_rec_album_margin">16dp</dimen>
<dimen name="qs_aa_media_gradient_bg_width">32dp</dimen> <dimen name="qs_media_rec_icon_size">24dp</dimen>
<dimen name="qs_aa_media_rec_album_margin">8dp</dimen>
<dimen name="qs_aa_media_rec_album_margin_vert">4dp</dimen>
<dimen name="qq_aa_media_rec_header_text_size">16sp</dimen>
<!-- Media tap-to-transfer chip for sender device --> <!-- Media tap-to-transfer chip for sender device -->
<dimen name="media_ttt_chip_outer_padding">16dp</dimen> <dimen name="media_ttt_chip_outer_padding">16dp</dimen>

View File

@@ -653,13 +653,29 @@
<item name="android:textColor">?android:attr/textColorPrimary</item> <item name="android:textColor">?android:attr/textColorPrimary</item>
</style> </style>
<style name="MediaPlayer.AppIcon"> <style name="MediaPlayer.Recommendation"/>
<style name="MediaPlayer.Recommendation.AppIcon">
<item name="android:background">@drawable/qs_media_icon_background</item> <item name="android:background">@drawable/qs_media_icon_background</item>
<item name="android:backgroundTint">@color/media_player_solid_button_bg</item> <item name="android:backgroundTint">@color/media_player_solid_button_bg</item>
<item name="android:padding">4dp</item> <item name="android:layout_width">@dimen/qs_media_rec_icon_size</item>
<item name="android:layout_height">@dimen/qs_media_rec_icon_size</item>
<item name="layout_constraintTop_toTopOf">parent</item>
<item name="layout_constraintStart_toStartOf">parent</item>
<item name="android:layout_marginTop">@dimen/qs_media_padding</item>
<item name="android:layout_marginStart">@dimen/qs_media_padding</item>
<item name="android:src">@drawable/ic_headset</item>
</style> </style>
<style name="MediaPlayer.Album"> <style name="MediaPlayer.Recommendation.AlbumContainer">
<item name="android:layout_width">@dimen/qs_media_rec_album_size</item>
<item name="android:layout_height">@dimen/qs_media_rec_album_size</item>
<item name="android:background">@drawable/qs_media_light_source</item>
<item name="android:layout_marginTop">@dimen/qs_media_padding</item>
<item name="android:layout_marginBottom">@dimen/qs_media_padding</item>
</style>
<style name="MediaPlayer.Recommendation.Album">
<item name="android:backgroundTint">@color/media_player_album_bg</item> <item name="android:backgroundTint">@color/media_player_album_bg</item>
</style> </style>

View File

@@ -15,92 +15,12 @@
~ limitations under the License ~ limitations under the License
--> -->
<ConstraintSet <ConstraintSet
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:android="http://schemas.android.com/apk/res/android" >
xmlns:app="http://schemas.android.com/apk/res-auto">
<Constraint <Constraint
android:id="@+id/media_cover1_container" android:id="@+id/sizing_view"
android:layout_width="0dp" android:layout_width="match_parent"
android:layout_height="@dimen/qs_aa_media_rec_album_size_collapsed" android:layout_height="@dimen/qs_media_session_height_collapsed"
app:layout_constraintWidth_max="@dimen/qs_aa_media_rec_album_size_collapsed" />
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
android:layout_marginTop="@dimen/qs_media_padding"
android:layout_marginBottom="@dimen/qs_media_padding"
android:layout_marginEnd="@dimen/qs_aa_media_rec_album_margin"
app:layout_constraintStart_toEndOf="@id/media_vertical_start_guideline"
app:layout_constraintEnd_toStartOf="@id/media_cover2_container"
app:layout_constraintHorizontal_chainStyle="packed"
app:layout_constraintHorizontal_bias="1"
android:visibility="gone" />
<Constraint
android:id="@+id/media_cover2_container"
android:layout_width="0dp"
android:layout_height="@dimen/qs_aa_media_rec_album_size_collapsed"
app:layout_constraintWidth_max="@dimen/qs_aa_media_rec_album_size_collapsed"
android:layout_marginTop="@dimen/qs_media_padding"
android:layout_marginBottom="@dimen/qs_media_padding"
android:layout_marginEnd="@dimen/qs_aa_media_rec_album_margin"
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"
app:layout_constraintHorizontal_chainStyle="packed"
app:layout_constraintHorizontal_bias="1"
android:visibility="gone" />
<Constraint
android:id="@+id/media_cover3_container"
android:layout_width="0dp"
android:layout_height="@dimen/qs_aa_media_rec_album_size_collapsed"
app:layout_constraintWidth_max="@dimen/qs_aa_media_rec_album_size_collapsed"
android:layout_marginTop="@dimen/qs_media_padding"
android:layout_marginBottom="@dimen/qs_media_padding"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toEndOf="@id/media_cover2_container"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_chainStyle="packed"
app:layout_constraintHorizontal_bias="1"
android:visibility="gone" />
<Constraint
android:id="@+id/media_cover4_container"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginEnd="@dimen/qs_aa_media_rec_album_margin"
app:layout_constraintTop_toBottomOf="@+id/media_cover1_container"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toEndOf="@id/media_vertical_start_guideline"
app:layout_constraintEnd_toStartOf="@id/media_cover5_container"
app:layout_constraintHorizontal_chainStyle="packed"
app:layout_constraintHorizontal_bias="1"
android:visibility="gone" />
<Constraint
android:id="@+id/media_cover5_container"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginEnd="@dimen/qs_aa_media_rec_album_margin"
app:layout_constraintTop_toBottomOf="@+id/media_cover2_container"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toEndOf="@+id/media_cover4_container"
app:layout_constraintEnd_toStartOf="@+id/media_cover6_container"
app:layout_constraintHorizontal_chainStyle="packed"
app:layout_constraintHorizontal_bias="1"
android:visibility="gone" />
<Constraint
android:id="@+id/media_cover6_container"
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintTop_toBottomOf="@id/media_cover3_container"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toEndOf="@id/media_cover5_container"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_chainStyle="packed"
app:layout_constraintHorizontal_bias="1"
android:visibility="gone" />
</ConstraintSet> </ConstraintSet>

View File

@@ -15,113 +15,12 @@
~ limitations under the License ~ limitations under the License
--> -->
<ConstraintSet <ConstraintSet
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:android="http://schemas.android.com/apk/res/android" >
xmlns:app="http://schemas.android.com/apk/res-auto">
<Constraint <Constraint
android:id="@+id/media_cover1_container" android:id="@+id/sizing_view"
android:layout_width="0dp" android:layout_width="match_parent"
android:layout_height="@dimen/qs_aa_media_rec_album_size_expanded" android:layout_height="@dimen/qs_media_session_height_expanded"
app:layout_constraintWidth_max="@dimen/qs_aa_media_rec_album_size_expanded" />
android:layout_marginTop="@dimen/qs_media_padding"
android:layout_marginBottom="@dimen/qs_aa_media_rec_album_margin_vert"
android:layout_marginEnd="@dimen/qs_aa_media_rec_album_margin"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toTopOf="@+id/media_horizontal_center_guideline"
app:layout_constraintStart_toEndOf="@id/media_vertical_start_guideline"
app:layout_constraintEnd_toStartOf="@id/media_cover2_container"
app:layout_constraintHorizontal_chainStyle="packed"
app:layout_constraintHorizontal_bias="1"
app:layout_constraintVertical_chainStyle="packed"
app:layout_constraintVertical_bias="0"
android:visibility="gone" />
<Constraint
android:id="@+id/media_cover2_container"
android:layout_width="0dp"
android:layout_height="@dimen/qs_aa_media_rec_album_size_expanded"
app:layout_constraintWidth_max="@dimen/qs_aa_media_rec_album_size_expanded"
android:layout_marginTop="@dimen/qs_media_padding"
android:layout_marginBottom="@dimen/qs_aa_media_rec_album_margin_vert"
android:layout_marginEnd="@dimen/qs_aa_media_rec_album_margin"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toTopOf="@+id/media_horizontal_center_guideline"
app:layout_constraintStart_toEndOf="@id/media_cover1_container"
app:layout_constraintEnd_toStartOf="@id/media_cover3_container"
app:layout_constraintHorizontal_chainStyle="packed"
app:layout_constraintHorizontal_bias="1"
app:layout_constraintVertical_chainStyle="packed"
app:layout_constraintVertical_bias="0"
android:visibility="gone" />
<Constraint
android:id="@+id/media_cover3_container"
android:layout_width="0dp"
android:layout_height="@dimen/qs_aa_media_rec_album_size_expanded"
app:layout_constraintWidth_max="@dimen/qs_aa_media_rec_album_size_expanded"
android:layout_marginTop="@dimen/qs_media_padding"
android:layout_marginBottom="@dimen/qs_aa_media_rec_album_margin_vert"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toTopOf="@+id/media_horizontal_center_guideline"
app:layout_constraintStart_toEndOf="@id/media_cover2_container"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_chainStyle="packed"
app:layout_constraintHorizontal_bias="1"
app:layout_constraintVertical_chainStyle="packed"
app:layout_constraintVertical_bias="0"
android:visibility="gone" />
<Constraint
android:id="@+id/media_cover4_container"
android:layout_width="0dp"
android:layout_height="@dimen/qs_aa_media_rec_album_size_expanded"
app:layout_constraintWidth_max="@dimen/qs_aa_media_rec_album_size_expanded"
android:layout_marginTop="@dimen/qs_aa_media_rec_album_margin_vert"
android:layout_marginBottom="@dimen/qs_media_padding"
android:layout_marginEnd="@dimen/qs_aa_media_rec_album_margin"
app:layout_constraintTop_toBottomOf="@+id/media_horizontal_center_guideline"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toEndOf="@id/media_vertical_start_guideline"
app:layout_constraintEnd_toStartOf="@id/media_cover5_container"
app:layout_constraintHorizontal_chainStyle="packed"
app:layout_constraintHorizontal_bias="1"
app:layout_constraintVertical_chainStyle="packed"
app:layout_constraintVertical_bias="1"
android:visibility="gone" />
<Constraint
android:id="@+id/media_cover5_container"
android:layout_width="0dp"
android:layout_height="@dimen/qs_aa_media_rec_album_size_expanded"
app:layout_constraintWidth_max="@dimen/qs_aa_media_rec_album_size_expanded"
android:layout_marginTop="@dimen/qs_aa_media_rec_album_margin_vert"
android:layout_marginBottom="@dimen/qs_media_padding"
android:layout_marginEnd="@dimen/qs_aa_media_rec_album_margin"
app:layout_constraintTop_toBottomOf="@+id/media_horizontal_center_guideline"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toEndOf="@+id/media_cover4_container"
app:layout_constraintEnd_toStartOf="@+id/media_cover6_container"
app:layout_constraintHorizontal_chainStyle="packed"
app:layout_constraintHorizontal_bias="1"
app:layout_constraintVertical_chainStyle="packed"
app:layout_constraintVertical_bias="1"
android:visibility="gone" />
<Constraint
android:id="@+id/media_cover6_container"
android:layout_width="0dp"
android:layout_height="@dimen/qs_aa_media_rec_album_size_expanded"
app:layout_constraintWidth_max="@dimen/qs_aa_media_rec_album_size_expanded"
android:layout_marginTop="@dimen/qs_aa_media_rec_album_margin_vert"
android:layout_marginBottom="@dimen/qs_media_padding"
app:layout_constraintTop_toBottomOf="@id/media_horizontal_center_guideline"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toEndOf="@id/media_cover5_container"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_chainStyle="packed"
app:layout_constraintHorizontal_bias="1"
app:layout_constraintVertical_chainStyle="packed"
app:layout_constraintVertical_bias="1"
android:visibility="gone" />
</ConstraintSet> </ConstraintSet>

View File

@@ -100,8 +100,7 @@ public class MediaControlPanel {
+ ".android.apps.gsa.staticplugins.opa.smartspace.ExportedSmartspaceTrampolineActivity"; + ".android.apps.gsa.staticplugins.opa.smartspace.ExportedSmartspaceTrampolineActivity";
private static final String EXTRAS_SMARTSPACE_INTENT = private static final String EXTRAS_SMARTSPACE_INTENT =
"com.google.android.apps.gsa.smartspace.extra.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 = 3;
private static final int MEDIA_RECOMMENDATION_MAX_NUM = 6;
private static final String KEY_SMARTSPACE_ARTIST_NAME = "artist_name"; 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_OPEN_IN_FOREGROUND = "KEY_OPEN_IN_FOREGROUND";
private static final String KEY_SMARTSPACE_APP_NAME = "KEY_SMARTSPACE_APP_NAME"; private static final String KEY_SMARTSPACE_APP_NAME = "KEY_SMARTSPACE_APP_NAME";
@@ -1001,11 +1000,6 @@ public class MediaControlPanel {
appName = packageManager.getApplicationLabel(applicationInfo); 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. // Set up media rec card's tap action if applicable.
setSmartspaceRecItemOnClickListener(recommendationCard, data.getCardAction(), setSmartspaceRecItemOnClickListener(recommendationCard, data.getCardAction(),
@@ -1016,11 +1010,6 @@ public class MediaControlPanel {
List<ImageView> mediaCoverItems = mRecommendationViewHolder.getMediaCoverItems(); List<ImageView> mediaCoverItems = mRecommendationViewHolder.getMediaCoverItems();
List<ViewGroup> mediaCoverContainers = mRecommendationViewHolder.getMediaCoverContainers(); List<ViewGroup> mediaCoverContainers = mRecommendationViewHolder.getMediaCoverContainers();
List<Integer> mediaCoverItemsResIds = mRecommendationViewHolder.getMediaCoverItemsResIds();
List<Integer> mediaCoverContainersResIds =
mRecommendationViewHolder.getMediaCoverContainersResIds();
ConstraintSet expandedSet = mMediaViewController.getExpandedLayout();
ConstraintSet collapsedSet = mMediaViewController.getCollapsedLayout();
int mediaRecommendationNum = Math.min(mediaRecommendationList.size(), int mediaRecommendationNum = Math.min(mediaRecommendationList.size(),
MEDIA_RECOMMENDATION_MAX_NUM); MEDIA_RECOMMENDATION_MAX_NUM);
int uiComponentIndex = 0; int uiComponentIndex = 0;
@@ -1065,21 +1054,6 @@ public class MediaControlPanel {
recommendation.getTitle(), artistName, appName)); 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++; uiComponentIndex++;
} }

View File

@@ -31,35 +31,14 @@ class RecommendationViewHolder private constructor(itemView: View) {
// Recommendation screen // Recommendation screen
val cardIcon = itemView.requireViewById<ImageView>(R.id.recommendation_card_icon) val cardIcon = itemView.requireViewById<ImageView>(R.id.recommendation_card_icon)
val cardText = itemView.requireViewById<TextView>(R.id.recommendation_card_text)
val mediaCoverItems = listOf<ImageView>( val mediaCoverItems = listOf<ImageView>(
itemView.requireViewById(R.id.media_cover1), itemView.requireViewById(R.id.media_cover1),
itemView.requireViewById(R.id.media_cover2), itemView.requireViewById(R.id.media_cover2),
itemView.requireViewById(R.id.media_cover3), itemView.requireViewById(R.id.media_cover3))
itemView.requireViewById(R.id.media_cover4),
itemView.requireViewById(R.id.media_cover5),
itemView.requireViewById(R.id.media_cover6))
val mediaCoverContainers = listOf<ViewGroup>( val mediaCoverContainers = listOf<ViewGroup>(
itemView.requireViewById(R.id.media_cover1_container), itemView.requireViewById(R.id.media_cover1_container),
itemView.requireViewById(R.id.media_cover2_container), itemView.requireViewById(R.id.media_cover2_container),
itemView.requireViewById(R.id.media_cover3_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<Int>(
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<Int>(
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)
// Settings/Guts screen // Settings/Guts screen
val longPressText = itemView.requireViewById<TextView>(R.id.remove_text) val longPressText = itemView.requireViewById<TextView>(R.id.remove_text)
@@ -107,19 +86,12 @@ class RecommendationViewHolder private constructor(itemView: View) {
// Res Ids for the control components on the recommendation view. // Res Ids for the control components on the recommendation view.
val controlsIds = setOf( val controlsIds = setOf(
R.id.recommendation_card_icon, R.id.recommendation_card_icon,
R.id.recommendation_card_text,
R.id.media_cover1, R.id.media_cover1,
R.id.media_cover2, R.id.media_cover2,
R.id.media_cover3, R.id.media_cover3,
R.id.media_cover4,
R.id.media_cover5,
R.id.media_cover6,
R.id.media_cover1_container, R.id.media_cover1_container,
R.id.media_cover2_container, R.id.media_cover2_container,
R.id.media_cover3_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. // Res Ids for the components on the guts panel.

View File

@@ -373,17 +373,12 @@ public class MediaControlPanelTest : SysuiTestCase() {
private fun initRecommendationViewHolderMocks() { private fun initRecommendationViewHolderMocks() {
whenever(recommendationViewHolder.recommendations).thenReturn(view) whenever(recommendationViewHolder.recommendations).thenReturn(view)
whenever(recommendationViewHolder.cardIcon).thenReturn(appIcon) whenever(recommendationViewHolder.cardIcon).thenReturn(appIcon)
whenever(recommendationViewHolder.cardText).thenReturn(titleText)
// Add a recommendation item // Add a recommendation item
coverItem = ImageView(context).also { it.setId(R.id.media_cover1) } coverItem = ImageView(context).also { it.setId(R.id.media_cover1) }
whenever(coverContainer.id).thenReturn(R.id.media_cover1_container) whenever(coverContainer.id).thenReturn(R.id.media_cover1_container)
whenever(recommendationViewHolder.mediaCoverItems).thenReturn(listOf(coverItem)) whenever(recommendationViewHolder.mediaCoverItems).thenReturn(listOf(coverItem))
whenever(recommendationViewHolder.mediaCoverContainers).thenReturn(listOf(coverContainer)) 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 // Long press menu
whenever(recommendationViewHolder.settings).thenReturn(settings) whenever(recommendationViewHolder.settings).thenReturn(settings)