diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index abd45af62e8..fd092a310c9 100755
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -425,6 +425,7 @@
11dp
506dp
52dp
+ 16dp
24dp
diff --git a/src/com/android/settings/Utils.java b/src/com/android/settings/Utils.java
index e5fd340485c..64919d9e809 100644
--- a/src/com/android/settings/Utils.java
+++ b/src/com/android/settings/Utils.java
@@ -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;
@@ -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;
+ }
}
diff --git a/src/com/android/settings/panel/MediaOutputPanel.java b/src/com/android/settings/panel/MediaOutputPanel.java
index d8dbb34d0e1..6a296b73c06 100644
--- a/src/com/android/settings/panel/MediaOutputPanel.java
+++ b/src/com/android/settings/panel/MediaOutputPanel.java
@@ -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");