Use TelecomUtils APIs to create Letter Tiles and Bitmaps

Bug: 145832093
Test: manual
Change-Id: I96ec8f092ad6777e4fbe25dec79f1a6ec0cddc6a
diff --git a/src/com/android/car/dialer/notification/NotificationUtils.java b/src/com/android/car/dialer/notification/NotificationUtils.java
index b185911..6017933 100644
--- a/src/com/android/car/dialer/notification/NotificationUtils.java
+++ b/src/com/android/car/dialer/notification/NotificationUtils.java
@@ -17,8 +17,6 @@
 package com.android.car.dialer.notification;
 
 import android.content.Context;
-import android.graphics.Bitmap;
-import android.graphics.Canvas;
 import android.graphics.drawable.Icon;
 import android.net.Uri;
 
@@ -27,7 +25,6 @@
 import androidx.core.graphics.drawable.RoundedBitmapDrawableFactory;
 import androidx.core.util.Pair;
 
-import com.android.car.apps.common.LetterTileDrawable;
 import com.android.car.dialer.R;
 import com.android.car.telephony.common.TelecomUtils;
 
@@ -48,8 +45,10 @@
                             .getDimensionPixelSize(R.dimen.avatar_icon_size);
                     Icon largeIcon = loadContactAvatar(context, info.getAvatarUri(), size);
                     if (largeIcon == null) {
-                        largeIcon = createLetterTile(context, info.getInitials(),
-                                /* identifier */ info.getDisplayName(), size);
+                        float cornerRadiusPercent = context.getResources()
+                                .getFloat(R.dimen.contact_avatar_corner_radius_percent);
+                        largeIcon = TelecomUtils.createLetterTile(context, info.getInitials(),
+                                /* identifier */ info.getDisplayName(), size, cornerRadiusPercent);
                     }
 
                     return new Pair<>(info.getDisplayName(), largeIcon);
@@ -68,34 +67,14 @@
             }
             RoundedBitmapDrawable roundedBitmapDrawable = RoundedBitmapDrawableFactory.create(
                     context.getResources(), input);
-            return createFromRoundedBitmapDrawable(context, roundedBitmapDrawable, avatarSize);
+            float cornerRadiusPercent = context.getResources()
+                    .getFloat(R.dimen.contact_avatar_corner_radius_percent);
+            return TelecomUtils
+                .createFromRoundedBitmapDrawable(roundedBitmapDrawable, avatarSize,
+                    cornerRadiusPercent);
         } catch (FileNotFoundException e) {
             // No-op
         }
         return null;
     }
-
-    private static Icon createLetterTile(Context context, @Nullable String initials,
-            String identifier, int avatarSize) {
-        LetterTileDrawable letterTileDrawable = TelecomUtils.createLetterTile(context, initials,
-                identifier);
-        RoundedBitmapDrawable roundedBitmapDrawable = RoundedBitmapDrawableFactory.create(
-                context.getResources(), letterTileDrawable.toBitmap(avatarSize));
-        return createFromRoundedBitmapDrawable(context, roundedBitmapDrawable, avatarSize);
-    }
-
-    private static Icon createFromRoundedBitmapDrawable(Context context,
-            RoundedBitmapDrawable roundedBitmapDrawable, int avatarSize) {
-        float radiusPercent = context.getResources()
-                .getFloat(R.dimen.contact_avatar_corner_radius_percent);
-        float radius = avatarSize * radiusPercent;
-        roundedBitmapDrawable.setCornerRadius(radius);
-
-        final Bitmap result = Bitmap.createBitmap(avatarSize, avatarSize,
-                Bitmap.Config.ARGB_8888);
-        final Canvas canvas = new Canvas(result);
-        roundedBitmapDrawable.setBounds(0, 0, canvas.getWidth(), canvas.getHeight());
-        roundedBitmapDrawable.draw(canvas);
-        return Icon.createWithBitmap(result);
-    }
 }