Converted ThemeUtil into a DaggerModule.

This enables us to have Google-Sans font in GoogleDialer and Roboto in AOSP.

Bug: 79883035
Test: tap
PiperOrigin-RevId: 197774497
Change-Id: I1d490ab196a444c62e439444627d659fc42973ea
diff --git a/java/com/android/incallui/ExternalCallNotifier.java b/java/com/android/incallui/ExternalCallNotifier.java
index 8c882d2..10c4a64 100644
--- a/java/com/android/incallui/ExternalCallNotifier.java
+++ b/java/com/android/incallui/ExternalCallNotifier.java
@@ -45,6 +45,7 @@
 import com.android.dialer.notification.DialerNotificationManager;
 import com.android.dialer.notification.NotificationChannelId;
 import com.android.dialer.telecom.TelecomCallUtil;
+import com.android.dialer.theme.base.ThemeComponent;
 import com.android.incallui.call.DialerCall;
 import com.android.incallui.call.DialerCallDelegate;
 import com.android.incallui.call.ExternalCallList;
@@ -239,7 +240,7 @@
     builder.setSmallIcon(R.drawable.quantum_ic_call_white_24);
     builder.setContentTitle(info.getContentTitle());
     builder.setLargeIcon(info.getLargeIcon());
-    builder.setColor(context.getResources().getColor(R.color.dialer_theme_color));
+    builder.setColor(ThemeComponent.get(context).theme().getColorPrimary());
     builder.addPerson(info.getPersonReference());
     if (BuildCompat.isAtLeastO()) {
       builder.setChannelId(NotificationChannelId.DEFAULT);
@@ -275,7 +276,7 @@
      */
     Notification.Builder publicBuilder = new Notification.Builder(context);
     publicBuilder.setSmallIcon(R.drawable.quantum_ic_call_white_24);
-    publicBuilder.setColor(context.getResources().getColor(R.color.dialer_theme_color));
+    publicBuilder.setColor(ThemeComponent.get(context).theme().getColorPrimary());
     if (BuildCompat.isAtLeastO()) {
       publicBuilder.setChannelId(NotificationChannelId.DEFAULT);
     }
diff --git a/java/com/android/incallui/InCallPresenter.java b/java/com/android/incallui/InCallPresenter.java
index da5d20f..5aabf06 100644
--- a/java/com/android/incallui/InCallPresenter.java
+++ b/java/com/android/incallui/InCallPresenter.java
@@ -365,8 +365,7 @@
     addListener(this.proximitySensor);
 
     if (themeColorManager == null) {
-      themeColorManager =
-          new ThemeColorManager(new InCallUIMaterialColorMapUtils(this.context.getResources()));
+      themeColorManager = new ThemeColorManager(new InCallUIMaterialColorMapUtils(this.context));
     }
 
     this.callList = callList;
diff --git a/java/com/android/incallui/InCallUIMaterialColorMapUtils.java b/java/com/android/incallui/InCallUIMaterialColorMapUtils.java
index 945e9fb..c566f79 100644
--- a/java/com/android/incallui/InCallUIMaterialColorMapUtils.java
+++ b/java/com/android/incallui/InCallUIMaterialColorMapUtils.java
@@ -16,31 +16,35 @@
 
 package com.android.incallui;
 
+import android.content.Context;
 import android.content.res.Resources;
 import android.content.res.TypedArray;
 import android.telecom.PhoneAccount;
 import com.android.contacts.common.util.MaterialColorMapUtils;
+import com.android.dialer.theme.base.ThemeComponent;
 
 public class InCallUIMaterialColorMapUtils extends MaterialColorMapUtils {
 
   private final TypedArray primaryColors;
   private final TypedArray secondaryColors;
   private final Resources resources;
+  private final Context context;
 
-  public InCallUIMaterialColorMapUtils(Resources resources) {
-    super(resources);
+  public InCallUIMaterialColorMapUtils(Context context) {
+    super(context.getResources());
+    this.resources = context.getResources();
+    this.context = context;
     primaryColors = resources.obtainTypedArray(R.array.background_colors);
     secondaryColors = resources.obtainTypedArray(R.array.background_colors_dark);
-    this.resources = resources;
   }
 
   /**
    * {@link Resources#getColor(int) used for compatibility
    */
   @SuppressWarnings("deprecation")
-  public static MaterialPalette getDefaultPrimaryAndSecondaryColors(Resources resources) {
-    final int primaryColor = resources.getColor(R.color.dialer_theme_color);
-    final int secondaryColor = resources.getColor(R.color.dialer_theme_color_dark);
+  public static MaterialPalette getDefaultPrimaryAndSecondaryColors(Context context) {
+    final int primaryColor = ThemeComponent.get(context).theme().getColorPrimary();
+    final int secondaryColor = ThemeComponent.get(context).theme().getColorPrimaryDark();
     return new MaterialPalette(primaryColor, secondaryColor);
   }
 
@@ -52,7 +56,7 @@
   @Override
   public MaterialPalette calculatePrimaryAndSecondaryColor(int color) {
     if (color == PhoneAccount.NO_HIGHLIGHT_COLOR) {
-      return getDefaultPrimaryAndSecondaryColors(resources);
+      return getDefaultPrimaryAndSecondaryColors(context);
     }
 
     for (int i = 0; i < primaryColors.length(); i++) {
diff --git a/java/com/android/incallui/ReturnToCallController.java b/java/com/android/incallui/ReturnToCallController.java
index 7c4585c..09e1845 100644
--- a/java/com/android/incallui/ReturnToCallController.java
+++ b/java/com/android/incallui/ReturnToCallController.java
@@ -35,6 +35,7 @@
 import com.android.dialer.configprovider.ConfigProviderBindings;
 import com.android.dialer.lettertile.LetterTileDrawable;
 import com.android.dialer.telecom.TelecomUtil;
+import com.android.dialer.theme.base.ThemeComponent;
 import com.android.incallui.ContactInfoCache.ContactCacheEntry;
 import com.android.incallui.ContactInfoCache.ContactInfoCacheCallback;
 import com.android.incallui.InCallPresenter.InCallState;
@@ -288,7 +289,7 @@
 
   private BubbleInfo generateBubbleInfo() {
     return BubbleInfo.builder()
-        .setPrimaryColor(context.getResources().getColor(R.color.dialer_theme_color, null))
+        .setPrimaryColor(ThemeComponent.get(context).theme().getColorPrimary())
         .setPrimaryIcon(Icon.createWithResource(context, R.drawable.on_going_call))
         .setStartingYPosition(
             InCallPresenter.getInstance().shouldStartInBubbleMode()
@@ -302,7 +303,7 @@
 
   private BubbleInfo generateBubbleInfoForBackgroundCalling() {
     return BubbleInfo.builder()
-        .setPrimaryColor(context.getResources().getColor(R.color.dialer_theme_color, null))
+        .setPrimaryColor(ThemeComponent.get(context).theme().getColorPrimary())
         .setPrimaryIcon(Icon.createWithResource(context, R.drawable.on_going_call))
         .setStartingYPosition(context.getResources().getDisplayMetrics().heightPixels / 2)
         .setActions(generateActions())
diff --git a/java/com/android/incallui/StatusBarNotifier.java b/java/com/android/incallui/StatusBarNotifier.java
index 32d2025..27d23c4 100644
--- a/java/com/android/incallui/StatusBarNotifier.java
+++ b/java/com/android/incallui/StatusBarNotifier.java
@@ -75,6 +75,7 @@
 import com.android.dialer.multimedia.MultimediaData;
 import com.android.dialer.notification.NotificationChannelId;
 import com.android.dialer.oem.MotorolaUtils;
+import com.android.dialer.theme.base.ThemeComponent;
 import com.android.dialer.util.DrawableConverter;
 import com.android.incallui.ContactInfoCache.ContactCacheEntry;
 import com.android.incallui.ContactInfoCache.ContactInfoCacheCallback;
@@ -333,7 +334,7 @@
     Notification.Builder publicBuilder = new Notification.Builder(context);
     publicBuilder
         .setSmallIcon(iconResId)
-        .setColor(context.getResources().getColor(R.color.dialer_theme_color, context.getTheme()))
+        .setColor(ThemeComponent.get(context).theme().getColorPrimary())
         // Hide work call state for the lock screen notification
         .setContentTitle(getContentString(call, ContactsUtils.USER_TYPE_CURRENT));
     setNotificationWhen(call, callState, publicBuilder);
diff --git a/java/com/android/incallui/audioroute/AudioRouteSelectorDialogFragment.java b/java/com/android/incallui/audioroute/AudioRouteSelectorDialogFragment.java
index a561b5e..846834f 100644
--- a/java/com/android/incallui/audioroute/AudioRouteSelectorDialogFragment.java
+++ b/java/com/android/incallui/audioroute/AudioRouteSelectorDialogFragment.java
@@ -39,6 +39,7 @@
 import com.android.dialer.common.LogUtil;
 import com.android.dialer.logging.DialerImpression;
 import com.android.dialer.logging.Logger;
+import com.android.dialer.theme.base.ThemeComponent;
 import com.android.incallui.call.CallList;
 import com.android.incallui.call.DialerCall;
 import com.android.incallui.call.TelecomAdapter;
@@ -154,7 +155,7 @@
       final int itemRoute,
       CallAudioState audioState,
       DialerImpression.Type impressionType) {
-    int selectedColor = getResources().getColor(R.color.dialer_theme_color);
+    int selectedColor = ThemeComponent.get(getContext()).theme().getColorPrimary();
     if ((audioState.getSupportedRouteMask() & itemRoute) == 0) {
       item.setVisibility(View.GONE);
     } else if (audioState.getRoute() == itemRoute) {
@@ -174,7 +175,7 @@
   }
 
   private TextView createBluetoothItem(BluetoothDevice bluetoothDevice, boolean selected) {
-    int selectedColor = getResources().getColor(R.color.dialer_theme_color);
+    int selectedColor = ThemeComponent.get(getContext()).theme().getColorPrimary();
     TextView textView =
         (TextView) getLayoutInflater().inflate(R.layout.audioroute_item, null, false);
     textView.setText(getAliasName(bluetoothDevice));
diff --git a/java/com/android/incallui/spam/SpamCallListListener.java b/java/com/android/incallui/spam/SpamCallListListener.java
index d030555..3b2f1c5 100644
--- a/java/com/android/incallui/spam/SpamCallListListener.java
+++ b/java/com/android/incallui/spam/SpamCallListListener.java
@@ -49,6 +49,7 @@
 import com.android.dialer.phonenumberutil.PhoneNumberHelper;
 import com.android.dialer.spam.SpamComponent;
 import com.android.dialer.telecom.TelecomUtil;
+import com.android.dialer.theme.base.ThemeComponent;
 import com.android.dialer.util.PermissionsUtil;
 import com.android.incallui.call.CallList;
 import com.android.incallui.call.DialerCall;
@@ -256,7 +257,7 @@
                 createActivityPendingIntent(call, SpamNotificationActivity.ACTION_SHOW_DIALOG))
             .setCategory(Notification.CATEGORY_STATUS)
             .setPriority(Notification.PRIORITY_DEFAULT)
-            .setColor(context.getColor(R.color.dialer_theme_color))
+            .setColor(ThemeComponent.get(context).theme().getColorPrimary())
             .setSmallIcon(R.drawable.quantum_ic_call_end_vd_theme_24)
             .setGroup(GROUP_KEY);
     if (BuildCompat.isAtLeastO()) {