Loading res/values/dimens.xml +1 −0 Original line number Diff line number Diff line Loading @@ -425,6 +425,7 @@ <dimen name="output_switcher_slice_padding_top">11dp</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_corner_radius">16dp</dimen> <!-- Text padding for EmptyTextSettings --> <dimen name="empty_text_padding">24dp</dimen> Loading src/com/android/settings/Utils.java +24 −0 Original line number Diff line number Diff line Loading @@ -92,8 +92,11 @@ import android.widget.EditText; import android.widget.ListView; import android.widget.TabWidget; import androidx.annotation.NonNull; import androidx.annotation.StringRes; 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.lifecycle.Lifecycle; import androidx.preference.Preference; Loading Loading @@ -1113,4 +1116,25 @@ public final class Utils extends com.android.settingslib.Utils { context.getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK; 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; } } src/com/android/settings/panel/MediaOutputPanel.java +5 −1 Original line number Diff line number Diff line Loading @@ -116,7 +116,11 @@ public class MediaOutputPanel implements PanelContent, LocalMediaManager.DeviceC if (metadata != null) { final Bitmap bitmap = metadata.getDescription().getIconBitmap(); 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"); Loading Loading
res/values/dimens.xml +1 −0 Original line number Diff line number Diff line Loading @@ -425,6 +425,7 @@ <dimen name="output_switcher_slice_padding_top">11dp</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_corner_radius">16dp</dimen> <!-- Text padding for EmptyTextSettings --> <dimen name="empty_text_padding">24dp</dimen> Loading
src/com/android/settings/Utils.java +24 −0 Original line number Diff line number Diff line Loading @@ -92,8 +92,11 @@ import android.widget.EditText; import android.widget.ListView; import android.widget.TabWidget; import androidx.annotation.NonNull; import androidx.annotation.StringRes; 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.lifecycle.Lifecycle; import androidx.preference.Preference; Loading Loading @@ -1113,4 +1116,25 @@ public final class Utils extends com.android.settingslib.Utils { context.getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK; 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; } }
src/com/android/settings/panel/MediaOutputPanel.java +5 −1 Original line number Diff line number Diff line Loading @@ -116,7 +116,11 @@ public class MediaOutputPanel implements PanelContent, LocalMediaManager.DeviceC if (metadata != null) { final Bitmap bitmap = metadata.getDescription().getIconBitmap(); 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"); Loading