Merge "Update the media recommendation card UI for only showing recs from one app." into sc-dev
This commit is contained in:
@@ -46,117 +46,83 @@
|
||||
|
||||
<com.android.internal.widget.CachingIconView
|
||||
android:id="@+id/recommendation_card_icon"
|
||||
android:layout_width="@dimen/qs_aa_media_rec_header_icon_size"
|
||||
android:layout_height="@dimen/qs_aa_media_rec_header_icon_size"
|
||||
android:layout_width="@dimen/qs_media_icon_size"
|
||||
android:layout_height="@dimen/qs_media_icon_size"
|
||||
android:src="@drawable/ic_headset"
|
||||
android:tint="?android:attr/textColor" />
|
||||
style="@style/MediaPlayer.AppIcon"/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/recommendation_card_text"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:singleLine="true"
|
||||
android:maxLines="2"
|
||||
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:textSize="@dimen/qq_aa_media_rec_header_text_size"
|
||||
android:breakStrategy="balanced"
|
||||
android:hyphenationFrequency="none"/>
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/media_cover1"
|
||||
android:layout_width="@dimen/qs_aa_media_rec_album_size"
|
||||
android:layout_height="@dimen/qs_aa_media_rec_album_size"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="@dimen/qs_aa_media_rec_album_size_collapsed"
|
||||
android:adjustViewBounds="true"
|
||||
android:background="@drawable/bg_smartspace_media_item"
|
||||
style="@style/MediaPlayer.Album"
|
||||
android:clipToOutline="true"
|
||||
android:scaleType="centerCrop"/>
|
||||
|
||||
<com.android.internal.widget.CachingIconView
|
||||
android:id="@+id/media_logo1"
|
||||
android:layout_width="@dimen/qs_media_icon_size"
|
||||
android:layout_height="@dimen/qs_media_icon_size"
|
||||
style="@style/MediaPlayer.AppIcon" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/media_cover2"
|
||||
android:layout_width="@dimen/qs_aa_media_rec_album_size"
|
||||
android:layout_height="@dimen/qs_aa_media_rec_album_size"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="@dimen/qs_aa_media_rec_album_size_collapsed"
|
||||
android:adjustViewBounds="true"
|
||||
android:background="@drawable/bg_smartspace_media_item"
|
||||
style="@style/MediaPlayer.Album"
|
||||
android:clipToOutline="true"
|
||||
android:scaleType="centerCrop"/>
|
||||
|
||||
<com.android.internal.widget.CachingIconView
|
||||
android:id="@+id/media_logo2"
|
||||
android:layout_width="@dimen/qs_media_icon_size"
|
||||
android:layout_height="@dimen/qs_media_icon_size"
|
||||
style="@style/MediaPlayer.AppIcon" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/media_cover3"
|
||||
android:layout_width="@dimen/qs_aa_media_rec_album_size"
|
||||
android:layout_height="@dimen/qs_aa_media_rec_album_size"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="@dimen/qs_aa_media_rec_album_size_collapsed"
|
||||
android:adjustViewBounds="true"
|
||||
android:background="@drawable/bg_smartspace_media_item"
|
||||
style="@style/MediaPlayer.Album"
|
||||
android:clipToOutline="true"
|
||||
android:scaleType="centerCrop"/>
|
||||
|
||||
<com.android.internal.widget.CachingIconView
|
||||
android:id="@+id/media_logo3"
|
||||
android:layout_width="@dimen/qs_media_icon_size"
|
||||
android:layout_height="@dimen/qs_media_icon_size"
|
||||
style="@style/MediaPlayer.AppIcon" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/media_cover4"
|
||||
android:layout_width="@dimen/qs_aa_media_rec_album_size"
|
||||
android:layout_height="@dimen/qs_aa_media_rec_album_size"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="@dimen/qs_aa_media_rec_album_size_collapsed"
|
||||
android:adjustViewBounds="true"
|
||||
android:background="@drawable/bg_smartspace_media_item"
|
||||
style="@style/MediaPlayer.Album"
|
||||
android:clipToOutline="true"
|
||||
android:scaleType="centerCrop"/>
|
||||
|
||||
<com.android.internal.widget.CachingIconView
|
||||
android:id="@+id/media_logo4"
|
||||
android:layout_width="@dimen/qs_media_icon_size"
|
||||
android:layout_height="@dimen/qs_media_icon_size"
|
||||
style="@style/MediaPlayer.AppIcon" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/media_cover5"
|
||||
android:layout_width="@dimen/qs_aa_media_rec_album_size"
|
||||
android:layout_height="@dimen/qs_aa_media_rec_album_size"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="@dimen/qs_aa_media_rec_album_size_collapsed"
|
||||
android:adjustViewBounds="true"
|
||||
android:background="@drawable/bg_smartspace_media_item"
|
||||
style="@style/MediaPlayer.Album"
|
||||
android:clipToOutline="true"
|
||||
android:scaleType="centerCrop"/>
|
||||
|
||||
<com.android.internal.widget.CachingIconView
|
||||
android:id="@+id/media_logo5"
|
||||
android:layout_width="@dimen/qs_media_icon_size"
|
||||
android:layout_height="@dimen/qs_media_icon_size"
|
||||
style="@style/MediaPlayer.AppIcon" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/media_cover6"
|
||||
android:layout_width="@dimen/qs_aa_media_rec_album_size"
|
||||
android:layout_height="@dimen/qs_aa_media_rec_album_size"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="@dimen/qs_aa_media_rec_album_size_collapsed"
|
||||
android:adjustViewBounds="true"
|
||||
android:background="@drawable/bg_smartspace_media_item"
|
||||
style="@style/MediaPlayer.Album"
|
||||
android:clipToOutline="true"
|
||||
android:scaleType="centerCrop"/>
|
||||
|
||||
<com.android.internal.widget.CachingIconView
|
||||
android:id="@+id/media_logo6"
|
||||
android:layout_width="@dimen/qs_media_icon_size"
|
||||
android:layout_height="@dimen/qs_media_icon_size"
|
||||
style="@style/MediaPlayer.AppIcon" />
|
||||
|
||||
<!-- Long press menu -->
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
|
||||
@@ -1275,10 +1275,9 @@
|
||||
<dimen name="qs_media_disabled_seekbar_vertical_padding">36dp</dimen>
|
||||
|
||||
<!-- Size of Smartspace media recommendations cards in the QSPanel carousel -->
|
||||
<dimen name="qs_aa_media_rec_header_icon_start_margin">10dp</dimen>
|
||||
<dimen name="qs_aa_media_rec_header_icon_size">18dp</dimen>
|
||||
<dimen name="qs_aa_media_rec_album_size">72dp</dimen>
|
||||
<dimen name="qs_aa_media_rec_album_vertical_margin">8dp</dimen>
|
||||
<dimen name="qs_aa_media_rec_album_size_collapsed">66dp</dimen>
|
||||
<dimen name="qs_aa_media_rec_album_size_expanded">80dp</dimen>
|
||||
<dimen name="qs_aa_media_rec_album_margin">8dp</dimen>
|
||||
<dimen name="qq_aa_media_rec_header_text_size">16sp</dimen>
|
||||
|
||||
<!-- Window magnification -->
|
||||
|
||||
@@ -20,10 +20,9 @@
|
||||
|
||||
<Constraint
|
||||
android:id="@+id/recommendation_card_icon"
|
||||
android:layout_width="@dimen/qs_aa_media_rec_header_icon_size"
|
||||
android:layout_height="@dimen/qs_aa_media_rec_header_icon_size"
|
||||
android:layout_width="@dimen/qs_media_icon_size"
|
||||
android:layout_height="@dimen/qs_media_icon_size"
|
||||
android:layout_marginTop="@dimen/qs_media_padding"
|
||||
android:layout_marginStart="@dimen/qs_aa_media_rec_header_icon_start_margin"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toStartOf="@id/media_vertical_start_guideline"
|
||||
@@ -31,9 +30,8 @@
|
||||
|
||||
<Constraint
|
||||
android:id="@+id/recommendation_card_text"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/qs_aa_media_rec_header_icon_start_margin"
|
||||
app:layout_constraintTop_toBottomOf="@id/recommendation_card_icon"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toStartOf="@id/media_vertical_start_guideline"
|
||||
@@ -41,137 +39,87 @@
|
||||
|
||||
<Constraint
|
||||
android:id="@+id/media_cover1"
|
||||
android:layout_width="@dimen/qs_aa_media_rec_album_size"
|
||||
android:layout_height="@dimen/qs_aa_media_rec_album_size"
|
||||
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"
|
||||
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"
|
||||
app:layout_constraintHorizontal_chainStyle="spread"
|
||||
app:layout_constraintVertical_chainStyle="spread"
|
||||
android:visibility="gone" />
|
||||
|
||||
<Constraint
|
||||
android:id="@+id/media_logo1"
|
||||
android:layout_width="@dimen/qs_media_icon_size"
|
||||
android:layout_height="@dimen/qs_media_icon_size"
|
||||
android:translationY="@dimen/qs_media_icon_offset"
|
||||
android:translationX="@dimen/qs_media_icon_offset"
|
||||
app:layout_constraintEnd_toEndOf="@+id/media_cover1"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/media_cover1"
|
||||
app:layout_constraintHorizontal_chainStyle="packed"
|
||||
app:layout_constraintHorizontal_bias="1"
|
||||
android:visibility="gone" />
|
||||
|
||||
<Constraint
|
||||
android:id="@+id/media_cover2"
|
||||
android:layout_width="@dimen/qs_aa_media_rec_album_size"
|
||||
android:layout_height="@dimen/qs_aa_media_rec_album_size"
|
||||
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"
|
||||
app:layout_constraintEnd_toStartOf="@id/media_cover3"
|
||||
app:layout_constraintHorizontal_chainStyle="spread"
|
||||
android:visibility="gone" />
|
||||
|
||||
<Constraint
|
||||
android:id="@+id/media_logo2"
|
||||
android:layout_width="@dimen/qs_media_icon_size"
|
||||
android:layout_height="@dimen/qs_media_icon_size"
|
||||
android:translationY="@dimen/qs_media_icon_offset"
|
||||
android:translationX="@dimen/qs_media_icon_offset"
|
||||
app:layout_constraintEnd_toEndOf="@+id/media_cover2"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/media_cover2"
|
||||
app:layout_constraintHorizontal_chainStyle="packed"
|
||||
app:layout_constraintHorizontal_bias="1"
|
||||
android:visibility="gone" />
|
||||
|
||||
<Constraint
|
||||
android:id="@+id/media_cover3"
|
||||
android:layout_width="@dimen/qs_aa_media_rec_album_size"
|
||||
android:layout_height="@dimen/qs_aa_media_rec_album_size"
|
||||
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"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintHorizontal_chainStyle="spread"
|
||||
app:layout_constraintHorizontal_chainStyle="packed"
|
||||
app:layout_constraintHorizontal_bias="1"
|
||||
android:visibility="gone" />
|
||||
|
||||
<Constraint
|
||||
android:id="@+id/media_logo3"
|
||||
android:layout_width="@dimen/qs_media_icon_size"
|
||||
android:layout_height="@dimen/qs_media_icon_size"
|
||||
android:translationY="@dimen/qs_media_icon_offset"
|
||||
android:translationX="@dimen/qs_media_icon_offset"
|
||||
app:layout_constraintEnd_toEndOf="@+id/media_cover3"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/media_cover3"
|
||||
android:visibility="gone" />
|
||||
|
||||
<Constraint
|
||||
android:id="@+id/media_cover4"
|
||||
android:layout_width="@dimen/qs_aa_media_rec_album_size"
|
||||
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"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toEndOf="@id/media_vertical_start_guideline"
|
||||
app:layout_constraintEnd_toStartOf="@id/media_cover5"
|
||||
app:layout_constraintHorizontal_chainStyle="spread"
|
||||
android:visibility="gone" />
|
||||
|
||||
<Constraint
|
||||
android:id="@+id/media_logo4"
|
||||
android:layout_width="@dimen/qs_media_icon_size"
|
||||
android:layout_height="0dp"
|
||||
android:translationY="@dimen/qs_media_icon_offset"
|
||||
android:translationX="@dimen/qs_media_icon_offset"
|
||||
app:layout_constraintEnd_toEndOf="@+id/media_cover4"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/media_cover4"
|
||||
app:layout_constraintHorizontal_chainStyle="packed"
|
||||
app:layout_constraintHorizontal_bias="1"
|
||||
android:visibility="gone" />
|
||||
|
||||
<Constraint
|
||||
android:id="@+id/media_cover5"
|
||||
android:layout_width="@dimen/qs_aa_media_rec_album_size"
|
||||
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"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toEndOf="@+id/media_cover4"
|
||||
app:layout_constraintEnd_toStartOf="@+id/media_cover6"
|
||||
app:layout_constraintHorizontal_chainStyle="spread"
|
||||
android:visibility="gone" />
|
||||
|
||||
<Constraint
|
||||
android:id="@+id/media_logo5"
|
||||
android:layout_width="@dimen/qs_media_icon_size"
|
||||
android:layout_height="0dp"
|
||||
android:translationY="@dimen/qs_media_icon_offset"
|
||||
android:translationX="@dimen/qs_media_icon_offset"
|
||||
app:layout_constraintEnd_toEndOf="@+id/media_cover5"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/media_cover5"
|
||||
app:layout_constraintHorizontal_chainStyle="packed"
|
||||
app:layout_constraintHorizontal_bias="1"
|
||||
android:visibility="gone" />
|
||||
|
||||
<Constraint
|
||||
android:id="@+id/media_cover6"
|
||||
android:layout_width="@dimen/qs_aa_media_rec_album_size"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
app:layout_constraintTop_toBottomOf="@id/media_cover3"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toEndOf="@id/media_cover5"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintHorizontal_chainStyle="spread"
|
||||
app:layout_constraintHorizontal_chainStyle="packed"
|
||||
app:layout_constraintHorizontal_bias="1"
|
||||
android:visibility="gone" />
|
||||
|
||||
<Constraint
|
||||
android:id="@+id/media_logo6"
|
||||
android:layout_width="@dimen/qs_media_icon_size"
|
||||
android:layout_height="0dp"
|
||||
android:translationY="@dimen/qs_media_icon_offset"
|
||||
android:translationX="@dimen/qs_media_icon_offset"
|
||||
app:layout_constraintEnd_toEndOf="@+id/media_cover6"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/media_cover6"
|
||||
android:visibility="gone" />
|
||||
|
||||
</ConstraintSet>
|
||||
|
||||
@@ -20,10 +20,9 @@
|
||||
|
||||
<Constraint
|
||||
android:id="@+id/recommendation_card_icon"
|
||||
android:layout_width="@dimen/qs_aa_media_rec_header_icon_size"
|
||||
android:layout_height="@dimen/qs_aa_media_rec_header_icon_size"
|
||||
android:layout_width="@dimen/qs_media_icon_size"
|
||||
android:layout_height="@dimen/qs_media_icon_size"
|
||||
android:layout_marginTop="@dimen/qs_media_padding"
|
||||
android:layout_marginStart="@dimen/qs_aa_media_rec_header_icon_start_margin"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toStartOf="@id/media_vertical_start_guideline"
|
||||
@@ -31,9 +30,8 @@
|
||||
|
||||
<Constraint
|
||||
android:id="@+id/recommendation_card_text"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/qs_aa_media_rec_header_icon_start_margin"
|
||||
app:layout_constraintTop_toBottomOf="@id/recommendation_card_icon"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toStartOf="@id/media_vertical_start_guideline"
|
||||
@@ -41,154 +39,108 @@
|
||||
|
||||
<Constraint
|
||||
android:id="@+id/media_cover1"
|
||||
android:layout_width="@dimen/qs_aa_media_rec_album_size"
|
||||
android:layout_height="@dimen/qs_aa_media_rec_album_size"
|
||||
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_vertical_margin"
|
||||
android:layout_marginBottom="@dimen/qs_aa_media_rec_album_margin"
|
||||
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"
|
||||
app:layout_constraintHorizontal_chainStyle="spread"
|
||||
app:layout_constraintVertical_chainStyle="spread"
|
||||
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_logo1"
|
||||
android:layout_width="@dimen/qs_media_icon_size"
|
||||
android:layout_height="@dimen/qs_media_icon_size"
|
||||
android:translationY="@dimen/qs_media_icon_offset"
|
||||
android:translationX="@dimen/qs_media_icon_offset"
|
||||
app:layout_constraintEnd_toEndOf="@+id/media_cover1"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/media_cover1"
|
||||
android:visibility="gone" />
|
||||
|
||||
<Constraint
|
||||
android:id="@+id/media_cover2"
|
||||
android:layout_width="@dimen/qs_aa_media_rec_album_size"
|
||||
android:layout_height="@dimen/qs_aa_media_rec_album_size"
|
||||
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_vertical_margin"
|
||||
android:layout_marginBottom="@dimen/qs_aa_media_rec_album_margin"
|
||||
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"
|
||||
app:layout_constraintEnd_toStartOf="@id/media_cover3"
|
||||
app:layout_constraintHorizontal_chainStyle="spread"
|
||||
app:layout_constraintVertical_chainStyle="spread"
|
||||
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_logo2"
|
||||
android:layout_width="@dimen/qs_media_icon_size"
|
||||
android:layout_height="@dimen/qs_media_icon_size"
|
||||
android:translationY="@dimen/qs_media_icon_offset"
|
||||
android:translationX="@dimen/qs_media_icon_offset"
|
||||
app:layout_constraintEnd_toEndOf="@+id/media_cover2"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/media_cover2"
|
||||
android:visibility="gone" />
|
||||
|
||||
<Constraint
|
||||
android:id="@+id/media_cover3"
|
||||
android:layout_width="@dimen/qs_aa_media_rec_album_size"
|
||||
android:layout_height="@dimen/qs_aa_media_rec_album_size"
|
||||
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_vertical_margin"
|
||||
android:layout_marginBottom="@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_cover2"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintHorizontal_chainStyle="spread"
|
||||
app:layout_constraintHorizontal_chainStyle="packed"
|
||||
app:layout_constraintHorizontal_bias="1"
|
||||
app:layout_constraintVertical_chainStyle="spread"
|
||||
app:layout_constraintVertical_chainStyle="packed"
|
||||
app:layout_constraintVertical_bias="0"
|
||||
android:visibility="gone" />
|
||||
|
||||
<Constraint
|
||||
android:id="@+id/media_logo3"
|
||||
android:layout_width="@dimen/qs_media_icon_size"
|
||||
android:layout_height="@dimen/qs_media_icon_size"
|
||||
android:translationY="@dimen/qs_media_icon_offset"
|
||||
android:translationX="@dimen/qs_media_icon_offset"
|
||||
app:layout_constraintEnd_toEndOf="@+id/media_cover3"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/media_cover3"
|
||||
android:visibility="gone" />
|
||||
|
||||
<Constraint
|
||||
android:id="@+id/media_cover4"
|
||||
android:layout_width="@dimen/qs_aa_media_rec_album_size"
|
||||
android:layout_height="@dimen/qs_aa_media_rec_album_size"
|
||||
android:layout_marginTop="@dimen/qs_aa_media_rec_album_vertical_margin"
|
||||
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"
|
||||
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"
|
||||
app:layout_constraintHorizontal_chainStyle="spread"
|
||||
app:layout_constraintVertical_chainStyle="spread"
|
||||
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_logo4"
|
||||
android:layout_width="@dimen/qs_media_icon_size"
|
||||
android:layout_height="@dimen/qs_media_icon_size"
|
||||
android:translationY="@dimen/qs_media_icon_offset"
|
||||
android:translationX="@dimen/qs_media_icon_offset"
|
||||
app:layout_constraintEnd_toEndOf="@+id/media_cover4"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/media_cover4"
|
||||
android:visibility="gone" />
|
||||
|
||||
<Constraint
|
||||
android:id="@+id/media_cover5"
|
||||
android:layout_width="@dimen/qs_aa_media_rec_album_size"
|
||||
android:layout_height="@dimen/qs_aa_media_rec_album_size"
|
||||
android:layout_marginTop="@dimen/qs_aa_media_rec_album_vertical_margin"
|
||||
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"
|
||||
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"
|
||||
app:layout_constraintEnd_toStartOf="@+id/media_cover6"
|
||||
app:layout_constraintHorizontal_chainStyle="spread"
|
||||
app:layout_constraintVertical_chainStyle="spread"
|
||||
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_logo5"
|
||||
android:layout_width="@dimen/qs_media_icon_size"
|
||||
android:layout_height="@dimen/qs_media_icon_size"
|
||||
android:translationY="@dimen/qs_media_icon_offset"
|
||||
android:translationX="@dimen/qs_media_icon_offset"
|
||||
app:layout_constraintEnd_toEndOf="@+id/media_cover5"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/media_cover5"
|
||||
android:visibility="gone" />
|
||||
|
||||
<Constraint
|
||||
android:id="@+id/media_cover6"
|
||||
android:layout_width="@dimen/qs_aa_media_rec_album_size"
|
||||
android:layout_height="@dimen/qs_aa_media_rec_album_size"
|
||||
android:layout_marginTop="@dimen/qs_aa_media_rec_album_vertical_margin"
|
||||
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"
|
||||
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"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintHorizontal_chainStyle="spread"
|
||||
app:layout_constraintHorizontal_chainStyle="packed"
|
||||
app:layout_constraintHorizontal_bias="1"
|
||||
app:layout_constraintVertical_chainStyle="spread"
|
||||
app:layout_constraintVertical_chainStyle="packed"
|
||||
app:layout_constraintVertical_bias="1"
|
||||
android:visibility="gone" />
|
||||
|
||||
<Constraint
|
||||
android:id="@+id/media_logo6"
|
||||
android:layout_width="@dimen/qs_media_icon_size"
|
||||
android:layout_height="@dimen/qs_media_icon_size"
|
||||
android:translationY="@dimen/qs_media_icon_offset"
|
||||
android:translationX="@dimen/qs_media_icon_offset"
|
||||
app:layout_constraintEnd_toEndOf="@+id/media_cover6"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/media_cover6"
|
||||
android:visibility="gone" />
|
||||
|
||||
</ConstraintSet>
|
||||
|
||||
@@ -23,6 +23,7 @@ import android.app.smartspace.SmartspaceAction;
|
||||
import android.app.smartspace.SmartspaceTarget;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.pm.ApplicationInfo;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.content.res.ColorStateList;
|
||||
import android.graphics.ColorMatrix;
|
||||
@@ -511,10 +512,31 @@ public class MediaControlPanel {
|
||||
return;
|
||||
}
|
||||
|
||||
// Set up recommendation card's header.
|
||||
ApplicationInfo applicationInfo = getApplicationInfo(target);
|
||||
if (applicationInfo == null) {
|
||||
Log.w(TAG, "No valid application info is found for media recommendations");
|
||||
return;
|
||||
}
|
||||
|
||||
PackageManager packageManager = mContext.getPackageManager();
|
||||
// Set up media source app's logo.
|
||||
Drawable icon = packageManager.getApplicationIcon(applicationInfo);
|
||||
icon.setColorFilter(getGrayscaleFilter());
|
||||
ImageView headerLogoImageView = mRecommendationViewHolder.getCardIcon();
|
||||
headerLogoImageView.setImageDrawable(icon);
|
||||
// Set up media source app's label text. Fallback to "Play" if the found label is empty.
|
||||
CharSequence appLabel = packageManager.getApplicationLabel(applicationInfo);
|
||||
if (appLabel.length() != 0) {
|
||||
TextView headerTitleText = mRecommendationViewHolder.getCardText();
|
||||
headerTitleText.setText(appLabel);
|
||||
}
|
||||
// Set up media card's tap action if applicable.
|
||||
setSmartspaceRecItemOnClickListener(
|
||||
mRecommendationViewHolder.getRecommendations(), target.getBaseAction());
|
||||
|
||||
List<ImageView> mediaCoverItems = mRecommendationViewHolder.getMediaCoverItems();
|
||||
List<ImageView> mediaLogoItems = mRecommendationViewHolder.getMediaLogoItems();
|
||||
List<Integer> mediaCoverItemsResIds = mRecommendationViewHolder.getMediaCoverItemsResIds();
|
||||
List<Integer> mediaLogoItemsResIds = mRecommendationViewHolder.getMediaLogoItemsResIds();
|
||||
ConstraintSet expandedSet = mMediaViewController.getExpandedLayout();
|
||||
ConstraintSet collapsedSet = mMediaViewController.getCollapsedLayout();
|
||||
int mediaRecommendationNum = Math.min(mediaRecommendationList.size(),
|
||||
@@ -528,50 +550,22 @@ public class MediaControlPanel {
|
||||
continue;
|
||||
}
|
||||
|
||||
// Get media source app's logo.
|
||||
Bundle extras = recommendation.getExtras();
|
||||
Drawable icon = null;
|
||||
if (extras != null && extras.getString(EXTRAS_MEDIA_SOURCE_PACKAGE_NAME) != null) {
|
||||
// Get the logo from app's package name when applicable.
|
||||
String packageName = extras.getString(EXTRAS_MEDIA_SOURCE_PACKAGE_NAME);
|
||||
try {
|
||||
icon = mContext.getPackageManager().getApplicationIcon(
|
||||
packageName);
|
||||
icon.setColorFilter(getGrayscaleFilter());
|
||||
} catch (PackageManager.NameNotFoundException e) {
|
||||
Log.w(TAG, "No media source icon can be fetched via package name", e);
|
||||
}
|
||||
} else {
|
||||
Log.w(TAG, "No media source icon is provided. Skipping this item...");
|
||||
continue;
|
||||
}
|
||||
|
||||
// Set up media source app's logo.
|
||||
ImageView mediaSourceLogoImageView = mediaLogoItems.get(uiComponentIndex);
|
||||
mediaSourceLogoImageView.setImageDrawable(icon);
|
||||
|
||||
// Set up media item cover.
|
||||
ImageView mediaCoverImageView = mediaCoverItems.get(uiComponentIndex);
|
||||
mediaCoverImageView.setImageIcon(recommendation.getIcon());
|
||||
|
||||
// Set up the click listener if applicable.
|
||||
// Set up the media item's click listener if applicable.
|
||||
setSmartspaceRecItemOnClickListener(mediaCoverImageView, recommendation);
|
||||
|
||||
if (uiComponentIndex < MEDIA_RECOMMENDATION_ITEMS_PER_ROW) {
|
||||
setVisibleAndAlpha(collapsedSet,
|
||||
mediaCoverItemsResIds.get(uiComponentIndex), true);
|
||||
setVisibleAndAlpha(collapsedSet,
|
||||
mediaLogoItemsResIds.get(uiComponentIndex), true);
|
||||
} else {
|
||||
setVisibleAndAlpha(collapsedSet,
|
||||
mediaCoverItemsResIds.get(uiComponentIndex), false);
|
||||
setVisibleAndAlpha(collapsedSet,
|
||||
mediaLogoItemsResIds.get(uiComponentIndex), false);
|
||||
}
|
||||
setVisibleAndAlpha(expandedSet,
|
||||
mediaCoverItemsResIds.get(uiComponentIndex), true);
|
||||
setVisibleAndAlpha(expandedSet,
|
||||
mediaLogoItemsResIds.get(uiComponentIndex), true);
|
||||
|
||||
uiComponentIndex++;
|
||||
}
|
||||
@@ -681,7 +675,8 @@ public class MediaControlPanel {
|
||||
private void setSmartspaceRecItemOnClickListener(
|
||||
@NonNull View view,
|
||||
@NonNull SmartspaceAction action) {
|
||||
if (view == null || action == null || action.getIntent() == null) {
|
||||
if (view == null || action == null || action.getIntent() == null
|
||||
|| action.getIntent().getExtras() == null) {
|
||||
Log.e(TAG, "No tap action can be set up");
|
||||
return;
|
||||
}
|
||||
@@ -731,6 +726,38 @@ public class MediaControlPanel {
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the application info for the media recommendation's source app.
|
||||
*
|
||||
* @param target Smartspace target contains a list of media recommendations. Each item should
|
||||
* contain the same source app's info.
|
||||
*
|
||||
* @return The source app's application info. This value can be null if no valid application
|
||||
* info can be obtained.
|
||||
*/
|
||||
private ApplicationInfo getApplicationInfo(@NonNull SmartspaceTarget target) {
|
||||
List<SmartspaceAction> mediaRecommendationList = target.getIconGrid();
|
||||
if (mediaRecommendationList == null || mediaRecommendationList.isEmpty()) {
|
||||
return null;
|
||||
}
|
||||
|
||||
for (SmartspaceAction recommendation: mediaRecommendationList) {
|
||||
Bundle extras = recommendation.getExtras();
|
||||
if (extras != null && extras.getString(EXTRAS_MEDIA_SOURCE_PACKAGE_NAME) != null) {
|
||||
// Get the logo from app's package name when applicable.
|
||||
String packageName = extras.getString(EXTRAS_MEDIA_SOURCE_PACKAGE_NAME);
|
||||
try {
|
||||
return mContext.getPackageManager()
|
||||
.getApplicationInfo(packageName, 0 /* flags */);
|
||||
} catch (PackageManager.NameNotFoundException e) {
|
||||
Log.w(TAG, "Fail to get media recommendation's app info", e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the surface given the current end location for MediaViewController
|
||||
* @return surface used for Smartspace logging
|
||||
|
||||
@@ -40,13 +40,6 @@ class RecommendationViewHolder private constructor(itemView: View) {
|
||||
itemView.requireViewById(R.id.media_cover4),
|
||||
itemView.requireViewById(R.id.media_cover5),
|
||||
itemView.requireViewById(R.id.media_cover6))
|
||||
val mediaLogoItems = listOf<ImageView>(
|
||||
itemView.requireViewById(R.id.media_logo1),
|
||||
itemView.requireViewById(R.id.media_logo2),
|
||||
itemView.requireViewById(R.id.media_logo3),
|
||||
itemView.requireViewById(R.id.media_logo4),
|
||||
itemView.requireViewById(R.id.media_logo5),
|
||||
itemView.requireViewById(R.id.media_logo6))
|
||||
val mediaCoverItemsResIds = listOf<@IntegerRes Int>(
|
||||
R.id.media_cover1,
|
||||
R.id.media_cover2,
|
||||
@@ -54,13 +47,6 @@ class RecommendationViewHolder private constructor(itemView: View) {
|
||||
R.id.media_cover4,
|
||||
R.id.media_cover5,
|
||||
R.id.media_cover6)
|
||||
val mediaLogoItemsResIds = listOf<@IntegerRes Int>(
|
||||
R.id.media_logo1,
|
||||
R.id.media_logo2,
|
||||
R.id.media_logo3,
|
||||
R.id.media_logo4,
|
||||
R.id.media_logo5,
|
||||
R.id.media_logo6)
|
||||
|
||||
// Settings/Guts screen
|
||||
val cancel = itemView.requireViewById<View>(R.id.cancel)
|
||||
@@ -71,7 +57,6 @@ class RecommendationViewHolder private constructor(itemView: View) {
|
||||
init {
|
||||
(recommendations.background as IlluminationDrawable).let { background ->
|
||||
mediaCoverItems.forEach { background.registerLightSource(it) }
|
||||
mediaLogoItems.forEach { background.registerLightSource(it) }
|
||||
background.registerLightSource(cancel)
|
||||
background.registerLightSource(dismiss)
|
||||
background.registerLightSource(dismissLabel)
|
||||
@@ -109,13 +94,7 @@ class RecommendationViewHolder private constructor(itemView: View) {
|
||||
R.id.media_cover3,
|
||||
R.id.media_cover4,
|
||||
R.id.media_cover5,
|
||||
R.id.media_cover6,
|
||||
R.id.media_logo1,
|
||||
R.id.media_logo2,
|
||||
R.id.media_logo3,
|
||||
R.id.media_logo4,
|
||||
R.id.media_logo5,
|
||||
R.id.media_logo6
|
||||
R.id.media_cover6
|
||||
)
|
||||
|
||||
// Res Ids for the components on the guts panel.
|
||||
|
||||
Reference in New Issue
Block a user