Inlined ConfigProviderBindings.get() and removed ConfigProviderBindings.

It no longer provides any value, so just use dagger directly.

Bug: 80441695
Test: tap
PiperOrigin-RevId: 198806461
Change-Id: Id607abb65b77633bce511ad0c943ac19453a85d5
diff --git a/java/com/android/dialer/app/DialtactsActivity.java b/java/com/android/dialer/app/DialtactsActivity.java
index 06f094d..25a6956 100644
--- a/java/com/android/dialer/app/DialtactsActivity.java
+++ b/java/com/android/dialer/app/DialtactsActivity.java
@@ -93,7 +93,7 @@
 import com.android.dialer.common.UiUtil;
 import com.android.dialer.common.concurrent.DialerExecutorComponent;
 import com.android.dialer.common.concurrent.ThreadUtil;
-import com.android.dialer.configprovider.ConfigProviderBindings;
+import com.android.dialer.configprovider.ConfigProviderComponent;
 import com.android.dialer.constants.ActivityRequestCodes;
 import com.android.dialer.contactsfragment.ContactsFragment;
 import com.android.dialer.contactsfragment.ContactsFragment.OnContactSelectedListener;
@@ -367,7 +367,8 @@
     super.onCreate(savedInstanceState);
 
     firstLaunch = true;
-    isLastTabEnabled = ConfigProviderBindings.get(this).getBoolean("last_tab_enabled", false);
+    isLastTabEnabled =
+        ConfigProviderComponent.get(this).getConfigProvider().getBoolean("last_tab_enabled", false);
 
     final Resources resources = getResources();
     actionBarHeight = resources.getDimensionPixelSize(R.dimen.action_bar_height_large);
@@ -1622,6 +1623,8 @@
   }
 
   private boolean newFavoritesIsEnabled() {
-    return ConfigProviderBindings.get(this).getBoolean("enable_new_favorites_tab", false);
+    return ConfigProviderComponent.get(this)
+        .getConfigProvider()
+        .getBoolean("enable_new_favorites_tab", false);
   }
 }
diff --git a/java/com/android/dialer/app/calllog/CallLogAdapter.java b/java/com/android/dialer/app/calllog/CallLogAdapter.java
index 143af36..a4479da 100644
--- a/java/com/android/dialer/app/calllog/CallLogAdapter.java
+++ b/java/com/android/dialer/app/calllog/CallLogAdapter.java
@@ -73,7 +73,7 @@
 import com.android.dialer.common.concurrent.AsyncTaskExecutor;
 import com.android.dialer.common.concurrent.AsyncTaskExecutors;
 import com.android.dialer.compat.android.provider.VoicemailCompat;
-import com.android.dialer.configprovider.ConfigProviderBindings;
+import com.android.dialer.configprovider.ConfigProviderComponent;
 import com.android.dialer.duo.Duo;
 import com.android.dialer.duo.DuoComponent;
 import com.android.dialer.duo.DuoListener;
@@ -287,7 +287,8 @@
       new View.OnLongClickListener() {
         @Override
         public boolean onLongClick(View v) {
-          if (ConfigProviderBindings.get(v.getContext())
+          if (ConfigProviderComponent.get(v.getContext())
+                  .getConfigProvider()
                   .getBoolean(ENABLE_CALL_LOG_MULTI_SELECT, ENABLE_CALL_LOG_MULTI_SELECT_FLAG)
               && voicemailPlaybackPresenter != null) {
             if (v.getId() == R.id.primary_action_view || v.getId() == R.id.quick_contact_photo) {
@@ -852,7 +853,9 @@
   }
 
   private boolean isHideableEmergencyNumberRow(@Nullable String number) {
-    if (!ConfigProviderBindings.get(activity).getBoolean(FILTER_EMERGENCY_CALLS_FLAG, false)) {
+    if (!ConfigProviderComponent.get(activity)
+        .getConfigProvider()
+        .getBoolean(FILTER_EMERGENCY_CALLS_FLAG, false)) {
       return false;
     }
     return number != null && PhoneNumberUtils.isEmergencyNumber(number);
@@ -1058,7 +1061,8 @@
               details.countryIso,
               details.cachedContactInfo,
               position
-                  < ConfigProviderBindings.get(activity)
+                  < ConfigProviderComponent.get(activity)
+                      .getConfigProvider()
                       .getLong("number_of_call_to_do_remote_lookup", 5L));
       logCp2Metrics(details, info);
     }
diff --git a/java/com/android/dialer/app/calllog/CallLogFragment.java b/java/com/android/dialer/app/calllog/CallLogFragment.java
index 1e55c63..771254e 100644
--- a/java/com/android/dialer/app/calllog/CallLogFragment.java
+++ b/java/com/android/dialer/app/calllog/CallLogFragment.java
@@ -58,7 +58,7 @@
 import com.android.dialer.common.Assert;
 import com.android.dialer.common.FragmentUtils;
 import com.android.dialer.common.LogUtil;
-import com.android.dialer.configprovider.ConfigProviderBindings;
+import com.android.dialer.configprovider.ConfigProviderComponent;
 import com.android.dialer.database.CallLogQueryHandler;
 import com.android.dialer.database.CallLogQueryHandler.Listener;
 import com.android.dialer.location.GeoUtil;
@@ -297,7 +297,9 @@
 
   protected void setupView(View view) {
     recyclerView = (RecyclerView) view.findViewById(R.id.recycler_view);
-    if (ConfigProviderBindings.get(getContext()).getBoolean("is_call_log_item_anim_null", false)) {
+    if (ConfigProviderComponent.get(getContext())
+        .getConfigProvider()
+        .getBoolean("is_call_log_item_anim_null", false)) {
       recyclerView.setItemAnimator(null);
     }
     recyclerView.setHasFixedSize(true);
diff --git a/java/com/android/dialer/app/calllog/CallLogListItemViewHolder.java b/java/com/android/dialer/app/calllog/CallLogListItemViewHolder.java
index 48e523d..5b579f5 100644
--- a/java/com/android/dialer/app/calllog/CallLogListItemViewHolder.java
+++ b/java/com/android/dialer/app/calllog/CallLogListItemViewHolder.java
@@ -69,7 +69,7 @@
 import com.android.dialer.common.Assert;
 import com.android.dialer.common.LogUtil;
 import com.android.dialer.common.concurrent.AsyncTaskExecutors;
-import com.android.dialer.configprovider.ConfigProviderBindings;
+import com.android.dialer.configprovider.ConfigProviderComponent;
 import com.android.dialer.constants.ActivityRequestCodes;
 import com.android.dialer.contactphoto.ContactPhotoManager;
 import com.android.dialer.dialercontact.DialerContact;
@@ -309,7 +309,8 @@
     primaryActionButtonView.setOnClickListener(this);
     primaryActionView.setOnClickListener(this.expandCollapseListener);
     if (this.voicemailPlaybackPresenter != null
-        && ConfigProviderBindings.get(this.context)
+        && ConfigProviderComponent.get(this.context)
+            .getConfigProvider()
             .getBoolean(
                 CallLogAdapter.ENABLE_CALL_LOG_MULTI_SELECT,
                 CallLogAdapter.ENABLE_CALL_LOG_MULTI_SELECT_FLAG)) {
@@ -710,7 +711,8 @@
           videoCallButtonView.setVisibility(View.VISIBLE);
           CallIntentBuilder.increaseLightbringerCallButtonAppearInExpandedCallLogItemCount();
         } else if (duo.isActivated(context) && !identifiedSpamCall) {
-          if (ConfigProviderBindings.get(context)
+          if (ConfigProviderComponent.get(context)
+              .getConfigProvider()
               .getBoolean("enable_call_log_duo_invite_button", false)) {
             inviteVideoButtonView.setTag(IntentProvider.getDuoInviteIntentProvider(number));
             inviteVideoButtonView.setVisibility(View.VISIBLE);
@@ -719,7 +721,8 @@
           }
         } else if (duo.isEnabled(context) && !identifiedSpamCall) {
           if (!duo.isInstalled(context)) {
-            if (ConfigProviderBindings.get(context)
+            if (ConfigProviderComponent.get(context)
+                .getConfigProvider()
                 .getBoolean("enable_call_log_install_duo_button", false)) {
               setUpVideoButtonView.setTag(IntentProvider.getInstallDuoIntentProvider());
               setUpVideoButtonView.setVisibility(View.VISIBLE);
@@ -728,7 +731,8 @@
               CallIntentBuilder.increaseLightbringerCallButtonAppearInExpandedCallLogItemCount();
             }
           } else {
-            if (ConfigProviderBindings.get(context)
+            if (ConfigProviderComponent.get(context)
+                .getConfigProvider()
                 .getBoolean("enable_call_log_activate_duo_button", false)) {
               setUpVideoButtonView.setTag(IntentProvider.getSetUpDuoIntentProvider());
               setUpVideoButtonView.setVisibility(View.VISIBLE);
diff --git a/java/com/android/dialer/app/calllog/CallLogNotificationsQueryHelper.java b/java/com/android/dialer/app/calllog/CallLogNotificationsQueryHelper.java
index d137029..b5ca090 100644
--- a/java/com/android/dialer/app/calllog/CallLogNotificationsQueryHelper.java
+++ b/java/com/android/dialer/app/calllog/CallLogNotificationsQueryHelper.java
@@ -39,7 +39,7 @@
 import com.android.dialer.common.LogUtil;
 import com.android.dialer.common.database.Selection;
 import com.android.dialer.compat.android.provider.VoicemailCompat;
-import com.android.dialer.configprovider.ConfigProviderBindings;
+import com.android.dialer.configprovider.ConfigProviderComponent;
 import com.android.dialer.location.GeoUtil;
 import com.android.dialer.phonenumbercache.ContactInfo;
 import com.android.dialer.phonenumbercache.ContactInfoHelper;
@@ -167,7 +167,8 @@
     return newCallsQuery.query(
         Calls.VOICEMAIL_TYPE,
         System.currentTimeMillis()
-            - ConfigProviderBindings.get(context)
+            - ConfigProviderComponent.get(context)
+                .getConfigProvider()
                 .getLong(
                     CONFIG_NEW_VOICEMAIL_NOTIFICATION_THRESHOLD_OFFSET, TimeUnit.DAYS.toMillis(7)));
   }
diff --git a/java/com/android/dialer/app/settings/DialerSettingsActivity.java b/java/com/android/dialer/app/settings/DialerSettingsActivity.java
index 6b763ae..9cd01b6 100644
--- a/java/com/android/dialer/app/settings/DialerSettingsActivity.java
+++ b/java/com/android/dialer/app/settings/DialerSettingsActivity.java
@@ -38,7 +38,7 @@
 import com.android.dialer.blocking.FilteredNumberCompat;
 import com.android.dialer.common.LogUtil;
 import com.android.dialer.compat.telephony.TelephonyManagerCompat;
-import com.android.dialer.configprovider.ConfigProviderBindings;
+import com.android.dialer.configprovider.ConfigProviderComponent;
 import com.android.dialer.proguard.UsedByReflection;
 import com.android.dialer.util.PermissionsUtil;
 import com.android.dialer.voicemail.settings.VoicemailSettingsFragment;
@@ -160,7 +160,7 @@
 
     boolean isAssistedDialingEnabled =
         ConcreteCreator.isAssistedDialingEnabled(
-            ConfigProviderBindings.get(getApplicationContext()));
+            ConfigProviderComponent.get(getApplicationContext()).getConfigProvider());
     LogUtil.i(
         "DialerSettingsActivity.onBuildHeaders",
         "showing assisted dialing header: " + isAssistedDialingEnabled);
diff --git a/java/com/android/dialer/app/voicemail/VoicemailPlaybackPresenter.java b/java/com/android/dialer/app/voicemail/VoicemailPlaybackPresenter.java
index 917870e..e4c075b 100644
--- a/java/com/android/dialer/app/voicemail/VoicemailPlaybackPresenter.java
+++ b/java/com/android/dialer/app/voicemail/VoicemailPlaybackPresenter.java
@@ -52,7 +52,7 @@
 import com.android.dialer.common.concurrent.AsyncTaskExecutors;
 import com.android.dialer.common.concurrent.DialerExecutor;
 import com.android.dialer.common.concurrent.DialerExecutorComponent;
-import com.android.dialer.configprovider.ConfigProviderBindings;
+import com.android.dialer.configprovider.ConfigProviderComponent;
 import com.android.dialer.constants.Constants;
 import com.android.dialer.logging.DialerImpression;
 import com.android.dialer.logging.Logger;
@@ -870,7 +870,9 @@
   }
 
   private static boolean isShareVoicemailAllowed(Context context) {
-    return ConfigProviderBindings.get(context).getBoolean(CONFIG_SHARE_VOICEMAIL_ALLOWED, true);
+    return ConfigProviderComponent.get(context)
+        .getConfigProvider()
+        .getBoolean(CONFIG_SHARE_VOICEMAIL_ALLOWED, true);
   }
 
   private static class ShareVoicemailWorker
diff --git a/java/com/android/dialer/assisteddialing/ConcreteCreator.java b/java/com/android/dialer/assisteddialing/ConcreteCreator.java
index dfd28a6..0507743 100644
--- a/java/com/android/dialer/assisteddialing/ConcreteCreator.java
+++ b/java/com/android/dialer/assisteddialing/ConcreteCreator.java
@@ -27,7 +27,7 @@
 import android.telephony.TelephonyManager;
 import com.android.dialer.common.LogUtil;
 import com.android.dialer.configprovider.ConfigProvider;
-import com.android.dialer.configprovider.ConfigProviderBindings;
+import com.android.dialer.configprovider.ConfigProviderComponent;
 import com.android.dialer.strictmode.StrictModeUtils;
 
 /**
@@ -55,7 +55,7 @@
   public static AssistedDialingMediator createNewAssistedDialingMediator(
       @NonNull TelephonyManager telephonyManager, @NonNull Context context) {
 
-    ConfigProvider configProvider = ConfigProviderBindings.get(context);
+    ConfigProvider configProvider = ConfigProviderComponent.get(context).getConfigProvider();
 
     if (telephonyManager == null) {
       LogUtil.i(
diff --git a/java/com/android/dialer/assisteddialing/ui/AssistedDialingSettingFragment.java b/java/com/android/dialer/assisteddialing/ui/AssistedDialingSettingFragment.java
index f1ea4c9..965a169 100644
--- a/java/com/android/dialer/assisteddialing/ui/AssistedDialingSettingFragment.java
+++ b/java/com/android/dialer/assisteddialing/ui/AssistedDialingSettingFragment.java
@@ -29,7 +29,7 @@
 import com.android.dialer.assisteddialing.ConcreteCreator;
 import com.android.dialer.assisteddialing.CountryCodeProvider;
 import com.android.dialer.common.LogUtil;
-import com.android.dialer.configprovider.ConfigProviderBindings;
+import com.android.dialer.configprovider.ConfigProviderComponent;
 import com.android.dialer.logging.DialerImpression;
 import com.android.dialer.logging.Logger;
 import com.google.auto.value.AutoValue;
@@ -70,7 +70,8 @@
             getContext().getSystemService(TelephonyManager.class), getContext());
 
     countryCodeProvider =
-        ConcreteCreator.getCountryCodeProvider(ConfigProviderBindings.get(getContext()));
+        ConcreteCreator.getCountryCodeProvider(
+            ConfigProviderComponent.get(getContext()).getConfigProvider());
 
     // Load the preferences from an XML resource
     addPreferencesFromResource(R.xml.assisted_dialing_setting);
diff --git a/java/com/android/dialer/blocking/FilteredNumberCompat.java b/java/com/android/dialer/blocking/FilteredNumberCompat.java
index d263d21..71af340 100644
--- a/java/com/android/dialer/blocking/FilteredNumberCompat.java
+++ b/java/com/android/dialer/blocking/FilteredNumberCompat.java
@@ -30,7 +30,7 @@
 import android.telecom.TelecomManager;
 import android.telephony.PhoneNumberUtils;
 import com.android.dialer.common.LogUtil;
-import com.android.dialer.configprovider.ConfigProviderBindings;
+import com.android.dialer.configprovider.ConfigProviderComponent;
 import com.android.dialer.database.FilteredNumberContract.FilteredNumber;
 import com.android.dialer.database.FilteredNumberContract.FilteredNumberColumns;
 import com.android.dialer.database.FilteredNumberContract.FilteredNumberSources;
@@ -115,7 +115,9 @@
    *     migration has been performed, {@code false} otherwise.
    */
   public static boolean useNewFiltering(Context context) {
-    return !ConfigProviderBindings.get(context).getBoolean("debug_force_dialer_filtering", false)
+    return !ConfigProviderComponent.get(context)
+            .getConfigProvider()
+            .getBoolean("debug_force_dialer_filtering", false)
         && canUseNewFiltering()
         && hasMigratedToNewBlocking(context);
   }
diff --git a/java/com/android/dialer/callcomposer/CallComposerActivity.java b/java/com/android/dialer/callcomposer/CallComposerActivity.java
index ce3f7f2..49bc29c 100644
--- a/java/com/android/dialer/callcomposer/CallComposerActivity.java
+++ b/java/com/android/dialer/callcomposer/CallComposerActivity.java
@@ -60,7 +60,7 @@
 import com.android.dialer.common.concurrent.DialerExecutor;
 import com.android.dialer.common.concurrent.DialerExecutorComponent;
 import com.android.dialer.common.concurrent.ThreadUtil;
-import com.android.dialer.configprovider.ConfigProviderBindings;
+import com.android.dialer.configprovider.ConfigProviderComponent;
 import com.android.dialer.constants.Constants;
 import com.android.dialer.contactphoto.ContactPhotoManager;
 import com.android.dialer.dialercontact.DialerContact;
@@ -345,7 +345,9 @@
 
   @VisibleForTesting
   public long getSessionStartedTimeoutMillis() {
-    return ConfigProviderBindings.get(this).getLong("ec_session_started_timeout", 10_000);
+    return ConfigProviderComponent.get(this)
+        .getConfigProvider()
+        .getLong("ec_session_started_timeout", 10_000);
   }
 
   @Override
@@ -441,7 +443,9 @@
     getEnrichedCallManager().sendCallComposerData(sessionId, data);
     maybeShowPrivacyToast(data);
     if (data.hasImageData()
-        && ConfigProviderBindings.get(this).getBoolean("enable_delayed_ec_images", true)
+        && ConfigProviderComponent.get(this)
+            .getConfigProvider()
+            .getBoolean("enable_delayed_ec_images", true)
         && !TelecomUtil.isInManagedCall(this)) {
       timeoutHandler.postDelayed(placeTelecomCallRunnable, getRCSTimeoutMillis());
       startActivity(
@@ -476,7 +480,9 @@
 
   @VisibleForTesting
   public long getRCSTimeoutMillis() {
-    return ConfigProviderBindings.get(this).getLong("ec_image_upload_timeout", 15_000);
+    return ConfigProviderComponent.get(this)
+        .getConfigProvider()
+        .getLong("ec_image_upload_timeout", 15_000);
   }
 
   private void placeTelecomCall() {
diff --git a/java/com/android/dialer/configprovider/ConfigProviderBindings.java b/java/com/android/dialer/configprovider/ConfigProviderBindings.java
deleted file mode 100644
index b5b9020..0000000
--- a/java/com/android/dialer/configprovider/ConfigProviderBindings.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License
- */
-
-package com.android.dialer.configprovider;
-
-import android.content.Context;
-import android.support.annotation.NonNull;
-import com.android.dialer.common.Assert;
-
-/** Accessor for getting a {@link ConfigProvider}. */
-public class ConfigProviderBindings {
-
-  public static ConfigProvider get(@NonNull Context context) {
-    Assert.isNotNull(context);
-    return ConfigProviderComponent.get(context).getConfigProvider();
-  }
-}
diff --git a/java/com/android/dialer/configprovider/ConfigProviderComponent.java b/java/com/android/dialer/configprovider/ConfigProviderComponent.java
index e974e30..5b5afd7 100644
--- a/java/com/android/dialer/configprovider/ConfigProviderComponent.java
+++ b/java/com/android/dialer/configprovider/ConfigProviderComponent.java
@@ -27,7 +27,6 @@
 public abstract class ConfigProviderComponent {
 
   @NonNull
-  @Deprecated // Use ConfigProviderBindings instead
   public abstract ConfigProvider getConfigProvider();
 
   public static ConfigProviderComponent get(Context context) {
diff --git a/java/com/android/dialer/database/DialerDatabaseHelper.java b/java/com/android/dialer/database/DialerDatabaseHelper.java
index b61cc39..b1cd090 100644
--- a/java/com/android/dialer/database/DialerDatabaseHelper.java
+++ b/java/com/android/dialer/database/DialerDatabaseHelper.java
@@ -42,7 +42,7 @@
 import com.android.dialer.common.concurrent.DialerExecutorComponent;
 import com.android.dialer.common.concurrent.DialerFutureSerializer;
 import com.android.dialer.common.database.Selection;
-import com.android.dialer.configprovider.ConfigProviderBindings;
+import com.android.dialer.configprovider.ConfigProviderComponent;
 import com.android.dialer.database.FilteredNumberContract.FilteredNumberColumns;
 import com.android.dialer.smartdial.util.SmartDialNameMatcher;
 import com.android.dialer.smartdial.util.SmartDialPrefix;
@@ -682,7 +682,9 @@
         context.getSharedPreferences(DATABASE_LAST_CREATED_SHARED_PREF, Context.MODE_PRIVATE);
 
     long defaultLastUpdateMillis =
-        ConfigProviderBindings.get(context).getLong(DEFAULT_LAST_UPDATED_CONFIG_KEY, 0);
+        ConfigProviderComponent.get(context)
+            .getConfigProvider()
+            .getLong(DEFAULT_LAST_UPDATED_CONFIG_KEY, 0);
 
     long sharedPrefLastUpdateMillis =
         databaseLastUpdateSharedPref.getLong(LAST_UPDATED_MILLIS, defaultLastUpdateMillis);
diff --git a/java/com/android/dialer/main/impl/OldMainActivityPeer.java b/java/com/android/dialer/main/impl/OldMainActivityPeer.java
index e14c5b9..9169dc3 100644
--- a/java/com/android/dialer/main/impl/OldMainActivityPeer.java
+++ b/java/com/android/dialer/main/impl/OldMainActivityPeer.java
@@ -81,7 +81,7 @@
 import com.android.dialer.common.concurrent.DialerExecutorComponent;
 import com.android.dialer.common.concurrent.ThreadUtil;
 import com.android.dialer.common.concurrent.UiListener;
-import com.android.dialer.configprovider.ConfigProviderBindings;
+import com.android.dialer.configprovider.ConfigProviderComponent;
 import com.android.dialer.constants.ActivityRequestCodes;
 import com.android.dialer.contactsfragment.ContactsFragment;
 import com.android.dialer.contactsfragment.ContactsFragment.Header;
@@ -1313,7 +1313,9 @@
       Logger.get(activity).logScreenView(ScreenEvent.Type.MAIN_SPEED_DIAL, activity);
       selectedTab = TabIndex.SPEED_DIAL;
 
-      if (ConfigProviderBindings.get(activity).getBoolean("enable_new_favorites_tab", false)) {
+      if (ConfigProviderComponent.get(activity)
+          .getConfigProvider()
+          .getBoolean("enable_new_favorites_tab", false)) {
         android.support.v4.app.Fragment supportFragment =
             supportFragmentManager.findFragmentByTag(SPEED_DIAL_TAG);
         showSupportFragment(
@@ -1618,7 +1620,10 @@
     LastTabController(Context context, BottomNavBar bottomNavBar, boolean canShowVoicemailTab) {
       this.context = context;
       this.bottomNavBar = bottomNavBar;
-      isEnabled = ConfigProviderBindings.get(context).getBoolean("last_tab_enabled", false);
+      isEnabled =
+          ConfigProviderComponent.get(context)
+              .getConfigProvider()
+              .getBoolean("last_tab_enabled", false);
       this.canShowVoicemailTab = canShowVoicemailTab;
     }
 
diff --git a/java/com/android/dialer/main/impl/bottomnav/BottomNavItem.java b/java/com/android/dialer/main/impl/bottomnav/BottomNavItem.java
index 3a43f84..4794b88 100644
--- a/java/com/android/dialer/main/impl/bottomnav/BottomNavItem.java
+++ b/java/com/android/dialer/main/impl/bottomnav/BottomNavItem.java
@@ -29,7 +29,7 @@
 import android.widget.LinearLayout;
 import android.widget.TextView;
 import com.android.dialer.common.Assert;
-import com.android.dialer.configprovider.ConfigProviderBindings;
+import com.android.dialer.configprovider.ConfigProviderComponent;
 import com.android.dialer.theme.base.ThemeComponent;
 
 /** Navigation item in a bottom nav. */
@@ -75,7 +75,9 @@
       String countString = String.format(Integer.toString(count));
 
       boolean use99PlusCount =
-          ConfigProviderBindings.get(getContext()).getBoolean("use_99_plus", false);
+          ConfigProviderComponent.get(getContext())
+              .getConfigProvider()
+              .getBoolean("use_99_plus", false);
       boolean use9Plus = !use99PlusCount;
 
       if (use99PlusCount && count > 99) {
diff --git a/java/com/android/dialer/oem/CequintCallerIdManager.java b/java/com/android/dialer/oem/CequintCallerIdManager.java
index 53f5352..ea6cbb8 100644
--- a/java/com/android/dialer/oem/CequintCallerIdManager.java
+++ b/java/com/android/dialer/oem/CequintCallerIdManager.java
@@ -30,7 +30,7 @@
 import android.text.TextUtils;
 import com.android.dialer.common.Assert;
 import com.android.dialer.common.LogUtil;
-import com.android.dialer.configprovider.ConfigProviderBindings;
+import com.android.dialer.configprovider.ConfigProviderComponent;
 import com.google.auto.value.AutoValue;
 import java.util.concurrent.ConcurrentHashMap;
 
@@ -113,7 +113,9 @@
   /** Check whether Cequint Caller ID provider package is available and enabled. */
   @AnyThread
   public static synchronized boolean isCequintCallerIdEnabled(@NonNull Context context) {
-    if (!ConfigProviderBindings.get(context).getBoolean(CONFIG_CALLER_ID_ENABLED, true)) {
+    if (!ConfigProviderComponent.get(context)
+        .getConfigProvider()
+        .getBoolean(CONFIG_CALLER_ID_ENABLED, true)) {
       return false;
     }
     if (!hasAlreadyCheckedCequintCallerIdPackage) {
diff --git a/java/com/android/dialer/oem/MotorolaUtils.java b/java/com/android/dialer/oem/MotorolaUtils.java
index 3879f91..0268937 100644
--- a/java/com/android/dialer/oem/MotorolaUtils.java
+++ b/java/com/android/dialer/oem/MotorolaUtils.java
@@ -22,7 +22,7 @@
 import android.telephony.TelephonyManager;
 import com.android.dialer.common.LogUtil;
 import com.android.dialer.common.PackageUtils;
-import com.android.dialer.configprovider.ConfigProviderBindings;
+import com.android.dialer.configprovider.ConfigProviderComponent;
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
 
@@ -79,19 +79,22 @@
   }
 
   public static boolean shouldBlinkHdIconWhenConnectingCall(Context context) {
-    return ConfigProviderBindings.get(context)
+    return ConfigProviderComponent.get(context)
+            .getConfigProvider()
             .getBoolean(CONFIG_HD_CODEC_BLINKING_ICON_WHEN_CONNECTING_CALL_ENABLED, true)
         && isSupportingSprintHdCodec(context);
   }
 
   public static boolean shouldShowHdIconInNotification(Context context) {
-    return ConfigProviderBindings.get(context)
+    return ConfigProviderComponent.get(context)
+            .getConfigProvider()
             .getBoolean(CONFIG_HD_CODEC_SHOW_ICON_IN_NOTIFICATION_ENABLED, true)
         && isSupportingSprintHdCodec(context);
   }
 
   public static boolean shouldShowWifiIconInCallLog(Context context, int features) {
-    return ConfigProviderBindings.get(context)
+    return ConfigProviderComponent.get(context)
+            .getConfigProvider()
             .getBoolean(CONFIG_WIFI_CALL_SHOW_ICON_IN_CALL_LOG_ENABLED, true)
         && (features & Calls.FEATURES_WIFI) == Calls.FEATURES_WIFI
         && isSupportingSprintWifiCall(context);
@@ -102,7 +105,8 @@
       return disablePhoneNumberFormattingForTest;
     }
 
-    return ConfigProviderBindings.get(context)
+    return ConfigProviderComponent.get(context)
+            .getConfigProvider()
             .getBoolean(CONFIG_DISABLE_PHONE_NUMBER_FORMATTING, true)
         && context.getResources().getBoolean(R.bool.motorola_disable_phone_number_formatting);
   }
diff --git a/java/com/android/dialer/postcall/PostCall.java b/java/com/android/dialer/postcall/PostCall.java
index 341db3b..542b8d0 100644
--- a/java/com/android/dialer/postcall/PostCall.java
+++ b/java/com/android/dialer/postcall/PostCall.java
@@ -29,7 +29,7 @@
 import com.android.dialer.common.Assert;
 import com.android.dialer.common.LogUtil;
 import com.android.dialer.configprovider.ConfigProvider;
-import com.android.dialer.configprovider.ConfigProviderBindings;
+import com.android.dialer.configprovider.ConfigProviderComponent;
 import com.android.dialer.enrichedcall.EnrichedCallCapabilities;
 import com.android.dialer.enrichedcall.EnrichedCallComponent;
 import com.android.dialer.enrichedcall.EnrichedCallManager;
@@ -96,7 +96,10 @@
         };
 
     int durationMs =
-        (int) ConfigProviderBindings.get(activity).getLong("post_call_prompt_duration_ms", 8_000);
+        (int)
+            ConfigProviderComponent.get(activity)
+                .getConfigProvider()
+                .getLong("post_call_prompt_duration_ms", 8_000);
     activeSnackbar =
         Snackbar.make(rootView, message, durationMs)
             .setAction(actionText, onClickListener)
@@ -215,7 +218,7 @@
 
     boolean callDisconnectedByUser = manager.getBoolean(KEY_POST_CALL_DISCONNECT_PRESSED, false);
 
-    ConfigProvider binding = ConfigProviderBindings.get(context);
+    ConfigProvider binding = ConfigProviderComponent.get(context).getConfigProvider();
     return disconnectTimeMillis != -1
         && connectTimeMillis != -1
         && isSimReady(context)
@@ -240,7 +243,9 @@
   }
 
   private static boolean isEnabled(Context context) {
-    return ConfigProviderBindings.get(context).getBoolean("enable_post_call_prod", true);
+    return ConfigProviderComponent.get(context)
+        .getConfigProvider()
+        .getBoolean("enable_post_call_prod", true);
   }
 
   private static boolean isSimReady(Context context) {
diff --git a/java/com/android/dialer/precall/externalreceiver/LaunchPreCallActivity.java b/java/com/android/dialer/precall/externalreceiver/LaunchPreCallActivity.java
index bf7995a..60245ee 100644
--- a/java/com/android/dialer/precall/externalreceiver/LaunchPreCallActivity.java
+++ b/java/com/android/dialer/precall/externalreceiver/LaunchPreCallActivity.java
@@ -28,7 +28,7 @@
 import com.android.dialer.callintent.CallIntentBuilder;
 import com.android.dialer.common.LogUtil;
 import com.android.dialer.configprovider.ConfigProvider;
-import com.android.dialer.configprovider.ConfigProviderBindings;
+import com.android.dialer.configprovider.ConfigProviderComponent;
 import com.android.dialer.logging.DialerImpression;
 import com.android.dialer.logging.Logger;
 import com.android.dialer.precall.PreCall;
@@ -69,7 +69,8 @@
     super.onCreate(savedInstanceState);
     Logger.get(this).logImpression(DialerImpression.Type.PRECALL_INITIATED_EXTERNAL);
 
-    ConfigProvider configProvider = ConfigProviderBindings.get(getApplicationContext());
+    ConfigProvider configProvider =
+        ConfigProviderComponent.get(getApplicationContext()).getConfigProvider();
     Intent intent = getIntent();
     CallIntentBuilder builder = new CallIntentBuilder(intent.getData(), Type.EXTERNAL_INITIATION);
 
diff --git a/java/com/android/dialer/precall/impl/AssistedDialAction.java b/java/com/android/dialer/precall/impl/AssistedDialAction.java
index e4e5255..40a810b 100644
--- a/java/com/android/dialer/precall/impl/AssistedDialAction.java
+++ b/java/com/android/dialer/precall/impl/AssistedDialAction.java
@@ -31,7 +31,7 @@
 import com.android.dialer.common.LogUtil;
 import com.android.dialer.compat.telephony.TelephonyManagerCompat;
 import com.android.dialer.configprovider.ConfigProvider;
-import com.android.dialer.configprovider.ConfigProviderBindings;
+import com.android.dialer.configprovider.ConfigProviderComponent;
 import com.android.dialer.precall.PreCallAction;
 import com.android.dialer.precall.PreCallCoordinator;
 import com.android.dialer.telecom.TelecomUtil;
@@ -90,7 +90,7 @@
   private TelephonyManager getAssistedDialingTelephonyManager(
       Context context, CallIntentBuilder builder) {
 
-    ConfigProvider configProvider = ConfigProviderBindings.get(context);
+    ConfigProvider configProvider = ConfigProviderComponent.get(context).getConfigProvider();
     TelephonyManager telephonyManager = context.getSystemService(TelephonyManager.class);
     // None of this will be required in the framework because the PhoneAccountHandle
     // is already mapped to the request in the TelecomConnection.
diff --git a/java/com/android/dialer/precall/impl/CallingAccountSelector.java b/java/com/android/dialer/precall/impl/CallingAccountSelector.java
index b2a6593..042f585 100644
--- a/java/com/android/dialer/precall/impl/CallingAccountSelector.java
+++ b/java/com/android/dialer/precall/impl/CallingAccountSelector.java
@@ -32,7 +32,7 @@
 import com.android.dialer.callintent.CallIntentBuilder;
 import com.android.dialer.common.Assert;
 import com.android.dialer.common.LogUtil;
-import com.android.dialer.configprovider.ConfigProviderBindings;
+import com.android.dialer.configprovider.ConfigProviderComponent;
 import com.android.dialer.logging.DialerImpression.Type;
 import com.android.dialer.logging.Logger;
 import com.android.dialer.precall.PreCallAction;
@@ -64,7 +64,8 @@
 
   @Override
   public boolean requiresUi(Context context, CallIntentBuilder builder) {
-    if (!ConfigProviderBindings.get(context)
+    if (!ConfigProviderComponent.get(context)
+        .getConfigProvider()
         .getBoolean("precall_calling_account_selector_enabled", true)) {
       return false;
     }
diff --git a/java/com/android/dialer/precall/impl/UkRegionPrefixInInternationalFormatHandler.java b/java/com/android/dialer/precall/impl/UkRegionPrefixInInternationalFormatHandler.java
index b8f54d8..825375d 100644
--- a/java/com/android/dialer/precall/impl/UkRegionPrefixInInternationalFormatHandler.java
+++ b/java/com/android/dialer/precall/impl/UkRegionPrefixInInternationalFormatHandler.java
@@ -19,7 +19,7 @@
 import android.content.Context;
 import android.telephony.PhoneNumberUtils;
 import com.android.dialer.common.LogUtil;
-import com.android.dialer.configprovider.ConfigProviderBindings;
+import com.android.dialer.configprovider.ConfigProviderComponent;
 import com.android.dialer.precall.impl.MalformedNumberRectifier.MalformedNumberHandler;
 import com.google.common.base.Optional;
 
@@ -37,7 +37,8 @@
 
   @Override
   public Optional<String> handle(Context context, String number) {
-    if (!ConfigProviderBindings.get(context)
+    if (!ConfigProviderComponent.get(context)
+        .getConfigProvider()
         .getBoolean("uk_region_prefix_in_international_format_fix_enabled", true)) {
       return Optional.absent();
     }
diff --git a/java/com/android/dialer/preferredsim/PreferredAccountUtil.java b/java/com/android/dialer/preferredsim/PreferredAccountUtil.java
index b546dc0..1cfdbb1 100644
--- a/java/com/android/dialer/preferredsim/PreferredAccountUtil.java
+++ b/java/com/android/dialer/preferredsim/PreferredAccountUtil.java
@@ -30,7 +30,7 @@
 import android.telephony.TelephonyManager;
 import android.text.TextUtils;
 import com.android.dialer.common.LogUtil;
-import com.android.dialer.configprovider.ConfigProviderBindings;
+import com.android.dialer.configprovider.ConfigProviderComponent;
 import com.google.common.base.Optional;
 import com.google.common.collect.ImmutableSet;
 
@@ -102,7 +102,8 @@
    */
   public static ImmutableSet<String> getValidAccountTypes(Context context) {
     return ImmutableSet.copyOf(
-        ConfigProviderBindings.get(context)
+        ConfigProviderComponent.get(context)
+            .getConfigProvider()
             .getString(
                 "preferred_sim_valid_account_types",
                 "com.google;"
diff --git a/java/com/android/dialer/preferredsim/impl/PreferredAccountWorkerImpl.java b/java/com/android/dialer/preferredsim/impl/PreferredAccountWorkerImpl.java
index 086cd7a..ffd98f4 100644
--- a/java/com/android/dialer/preferredsim/impl/PreferredAccountWorkerImpl.java
+++ b/java/com/android/dialer/preferredsim/impl/PreferredAccountWorkerImpl.java
@@ -44,7 +44,7 @@
 import com.android.dialer.common.Assert;
 import com.android.dialer.common.LogUtil;
 import com.android.dialer.common.concurrent.Annotations.BackgroundExecutor;
-import com.android.dialer.configprovider.ConfigProviderBindings;
+import com.android.dialer.configprovider.ConfigProviderComponent;
 import com.android.dialer.inject.ApplicationContext;
 import com.android.dialer.logging.DialerImpression.Type;
 import com.android.dialer.logging.Logger;
@@ -357,7 +357,9 @@
   @WorkerThread
   private static boolean isPreferredSimEnabled(Context context) {
     Assert.isWorkerThread();
-    if (!ConfigProviderBindings.get(context).getBoolean("preferred_sim_enabled", true)) {
+    if (!ConfigProviderComponent.get(context)
+        .getConfigProvider()
+        .getBoolean("preferred_sim_enabled", true)) {
       return false;
     }
 
diff --git a/java/com/android/dialer/shortcuts/Shortcuts.java b/java/com/android/dialer/shortcuts/Shortcuts.java
index c2bbb4d..d08e344 100644
--- a/java/com/android/dialer/shortcuts/Shortcuts.java
+++ b/java/com/android/dialer/shortcuts/Shortcuts.java
@@ -18,7 +18,7 @@
 
 import android.content.Context;
 import android.support.annotation.NonNull;
-import com.android.dialer.configprovider.ConfigProviderBindings;
+import com.android.dialer.configprovider.ConfigProviderComponent;
 
 /** Checks if dynamic shortcuts should be enabled. */
 public class Shortcuts {
@@ -27,7 +27,9 @@
   private static final String DYNAMIC_SHORTCUTS_ENABLED = "dynamic_shortcuts_enabled";
 
   static boolean areDynamicShortcutsEnabled(@NonNull Context context) {
-    return ConfigProviderBindings.get(context).getBoolean(DYNAMIC_SHORTCUTS_ENABLED, true);
+    return ConfigProviderComponent.get(context)
+        .getConfigProvider()
+        .getBoolean(DYNAMIC_SHORTCUTS_ENABLED, true);
   }
 
   private Shortcuts() {}
diff --git a/java/com/android/dialer/spam/promo/SpamBlockingPromoHelper.java b/java/com/android/dialer/spam/promo/SpamBlockingPromoHelper.java
index 34209cc..c270c59 100644
--- a/java/com/android/dialer/spam/promo/SpamBlockingPromoHelper.java
+++ b/java/com/android/dialer/spam/promo/SpamBlockingPromoHelper.java
@@ -28,7 +28,7 @@
 import android.support.v4.os.BuildCompat;
 import android.view.View;
 import android.widget.Toast;
-import com.android.dialer.configprovider.ConfigProviderBindings;
+import com.android.dialer.configprovider.ConfigProviderComponent;
 import com.android.dialer.logging.DialerImpression;
 import com.android.dialer.logging.Logger;
 import com.android.dialer.notification.DialerNotificationManager;
@@ -65,7 +65,9 @@
    * @return true if we should show a spam blocking promo.
    */
   public boolean shouldShowSpamBlockingPromo() {
-    if (!ConfigProviderBindings.get(context).getBoolean(ENABLE_SPAM_BLOCKING_PROMO, false)
+    if (!ConfigProviderComponent.get(context)
+            .getConfigProvider()
+            .getBoolean(ENABLE_SPAM_BLOCKING_PROMO, false)
         || !spamSettings.isSpamEnabled()
         || !spamSettings.isSpamBlockingEnabledByFlag()
         || spamSettings.isSpamBlockingEnabledByUser()) {
@@ -77,7 +79,8 @@
             .unencryptedSharedPrefs()
             .getLong(SPAM_BLOCKING_PROMO_LAST_SHOW_MILLIS, 0);
     long showPeriodMillis =
-        ConfigProviderBindings.get(context)
+        ConfigProviderComponent.get(context)
+            .getConfigProvider()
             .getLong(SPAM_BLOCKING_PROMO_PERIOD_MILLIS, Long.MAX_VALUE);
     return lastShowMillis == 0 || System.currentTimeMillis() - lastShowMillis > showPeriodMillis;
   }
@@ -85,7 +88,8 @@
   /* Returns true if we should show a spam blocking promo in after call notification scenario. */
   public boolean shouldShowAfterCallSpamBlockingPromo() {
     return shouldShowSpamBlockingPromo()
-        && ConfigProviderBindings.get(context)
+        && ConfigProviderComponent.get(context)
+            .getConfigProvider()
             .getBoolean(ENABLE_AFTER_CALL_SPAM_BLOCKING_PROMO, false);
   }
 
diff --git a/java/com/android/dialer/voicemail/listui/error/VoicemailStatusCorruptionHandler.java b/java/com/android/dialer/voicemail/listui/error/VoicemailStatusCorruptionHandler.java
index 630a17d..75b21e7 100644
--- a/java/com/android/dialer/voicemail/listui/error/VoicemailStatusCorruptionHandler.java
+++ b/java/com/android/dialer/voicemail/listui/error/VoicemailStatusCorruptionHandler.java
@@ -27,7 +27,7 @@
 import com.android.dialer.common.Assert;
 import com.android.dialer.common.LogUtil;
 import com.android.dialer.compat.telephony.TelephonyManagerCompat;
-import com.android.dialer.configprovider.ConfigProviderBindings;
+import com.android.dialer.configprovider.ConfigProviderComponent;
 import com.android.dialer.logging.DialerImpression;
 import com.android.dialer.logging.Logger;
 
@@ -47,7 +47,9 @@
 
   public static void maybeFixVoicemailStatus(Context context, Cursor statusCursor, Source source) {
 
-    if (ConfigProviderBindings.get(context).getBoolean(CONFIG_VVM_STATUS_FIX_DISABLED, false)) {
+    if (ConfigProviderComponent.get(context)
+        .getConfigProvider()
+        .getBoolean(CONFIG_VVM_STATUS_FIX_DISABLED, false)) {
       return;
     }
 
diff --git a/java/com/android/dialer/voicemail/listui/error/VoicemailTosMessageCreator.java b/java/com/android/dialer/voicemail/listui/error/VoicemailTosMessageCreator.java
index 6225212..efc094c 100644
--- a/java/com/android/dialer/voicemail/listui/error/VoicemailTosMessageCreator.java
+++ b/java/com/android/dialer/voicemail/listui/error/VoicemailTosMessageCreator.java
@@ -37,7 +37,7 @@
 import android.view.View.OnClickListener;
 import com.android.dialer.common.LogUtil;
 import com.android.dialer.compat.telephony.TelephonyManagerCompat;
-import com.android.dialer.configprovider.ConfigProviderBindings;
+import com.android.dialer.configprovider.ConfigProviderComponent;
 import com.android.dialer.logging.DialerImpression;
 import com.android.dialer.logging.Logger;
 import com.android.dialer.voicemail.listui.error.VoicemailErrorMessage.Action;
@@ -552,7 +552,8 @@
   }
 
   private String getLearnMoreUrl() {
-    return ConfigProviderBindings.get(context)
+    return ConfigProviderComponent.get(context)
+        .getConfigProvider()
         .getString(
             "voicemail_transcription_learn_more_url",
             context.getString(R.string.dialer_terms_and_conditions_learn_more_url));
diff --git a/java/com/android/incallui/CallCardPresenter.java b/java/com/android/incallui/CallCardPresenter.java
index 6614e7c..91255cc 100644
--- a/java/com/android/incallui/CallCardPresenter.java
+++ b/java/com/android/incallui/CallCardPresenter.java
@@ -48,7 +48,7 @@
 import com.android.contacts.common.util.ContactDisplayUtils;
 import com.android.dialer.common.Assert;
 import com.android.dialer.common.LogUtil;
-import com.android.dialer.configprovider.ConfigProviderBindings;
+import com.android.dialer.configprovider.ConfigProviderComponent;
 import com.android.dialer.logging.DialerImpression;
 import com.android.dialer.logging.Logger;
 import com.android.dialer.multimedia.MultimediaData;
@@ -768,7 +768,8 @@
   }
 
   private boolean shouldShowLocation() {
-    if (!ConfigProviderBindings.get(context)
+    if (!ConfigProviderComponent.get(context)
+        .getConfigProvider()
         .getBoolean(CONFIG_ENABLE_EMERGENCY_LOCATION, CONFIG_ENABLE_EMERGENCY_LOCATION_DEFAULT)) {
       LogUtil.i("CallCardPresenter.getLocationFragment", "disabled by config.");
       return false;
@@ -840,7 +841,8 @@
     int scale = batteryStatus.getIntExtra(BatteryManager.EXTRA_SCALE, -1);
     float batteryPercent = (100f * level) / scale;
     long threshold =
-        ConfigProviderBindings.get(context)
+        ConfigProviderComponent.get(context)
+            .getConfigProvider()
             .getLong(
                 CONFIG_MIN_BATTERY_PERCENT_FOR_EMERGENCY_LOCATION,
                 CONFIG_MIN_BATTERY_PERCENT_FOR_EMERGENCY_LOCATION_DEFAULT);
diff --git a/java/com/android/incallui/InCallActivity.java b/java/com/android/incallui/InCallActivity.java
index 2ec1730..7d9608a 100644
--- a/java/com/android/incallui/InCallActivity.java
+++ b/java/com/android/incallui/InCallActivity.java
@@ -62,7 +62,7 @@
 import com.android.dialer.common.concurrent.DialerExecutorComponent;
 import com.android.dialer.common.concurrent.ThreadUtil;
 import com.android.dialer.common.concurrent.UiListener;
-import com.android.dialer.configprovider.ConfigProviderBindings;
+import com.android.dialer.configprovider.ConfigProviderComponent;
 import com.android.dialer.logging.Logger;
 import com.android.dialer.logging.ScreenEvent;
 import com.android.dialer.metrics.Metrics;
@@ -1506,7 +1506,8 @@
       LogUtil.i("InCallActivity.shouldAllowAnswerAndRelease", "video call");
       return false;
     }
-    if (!ConfigProviderBindings.get(this)
+    if (!ConfigProviderComponent.get(this)
+        .getConfigProvider()
         .getBoolean(ConfigNames.ANSWER_AND_RELEASE_ENABLED, true)) {
       LogUtil.i("InCallActivity.shouldAllowAnswerAndRelease", "disabled by config");
       return false;
diff --git a/java/com/android/incallui/ReturnToCallController.java b/java/com/android/incallui/ReturnToCallController.java
index 09e1845..94ce8d7 100644
--- a/java/com/android/incallui/ReturnToCallController.java
+++ b/java/com/android/incallui/ReturnToCallController.java
@@ -32,7 +32,7 @@
 import com.android.bubble.BubbleInfo.Action;
 import com.android.contacts.common.util.ContactDisplayUtils;
 import com.android.dialer.common.LogUtil;
-import com.android.dialer.configprovider.ConfigProviderBindings;
+import com.android.dialer.configprovider.ConfigProviderComponent;
 import com.android.dialer.lettertile.LetterTileDrawable;
 import com.android.dialer.telecom.TelecomUtil;
 import com.android.dialer.theme.base.ThemeComponent;
@@ -82,7 +82,9 @@
   private InCallState inCallState;
 
   public static boolean isEnabled(Context context) {
-    return ConfigProviderBindings.get(context).getBoolean("enable_return_to_call_bubble_v2", false);
+    return ConfigProviderComponent.get(context)
+        .getConfigProvider()
+        .getBoolean("enable_return_to_call_bubble_v2", false);
   }
 
   public ReturnToCallController(Context context, ContactInfoCache contactInfoCache) {
diff --git a/java/com/android/incallui/StatusBarNotifier.java b/java/com/android/incallui/StatusBarNotifier.java
index 27d23c4..6519e00 100644
--- a/java/com/android/incallui/StatusBarNotifier.java
+++ b/java/com/android/incallui/StatusBarNotifier.java
@@ -66,7 +66,7 @@
 import com.android.contacts.common.util.ContactDisplayUtils;
 import com.android.dialer.common.Assert;
 import com.android.dialer.common.LogUtil;
-import com.android.dialer.configprovider.ConfigProviderBindings;
+import com.android.dialer.configprovider.ConfigProviderComponent;
 import com.android.dialer.contactphoto.BitmapUtil;
 import com.android.dialer.enrichedcall.EnrichedCallManager;
 import com.android.dialer.enrichedcall.Session;
@@ -292,7 +292,8 @@
     if (callState == DialerCallState.INCOMING
         || callState == DialerCallState.CALL_WAITING
         || isVideoUpgradeRequest) {
-      if (ConfigProviderBindings.get(context)
+      if (ConfigProviderComponent.get(context)
+          .getConfigProvider()
           .getBoolean("quiet_incoming_call_if_ui_showing", true)) {
         notificationType =
             InCallPresenter.getInstance().isShowingInCallUi()
diff --git a/java/com/android/incallui/VideoCallPresenter.java b/java/com/android/incallui/VideoCallPresenter.java
index 41c3354..88713f4 100644
--- a/java/com/android/incallui/VideoCallPresenter.java
+++ b/java/com/android/incallui/VideoCallPresenter.java
@@ -29,7 +29,7 @@
 import android.view.SurfaceView;
 import com.android.dialer.common.Assert;
 import com.android.dialer.common.LogUtil;
-import com.android.dialer.configprovider.ConfigProviderBindings;
+import com.android.dialer.configprovider.ConfigProviderComponent;
 import com.android.dialer.util.PermissionsUtil;
 import com.android.incallui.InCallPresenter.InCallDetailsListener;
 import com.android.incallui.InCallPresenter.InCallOrientationListener;
@@ -1081,7 +1081,9 @@
           "VideoCallPresenter.shouldShowCameraPermissionToast", "already shown for this call");
       return false;
     }
-    if (!ConfigProviderBindings.get(context).getBoolean("camera_permission_dialog_allowed", true)) {
+    if (!ConfigProviderComponent.get(context)
+        .getConfigProvider()
+        .getBoolean("camera_permission_dialog_allowed", true)) {
       LogUtil.i("VideoCallPresenter.shouldShowCameraPermissionToast", "disabled by config");
       return false;
     }
diff --git a/java/com/android/incallui/answer/impl/classifier/HumanInteractionClassifier.java b/java/com/android/incallui/answer/impl/classifier/HumanInteractionClassifier.java
index b661579..494a622 100644
--- a/java/com/android/incallui/answer/impl/classifier/HumanInteractionClassifier.java
+++ b/java/com/android/incallui/answer/impl/classifier/HumanInteractionClassifier.java
@@ -20,7 +20,7 @@
 import android.hardware.SensorEvent;
 import android.util.DisplayMetrics;
 import android.view.MotionEvent;
-import com.android.dialer.configprovider.ConfigProviderBindings;
+import com.android.dialer.configprovider.ConfigProviderComponent;
 
 /** An classifier trying to determine whether it is a human interacting with the phone or not. */
 class HumanInteractionClassifier extends Classifier {
@@ -44,7 +44,8 @@
     classifierData = new ClassifierData(dpi, displayMetrics.heightPixels);
     historyEvaluator = new HistoryEvaluator();
     enabled =
-        ConfigProviderBindings.get(context)
+        ConfigProviderComponent.get(context)
+            .getConfigProvider()
             .getBoolean(CONFIG_ANSWER_FALSE_TOUCH_DETECTION_ENABLED, true);
 
     strokeClassifiers =
diff --git a/java/com/android/incallui/answer/impl/hint/AnswerHintFactory.java b/java/com/android/incallui/answer/impl/hint/AnswerHintFactory.java
index 2ed4346..734fa96 100644
--- a/java/com/android/incallui/answer/impl/hint/AnswerHintFactory.java
+++ b/java/com/android/incallui/answer/impl/hint/AnswerHintFactory.java
@@ -24,7 +24,7 @@
 import android.support.annotation.VisibleForTesting;
 import com.android.dialer.common.Assert;
 import com.android.dialer.common.LogUtil;
-import com.android.dialer.configprovider.ConfigProviderBindings;
+import com.android.dialer.configprovider.ConfigProviderComponent;
 import com.android.dialer.storage.StorageComponent;
 import com.android.incallui.util.AccessibilityUtil;
 
@@ -95,7 +95,9 @@
             .unencryptedSharedPrefs()
             .getInt(ANSWERED_COUNT_PREFERENCE_KEY, 0);
     long threshold =
-        ConfigProviderBindings.get(context).getLong(CONFIG_ANSWER_HINT_ANSWERED_THRESHOLD_KEY, 3);
+        ConfigProviderComponent.get(context)
+            .getConfigProvider()
+            .getLong(CONFIG_ANSWER_HINT_ANSWERED_THRESHOLD_KEY, 3);
     LogUtil.i(
         "AnswerHintFactory.shouldShowAnswerHint",
         "answerCount: %d, threshold: %d",
@@ -110,7 +112,8 @@
    *     string.
    */
   private static boolean isDeviceWhitelisted(Context context, String device) {
-    return ConfigProviderBindings.get(context)
+    return ConfigProviderComponent.get(context)
+        .getConfigProvider()
         .getString(CONFIG_ANSWER_HINT_WHITELISTED_DEVICES_KEY, DEFAULT_WHITELISTED_DEVICES_CSV)
         .contains("/" + device + "/");
   }
diff --git a/java/com/android/incallui/answer/impl/hint/PawSecretCodeListener.java b/java/com/android/incallui/answer/impl/hint/PawSecretCodeListener.java
index f6444e5..e9d2c6f 100644
--- a/java/com/android/incallui/answer/impl/hint/PawSecretCodeListener.java
+++ b/java/com/android/incallui/answer/impl/hint/PawSecretCodeListener.java
@@ -25,7 +25,7 @@
 import android.text.TextUtils;
 import android.widget.Toast;
 import com.android.dialer.common.LogUtil;
-import com.android.dialer.configprovider.ConfigProviderBindings;
+import com.android.dialer.configprovider.ConfigProviderComponent;
 import com.android.dialer.logging.DialerImpression.Type;
 import com.android.dialer.logging.Logger;
 import com.android.dialer.storage.StorageComponent;
@@ -62,7 +62,9 @@
       return;
     }
     String secretCode =
-        ConfigProviderBindings.get(context).getString(CONFIG_PAW_SECRET_CODE, "729");
+        ConfigProviderComponent.get(context)
+            .getConfigProvider()
+            .getString(CONFIG_PAW_SECRET_CODE, "729");
     if (secretCode == null) {
       return;
     }
diff --git a/java/com/android/incallui/answerproximitysensor/AnswerProximitySensor.java b/java/com/android/incallui/answerproximitysensor/AnswerProximitySensor.java
index 939d120..8aeb05f 100644
--- a/java/com/android/incallui/answerproximitysensor/AnswerProximitySensor.java
+++ b/java/com/android/incallui/answerproximitysensor/AnswerProximitySensor.java
@@ -22,7 +22,7 @@
 import android.os.Trace;
 import android.view.Display;
 import com.android.dialer.common.LogUtil;
-import com.android.dialer.configprovider.ConfigProviderBindings;
+import com.android.dialer.configprovider.ConfigProviderComponent;
 import com.android.incallui.call.DialerCall;
 import com.android.incallui.call.DialerCallListener;
 import com.android.incallui.call.state.DialerCallState;
@@ -53,7 +53,8 @@
       return false;
     }
 
-    if (!ConfigProviderBindings.get(context)
+    if (!ConfigProviderComponent.get(context)
+        .getConfigProvider()
         .getBoolean(CONFIG_ANSWER_PROXIMITY_SENSOR_ENABLED, true)) {
       LogUtil.i("AnswerProximitySensor.shouldUse", "disabled by config");
       Trace.endSection();
@@ -84,7 +85,8 @@
     this.call = call;
 
     LogUtil.i("AnswerProximitySensor.constructor", "acquiring lock");
-    if (ConfigProviderBindings.get(context)
+    if (ConfigProviderComponent.get(context)
+        .getConfigProvider()
         .getBoolean(CONFIG_ANSWER_PSEUDO_PROXIMITY_WAKE_LOCK_ENABLED, true)) {
       answerProximityWakeLock = new PseudoProximityWakeLock(context, pseudoScreenState);
     } else {
diff --git a/java/com/android/incallui/call/DialerCall.java b/java/com/android/incallui/call/DialerCall.java
index 56a88b1..904a5a8 100644
--- a/java/com/android/incallui/call/DialerCall.java
+++ b/java/com/android/incallui/call/DialerCall.java
@@ -60,7 +60,7 @@
 import com.android.dialer.common.LogUtil;
 import com.android.dialer.common.concurrent.DefaultFutureCallback;
 import com.android.dialer.compat.telephony.TelephonyManagerCompat;
-import com.android.dialer.configprovider.ConfigProviderBindings;
+import com.android.dialer.configprovider.ConfigProviderComponent;
 import com.android.dialer.duo.DuoComponent;
 import com.android.dialer.enrichedcall.EnrichedCallCapabilities;
 import com.android.dialer.enrichedcall.EnrichedCallComponent;
@@ -842,7 +842,8 @@
 
   boolean isInEmergencyCallbackWindow(long timestampMillis) {
     long emergencyCallbackWindowMillis =
-        ConfigProviderBindings.get(context)
+        ConfigProviderComponent.get(context)
+            .getConfigProvider()
             .getLong(CONFIG_EMERGENCY_CALLBACK_WINDOW_MILLIS, TimeUnit.MINUTES.toMillis(5));
     return System.currentTimeMillis() - timestampMillis < emergencyCallbackWindowMillis;
   }
diff --git a/java/com/android/incallui/contactgrid/ContactGridManager.java b/java/com/android/incallui/contactgrid/ContactGridManager.java
index 6d04a27..86d7114 100644
--- a/java/com/android/incallui/contactgrid/ContactGridManager.java
+++ b/java/com/android/incallui/contactgrid/ContactGridManager.java
@@ -35,7 +35,7 @@
 import android.widget.ViewAnimator;
 import com.android.dialer.common.Assert;
 import com.android.dialer.common.LogUtil;
-import com.android.dialer.configprovider.ConfigProviderBindings;
+import com.android.dialer.configprovider.ConfigProviderComponent;
 import com.android.dialer.glidephotomanager.GlidePhotoManagerComponent;
 import com.android.dialer.glidephotomanager.PhotoInfo;
 import com.android.dialer.lettertile.LetterTileDrawable;
@@ -301,7 +301,9 @@
       if (hideAvatar) {
         avatarImageView.setVisibility(View.GONE);
       } else if (avatarSize > 0 && updateAvatarVisibility()) {
-        if (ConfigProviderBindings.get(context).getBoolean("enable_glide_photo", false)) {
+        if (ConfigProviderComponent.get(context)
+            .getConfigProvider()
+            .getBoolean("enable_glide_photo", false)) {
           loadPhotoWithGlide();
         } else {
           loadPhotoWithLegacy();
diff --git a/java/com/android/incallui/spam/SpamAlternativeExperimentUtil.java b/java/com/android/incallui/spam/SpamAlternativeExperimentUtil.java
index 52eadcf..27942d8 100644
--- a/java/com/android/incallui/spam/SpamAlternativeExperimentUtil.java
+++ b/java/com/android/incallui/spam/SpamAlternativeExperimentUtil.java
@@ -18,7 +18,7 @@
 
 import android.content.Context;
 import com.android.dialer.common.LogUtil;
-import com.android.dialer.configprovider.ConfigProviderBindings;
+import com.android.dialer.configprovider.ConfigProviderComponent;
 
 /** Returns resource id based on experiment number. */
 public final class SpamAlternativeExperimentUtil {
@@ -29,7 +29,9 @@
    */
   public static int getResourceIdByName(String resourceName, Context context) {
     long experiment =
-        ConfigProviderBindings.get(context).getLong("experiment_for_alternative_spam_word", 230150);
+        ConfigProviderComponent.get(context)
+            .getConfigProvider()
+            .getLong("experiment_for_alternative_spam_word", 230150);
     LogUtil.i(
         "SpamAlternativeExperimentUtil.getResourceIdByName", "using experiment %d", experiment);
     String modifiedResourceName = resourceName;
diff --git a/java/com/android/incallui/videotech/duo/DuoVideoTech.java b/java/com/android/incallui/videotech/duo/DuoVideoTech.java
index ac74e54..47f0757 100644
--- a/java/com/android/incallui/videotech/duo/DuoVideoTech.java
+++ b/java/com/android/incallui/videotech/duo/DuoVideoTech.java
@@ -24,7 +24,7 @@
 import com.android.dialer.common.Assert;
 import com.android.dialer.common.LogUtil;
 import com.android.dialer.common.concurrent.DefaultFutureCallback;
-import com.android.dialer.configprovider.ConfigProviderBindings;
+import com.android.dialer.configprovider.ConfigProviderComponent;
 import com.android.dialer.duo.Duo;
 import com.android.dialer.duo.DuoListener;
 import com.android.dialer.logging.DialerImpression;
@@ -60,7 +60,8 @@
 
   @Override
   public boolean isAvailable(Context context, PhoneAccountHandle phoneAccountHandle) {
-    if (!ConfigProviderBindings.get(context)
+    if (!ConfigProviderComponent.get(context)
+        .getConfigProvider()
         .getBoolean("enable_lightbringer_video_upgrade", true)) {
       LogUtil.v("DuoVideoTech.isAvailable", "upgrade disabled by flag");
       return false;
diff --git a/java/com/android/voicemail/impl/DialerVvmConfigManager.java b/java/com/android/voicemail/impl/DialerVvmConfigManager.java
index 7fa960e..99c95dd 100644
--- a/java/com/android/voicemail/impl/DialerVvmConfigManager.java
+++ b/java/com/android/voicemail/impl/DialerVvmConfigManager.java
@@ -23,7 +23,7 @@
 import android.support.annotation.Nullable;
 import android.support.annotation.VisibleForTesting;
 import android.util.ArrayMap;
-import com.android.dialer.configprovider.ConfigProviderBindings;
+import com.android.dialer.configprovider.ConfigProviderComponent;
 import com.android.voicemail.impl.utils.XmlUtils;
 import com.google.common.collect.ComparisonChain;
 import java.io.IOException;
@@ -133,7 +133,8 @@
         PersistableBundle bundle = (PersistableBundle) object;
 
         if (bundle.containsKey(KEY_FEATURE_FLAG_NAME)
-            && !ConfigProviderBindings.get(context)
+            && !ConfigProviderComponent.get(context)
+                .getConfigProvider()
                 .getBoolean(bundle.getString(KEY_FEATURE_FLAG_NAME), false)) {
           continue;
         }
diff --git a/java/com/android/voicemail/impl/VoicemailClientImpl.java b/java/com/android/voicemail/impl/VoicemailClientImpl.java
index 187ded9..36e5a6c 100644
--- a/java/com/android/voicemail/impl/VoicemailClientImpl.java
+++ b/java/com/android/voicemail/impl/VoicemailClientImpl.java
@@ -30,7 +30,7 @@
 import android.telephony.TelephonyManager;
 import com.android.dialer.common.Assert;
 import com.android.dialer.common.LogUtil;
-import com.android.dialer.configprovider.ConfigProviderBindings;
+import com.android.dialer.configprovider.ConfigProviderComponent;
 import com.android.voicemail.PinChanger;
 import com.android.voicemail.VisualVoicemailTypeExtensions;
 import com.android.voicemail.VoicemailClient;
@@ -105,7 +105,9 @@
       return false;
     }
 
-    if (!ConfigProviderBindings.get(context).getBoolean(ALLOW_VOICEMAIL_ARCHIVE, false)) {
+    if (!ConfigProviderComponent.get(context)
+        .getConfigProvider()
+        .getBoolean(ALLOW_VOICEMAIL_ARCHIVE, false)) {
       LogUtil.i(
           "VoicemailClientImpl.isVoicemailArchiveAllowed",
           "feature disabled by config: %s",
diff --git a/java/com/android/voicemail/impl/protocol/Vvm3Subscriber.java b/java/com/android/voicemail/impl/protocol/Vvm3Subscriber.java
index ce5094f..6ac2337 100644
--- a/java/com/android/voicemail/impl/protocol/Vvm3Subscriber.java
+++ b/java/com/android/voicemail/impl/protocol/Vvm3Subscriber.java
@@ -31,7 +31,7 @@
 import android.text.Spanned;
 import android.text.style.URLSpan;
 import android.util.ArrayMap;
-import com.android.dialer.configprovider.ConfigProviderBindings;
+import com.android.dialer.configprovider.ConfigProviderComponent;
 import com.android.voicemail.impl.ActivationTask;
 import com.android.voicemail.impl.Assert;
 import com.android.voicemail.impl.OmtpEvents;
@@ -312,7 +312,8 @@
   @VisibleForTesting
   static List<Pattern> getSubscribeLinkPatterns(Context context) {
     String patternsJsonString =
-        ConfigProviderBindings.get(context)
+        ConfigProviderComponent.get(context)
+            .getConfigProvider()
             .getString(
                 VVM3_SUBSCRIBE_LINK_PATTERNS_JSON_ARRAY, VVM3_SUBSCRIBE_LINK_DEFAULT_PATTERNS);
     List<Pattern> patterns = new ArrayList<>();
diff --git a/java/com/android/voicemail/impl/transcribe/TranscriptionConfigProvider.java b/java/com/android/voicemail/impl/transcribe/TranscriptionConfigProvider.java
index 54a1ae4..66bf16c 100644
--- a/java/com/android/voicemail/impl/transcribe/TranscriptionConfigProvider.java
+++ b/java/com/android/voicemail/impl/transcribe/TranscriptionConfigProvider.java
@@ -17,7 +17,7 @@
 
 import android.content.Context;
 import android.os.Build;
-import com.android.dialer.configprovider.ConfigProviderBindings;
+import com.android.dialer.configprovider.ConfigProviderComponent;
 import java.util.concurrent.TimeUnit;
 
 /** Provides configuration values needed to connect to the transcription server. */
@@ -30,20 +30,23 @@
 
   public boolean isVoicemailTranscriptionAvailable() {
     return Build.VERSION.SDK_INT >= Build.VERSION_CODES.O
-        && ConfigProviderBindings.get(context)
+        && ConfigProviderComponent.get(context)
+            .getConfigProvider()
             .getBoolean("voicemail_transcription_available", false);
   }
 
   public String getServerAddress() {
     // Private voicemail transcription service
-    return ConfigProviderBindings.get(context)
+    return ConfigProviderComponent.get(context)
+        .getConfigProvider()
         .getString(
             "voicemail_transcription_server_address", "voicemailtranscription-pa.googleapis.com");
   }
 
   public String getApiKey() {
     // Android API key restricted to com.google.android.dialer
-    return ConfigProviderBindings.get(context)
+    return ConfigProviderComponent.get(context)
+        .getConfigProvider()
         .getString(
             "voicemail_transcription_client_api_key", "AIzaSyAXdDnif6B7sBYxU8hzw9qAp3pRPVHs060");
   }
@@ -53,47 +56,55 @@
   }
 
   public boolean shouldUsePlaintext() {
-    return ConfigProviderBindings.get(context)
+    return ConfigProviderComponent.get(context)
+        .getConfigProvider()
         .getBoolean("voicemail_transcription_server_use_plaintext", false);
   }
 
   public boolean shouldUseSyncApi() {
-    return ConfigProviderBindings.get(context)
+    return ConfigProviderComponent.get(context)
+        .getConfigProvider()
         .getBoolean("voicemail_transcription_server_use_sync_api", false);
   }
 
   public long getMaxTranscriptionRetries() {
-    return ConfigProviderBindings.get(context)
+    return ConfigProviderComponent.get(context)
+        .getConfigProvider()
         .getLong("voicemail_transcription_max_transcription_retries", 2L);
   }
 
   public int getMaxGetTranscriptPolls() {
     return (int)
-        ConfigProviderBindings.get(context)
+        ConfigProviderComponent.get(context)
+            .getConfigProvider()
             .getLong("voicemail_transcription_max_get_transcript_polls", 20L);
   }
 
   public long getInitialGetTranscriptPollDelayMillis() {
-    return ConfigProviderBindings.get(context)
+    return ConfigProviderComponent.get(context)
+        .getConfigProvider()
         .getLong(
             "voicemail_transcription_get_initial_transcript_poll_delay_millis",
             TimeUnit.SECONDS.toMillis(1));
   }
 
   public long getMaxGetTranscriptPollTimeMillis() {
-    return ConfigProviderBindings.get(context)
+    return ConfigProviderComponent.get(context)
+        .getConfigProvider()
         .getLong(
             "voicemail_transcription_get_max_transcript_poll_time_millis",
             TimeUnit.MINUTES.toMillis(20));
   }
 
   public boolean isVoicemailDonationAvailable() {
-    return ConfigProviderBindings.get(context)
+    return ConfigProviderComponent.get(context)
+        .getConfigProvider()
         .getBoolean("voicemail_transcription_donation_available", false);
   }
 
   public boolean useClientGeneratedVoicemailIds() {
-    return ConfigProviderBindings.get(context)
+    return ConfigProviderComponent.get(context)
+        .getConfigProvider()
         .getBoolean("voicemail_transcription_client_generated_voicemail_ids", false);
   }