Add getDefaultDialerPackage which allows a user id to be specified.
Add new system API which is used from Telephony when we want to figure
out the dialer for a specific user for the purpose of showing the
voicemail notification.
Add new permission check when adding an existing connection with a
specified conference membership.
Bug: 141576016
Test: Manual smoke test.
Test: Run unit tests.
Test: Run CTS tests.
Change-Id: Id0c2a44519bd44705cd8f63553ce2d76442f0841
Merged-In: Id0c2a44519bd44705cd8f63553ce2d76442f0841
diff --git a/src/com/android/server/telecom/ConnectionServiceWrapper.java b/src/com/android/server/telecom/ConnectionServiceWrapper.java
index 911cf0f..cf7abad 100644
--- a/src/com/android/server/telecom/ConnectionServiceWrapper.java
+++ b/src/com/android/server/telecom/ConnectionServiceWrapper.java
@@ -1033,6 +1033,7 @@
private final PhoneAccountRegistrar mPhoneAccountRegistrar;
private final CallsManager mCallsManager;
private final AppOpsManager mAppOpsManager;
+ private final Context mContext;
private ConnectionServiceFocusManager.ConnectionServiceFocusListener mConnSvrFocusListener;
@@ -1063,6 +1064,7 @@
mPhoneAccountRegistrar = phoneAccountRegistrar;
mCallsManager = callsManager;
mAppOpsManager = (AppOpsManager) context.getSystemService(Context.APP_OPS_SERVICE);
+ mContext = context;
}
/** See {@link IConnectionService#addConnectionServiceAdapter}. */
diff --git a/src/com/android/server/telecom/TelecomServiceImpl.java b/src/com/android/server/telecom/TelecomServiceImpl.java
index 64bbc58..cb70c99 100644
--- a/src/com/android/server/telecom/TelecomServiceImpl.java
+++ b/src/com/android/server/telecom/TelecomServiceImpl.java
@@ -707,6 +707,31 @@
}
/**
+ * @param userId user id to get the default dialer package for
+ * @return the package name of the current user-selected default dialer. If no default
+ * has been selected, the package name of the system dialer is returned. If
+ * neither exists, then {@code null} is returned.
+ * @see android.telecom.TelecomManager#getDefaultDialerPackage
+ */
+ @Override
+ public String getDefaultDialerPackageForUser(int userId) {
+ try {
+ Log.startSession("TSI.gDDPU");
+ mContext.enforceCallingOrSelfPermission(READ_PRIVILEGED_PHONE_STATE,
+ "READ_PRIVILEGED_PHONE_STATE permission required.");
+
+ final long token = Binder.clearCallingIdentity();
+ try {
+ return mDefaultDialerCache.getDefaultDialerApplication(userId);
+ } finally {
+ Binder.restoreCallingIdentity(token);
+ }
+ } finally {
+ Log.endSession();
+ }
+ }
+
+ /**
* @see android.telecom.TelecomManager#getSystemDialerPackage
*/
@Override