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();