Apply round corner to the album icon in output switcher panel
Bug: 159766582 Test: manual test Change-Id: I1535a13c137e9550920cf890c259a4075a2dfc05
This commit is contained in:
@@ -425,6 +425,7 @@
|
|||||||
<dimen name="output_switcher_slice_padding_top">11dp</dimen>
|
<dimen name="output_switcher_slice_padding_top">11dp</dimen>
|
||||||
<dimen name="output_switcher_slice_max_height">506dp</dimen>
|
<dimen name="output_switcher_slice_max_height">506dp</dimen>
|
||||||
<dimen name="output_switcher_panel_icon_size">52dp</dimen>
|
<dimen name="output_switcher_panel_icon_size">52dp</dimen>
|
||||||
|
<dimen name="output_switcher_panel_icon_corner_radius">16dp</dimen>
|
||||||
|
|
||||||
<!-- Text padding for EmptyTextSettings -->
|
<!-- Text padding for EmptyTextSettings -->
|
||||||
<dimen name="empty_text_padding">24dp</dimen>
|
<dimen name="empty_text_padding">24dp</dimen>
|
||||||
|
@@ -92,8 +92,11 @@ import android.widget.EditText;
|
|||||||
import android.widget.ListView;
|
import android.widget.ListView;
|
||||||
import android.widget.TabWidget;
|
import android.widget.TabWidget;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
import androidx.annotation.StringRes;
|
import androidx.annotation.StringRes;
|
||||||
import androidx.core.graphics.drawable.IconCompat;
|
import androidx.core.graphics.drawable.IconCompat;
|
||||||
|
import androidx.core.graphics.drawable.RoundedBitmapDrawable;
|
||||||
|
import androidx.core.graphics.drawable.RoundedBitmapDrawableFactory;
|
||||||
import androidx.fragment.app.Fragment;
|
import androidx.fragment.app.Fragment;
|
||||||
import androidx.lifecycle.Lifecycle;
|
import androidx.lifecycle.Lifecycle;
|
||||||
import androidx.preference.Preference;
|
import androidx.preference.Preference;
|
||||||
@@ -1113,4 +1116,25 @@ public final class Utils extends com.android.settingslib.Utils {
|
|||||||
context.getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK;
|
context.getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK;
|
||||||
return currentNightMode == Configuration.UI_MODE_NIGHT_YES;
|
return currentNightMode == Configuration.UI_MODE_NIGHT_YES;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns a bitmap with rounded corner.
|
||||||
|
*
|
||||||
|
* @param context application context.
|
||||||
|
* @param source bitmap to apply round corner.
|
||||||
|
* @param cornerRadius corner radius value.
|
||||||
|
*/
|
||||||
|
public static Bitmap convertCornerRadiusBitmap(@NonNull Context context,
|
||||||
|
@NonNull Bitmap source, @NonNull float cornerRadius) {
|
||||||
|
final Bitmap roundedBitmap = Bitmap.createBitmap(source.getWidth(), source.getHeight(),
|
||||||
|
Bitmap.Config.ARGB_8888);
|
||||||
|
final RoundedBitmapDrawable drawable =
|
||||||
|
RoundedBitmapDrawableFactory.create(context.getResources(), source);
|
||||||
|
drawable.setAntiAlias(true);
|
||||||
|
drawable.setCornerRadius(cornerRadius);
|
||||||
|
final Canvas canvas = new Canvas(roundedBitmap);
|
||||||
|
drawable.setBounds(0, 0, canvas.getWidth(), canvas.getHeight());
|
||||||
|
drawable.draw(canvas);
|
||||||
|
return roundedBitmap;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -116,7 +116,11 @@ public class MediaOutputPanel implements PanelContent, LocalMediaManager.DeviceC
|
|||||||
if (metadata != null) {
|
if (metadata != null) {
|
||||||
final Bitmap bitmap = metadata.getDescription().getIconBitmap();
|
final Bitmap bitmap = metadata.getDescription().getIconBitmap();
|
||||||
if (bitmap != null) {
|
if (bitmap != null) {
|
||||||
return IconCompat.createWithBitmap(bitmap);
|
final Bitmap roundBitmap = Utils.convertCornerRadiusBitmap(mContext, bitmap,
|
||||||
|
(float) mContext.getResources().getDimensionPixelSize(
|
||||||
|
R.dimen.output_switcher_panel_icon_corner_radius));
|
||||||
|
|
||||||
|
return IconCompat.createWithBitmap(roundBitmap);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Log.d(TAG, "Media meta data does not contain icon information");
|
Log.d(TAG, "Media meta data does not contain icon information");
|
||||||
|
Reference in New Issue
Block a user