Set media recos app icon to be grayscale.

Screenshots:
- http://screen/5ywrW9wkSo4j7cA
- http://screen/52JgX9WAcRkKoTD

Fixes: 186699032
Test: Local builds

Change-Id: Ifb46b6ffbf7b74b8b0459467238e82a21a99cffb
This commit is contained in:
cecilia
2021-05-06 20:21:11 -04:00
committed by Cecilia Hong
parent 8093fd207c
commit 0f869b0fd4
3 changed files with 23 additions and 11 deletions

View File

@@ -75,7 +75,7 @@
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" />
style="@style/MediaPlayer.AppIcon.Recommendation" />
<ImageView
android:id="@+id/media_cover2"
@@ -91,7 +91,7 @@
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" />
style="@style/MediaPlayer.AppIcon.Recommendation" />
<ImageView
android:id="@+id/media_cover3"
@@ -107,7 +107,7 @@
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" />
style="@style/MediaPlayer.AppIcon.Recommendation" />
<ImageView
android:id="@+id/media_cover4"
@@ -123,7 +123,7 @@
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" />
style="@style/MediaPlayer.AppIcon.Recommendation" />
<ImageView
android:id="@+id/media_cover5"
@@ -139,7 +139,7 @@
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" />
style="@style/MediaPlayer.AppIcon.Recommendation" />
<ImageView
android:id="@+id/media_cover6"
@@ -155,7 +155,7 @@
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" />
style="@style/MediaPlayer.AppIcon.Recommendation" />
<!-- Long press menu -->
<TextView

View File

@@ -660,9 +660,12 @@
<item name="android:tint">?android:attr/colorAccent</item>
</style>
<style name="MediaPlayer.AppIcon.Recommendation" parent="MediaPlayer.AppIcon">
<item name="android:tint">@color/transparent</item>
</style>
<style name="MediaPlayer.Album">
<item name="android:backgroundTint">@color/media_player_album_bg</item>
</style>
<!-- Used to style charging animation AVD animation -->

View File

@@ -25,7 +25,8 @@ import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.res.ColorStateList;
import android.graphics.PorterDuff;
import android.graphics.ColorMatrix;
import android.graphics.ColorMatrixColorFilter;
import android.graphics.Rect;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.Icon;
@@ -515,8 +516,9 @@ public class MediaControlPanel {
// Get the logo from app's package name when applicable.
String packageName = extras.getString(EXTRAS_MEDIA_SOURCE_PACKAGE_NAME);
try {
icon = mContext.getPackageManager().getApplicationIcon(
Drawable drawable = mContext.getPackageManager().getApplicationIcon(
packageName);
icon = convertToGrayscale(drawable);
} catch (PackageManager.NameNotFoundException e) {
Log.w(TAG, "No media source icon can be fetched via package name", e);
}
@@ -528,8 +530,6 @@ public class MediaControlPanel {
// Set up media source app's logo.
ImageView mediaSourceLogoImageView = mediaLogoItems.get(uiComponentIndex);
mediaSourceLogoImageView.setImageDrawable(icon);
// TODO(b/186699032): Tint the app logo using the accent color.
mediaSourceLogoImageView.setColorFilter(backgroundColor, PorterDuff.Mode.XOR);
// Set up media item cover.
ImageView mediaCoverImageView = mediaCoverItems.get(uiComponentIndex);
@@ -651,6 +651,15 @@ public class MediaControlPanel {
return (state.getState() == PlaybackState.STATE_PLAYING);
}
/** Convert the pass-in source drawable to a grayscale one. */
private Drawable convertToGrayscale(Drawable drawable) {
ColorMatrix matrix = new ColorMatrix();
matrix.setSaturation(0);
ColorMatrixColorFilter filter = new ColorMatrixColorFilter(matrix);
drawable.setColorFilter(filter);
return drawable;
}
private void setVisibleAndAlpha(ConstraintSet set, int actionId, boolean visible) {
set.setVisibility(actionId, visible ? ConstraintSet.VISIBLE : ConstraintSet.GONE);
set.setAlpha(actionId, visible ? 1.0f : 0.0f);