Use DefaultDialerCache in Telecom (part 2)

Use the DefaultDialerCache throughout Telecom whereever the value of the
default dialer for a particular user is accessed or modified. Also moves
the DefaultDialerManagerAdapter to DefaultDialerCache since
TelecomServiceImpl no longer directly uses it.

Test: Unit tests and manual tests as specified in design
Change-Id: I61ee37f382f4b29266ce254a0e1f7db183e7a0bb
Merged-In: I5d8f46b4a236e570528425b4010976ac837644ac
diff --git a/src/com/android/server/telecom/PhoneAccountRegistrar.java b/src/com/android/server/telecom/PhoneAccountRegistrar.java
index 29f6253..213ae06 100644
--- a/src/com/android/server/telecom/PhoneAccountRegistrar.java
+++ b/src/com/android/server/telecom/PhoneAccountRegistrar.java
@@ -134,6 +134,7 @@
     private final Context mContext;
     private final UserManager mUserManager;
     private final SubscriptionManager mSubscriptionManager;
+    private final DefaultDialerCache mDefaultDialerCache;
     private State mState;
     private UserHandle mCurrentUserHandle;
     private interface PhoneAccountRegistrarWriteLock {}
@@ -141,12 +142,13 @@
             new PhoneAccountRegistrarWriteLock() {};
 
     @VisibleForTesting
-    public PhoneAccountRegistrar(Context context) {
-        this(context, FILE_NAME);
+    public PhoneAccountRegistrar(Context context, DefaultDialerCache defaultDialerCache) {
+        this(context, FILE_NAME, defaultDialerCache);
     }
 
     @VisibleForTesting
-    public PhoneAccountRegistrar(Context context, String fileName) {
+    public PhoneAccountRegistrar(Context context, String fileName,
+            DefaultDialerCache defaultDialerCache) {
         // TODO: This file path is subject to change -- it is storing the phone account registry
         // state file in the path /data/system/users/0/, which is likely not correct in a
         // multi-user setting.
@@ -160,6 +162,7 @@
         mState = new State();
         mContext = context;
         mUserManager = UserManager.get(context);
+        mDefaultDialerCache = defaultDialerCache;
         mSubscriptionManager = SubscriptionManager.from(mContext);
         mCurrentUserHandle = Process.myUserHandle();
         read();
@@ -363,8 +366,8 @@
      */
     public PhoneAccountHandle getSimCallManager(UserHandle userHandle) {
         // Get the default dialer in case it has a connection manager associated with it.
-        String dialerPackage = DefaultDialerManager
-                .getDefaultDialerApplication(mContext, userHandle.getIdentifier());
+        String dialerPackage = mDefaultDialerCache
+                .getDefaultDialerApplication(userHandle.getIdentifier());
 
         // Check carrier config.
         ComponentName systemSimCallManagerComponent = getSystemSimCallManagerComponent();