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:
committed by
Android (Google) Code Review
commit
4a93e580d1
@@ -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>
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user