Retrieve main user + associated context when getting the default respond via message app.
This CL updates PhoneInterfaceManager#getDefaultRespondViaMessageApplication in order ensure the main user and associated context are used when performing this operation. This is a neccessary change to support HSUM in Telecom since the main user in HSUM mode (user 10) is separate from the system user in HSUM mode (user 0).
Test: ExtendedInCallServiceTest#testOnCannedTextResponsesLoaded
Flag: com.android.server.telecom.flags.telecom_main_user_in_get_respond_message_app
Bug: 358587742
Change-Id: I164e46ef4067d6c4115bbff2afe4418109d04ff1
diff --git a/src/com/android/phone/PhoneInterfaceManager.java b/src/com/android/phone/PhoneInterfaceManager.java
index 53ef07e..df9884f 100644
--- a/src/com/android/phone/PhoneInterfaceManager.java
+++ b/src/com/android/phone/PhoneInterfaceManager.java
@@ -12853,15 +12853,31 @@
Context context = getPhoneFromSubIdOrDefault(subId).getContext();
- UserHandle userHandle = null;
- final long identity = Binder.clearCallingIdentity();
- try {
- userHandle = TelephonyUtils.getSubscriptionUserHandle(context, subId);
- } finally {
- Binder.restoreCallingIdentity(identity);
+ if (mTelecomFeatureFlags.telecomMainUserInGetRespondMessageApp()){
+ UserHandle mainUser = null;
+ Context userContext = null;
+ final long identity = Binder.clearCallingIdentity();
+ try {
+ mainUser = mUserManager.getMainUser();
+ userContext = context.createContextAsUser(mainUser, 0);
+ Log.d(LOG_TAG, "getDefaultRespondViaMessageApplication: mainUser = " + mainUser);
+ } finally {
+ Binder.restoreCallingIdentity(identity);
+ }
+ return SmsApplication.getDefaultRespondViaMessageApplicationAsUser(userContext,
+ updateIfNeeded, mainUser);
+ } else {
+ UserHandle userHandle = null;
+ final long identity = Binder.clearCallingIdentity();
+ try {
+ userHandle = TelephonyUtils.getSubscriptionUserHandle(context, subId);
+ } finally {
+ Binder.restoreCallingIdentity(identity);
+ }
+ return SmsApplication.getDefaultRespondViaMessageApplicationAsUser(context,
+ updateIfNeeded, userHandle);
}
- return SmsApplication.getDefaultRespondViaMessageApplicationAsUser(context,
- updateIfNeeded, userHandle);
+
}
/**