Merge "Override work profile OEM telephony shortcuts with defaults" into udc-dev am: 0b2cda7782
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/22990097 Change-Id: Ib52b6bd202f54e8b063fa82da2401979796171ca Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -3611,10 +3611,7 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
|
|||||||
if (isProfileOwnerOfOrganizationOwnedDevice(userId)
|
if (isProfileOwnerOfOrganizationOwnedDevice(userId)
|
||||||
&& getManagedSubscriptionsPolicy().getPolicyType()
|
&& getManagedSubscriptionsPolicy().getPolicyType()
|
||||||
== ManagedSubscriptionsPolicy.TYPE_ALL_MANAGED_SUBSCRIPTIONS) {
|
== ManagedSubscriptionsPolicy.TYPE_ALL_MANAGED_SUBSCRIPTIONS) {
|
||||||
String defaultDialerPackageName = getOemDefaultDialerPackage();
|
updateDialerAndSmsManagedShortcutsOverrideCache();
|
||||||
String defaultSmsPackageName = getOemDefaultSmsPackage();
|
|
||||||
updateDialerAndSmsManagedShortcutsOverrideCache(defaultDialerPackageName,
|
|
||||||
defaultSmsPackageName);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
startOwnerService(userId, "start-user");
|
startOwnerService(userId, "start-user");
|
||||||
@@ -10728,15 +10725,6 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
|
|||||||
return UserHandle.USER_NULL;
|
return UserHandle.USER_NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
private @UserIdInt int getManagedProfileUserId() {
|
|
||||||
for (UserInfo ui : mUserManagerInternal.getUserInfos()) {
|
|
||||||
if (ui.isManagedProfile()) {
|
|
||||||
return ui.id;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return UserHandle.USER_NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This API is cached: invalidate with invalidateBinderCaches().
|
* This API is cached: invalidate with invalidateBinderCaches().
|
||||||
*/
|
*/
|
||||||
@@ -11599,6 +11587,12 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
|
|||||||
synchronized (getLockObject()) {
|
synchronized (getLockObject()) {
|
||||||
final ActiveAdmin activeAdmin = getParentOfAdminIfRequired(
|
final ActiveAdmin activeAdmin = getParentOfAdminIfRequired(
|
||||||
getProfileOwnerOrDeviceOwnerLocked(caller.getUserId()), parent);
|
getProfileOwnerOrDeviceOwnerLocked(caller.getUserId()), parent);
|
||||||
|
|
||||||
|
if (isManagedProfile(userId)) {
|
||||||
|
mInjector.binderWithCleanCallingIdentity(
|
||||||
|
() -> updateDialerAndSmsManagedShortcutsOverrideCache());
|
||||||
|
}
|
||||||
|
|
||||||
if (!Objects.equals(activeAdmin.mSmsPackage, packageName)) {
|
if (!Objects.equals(activeAdmin.mSmsPackage, packageName)) {
|
||||||
activeAdmin.mSmsPackage = packageName;
|
activeAdmin.mSmsPackage = packageName;
|
||||||
saveSettingsLocked(caller.getUserId());
|
saveSettingsLocked(caller.getUserId());
|
||||||
@@ -11644,6 +11638,11 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
|
|||||||
});
|
});
|
||||||
// Only save the package when the setting the role succeeded without exception.
|
// Only save the package when the setting the role succeeded without exception.
|
||||||
synchronized (getLockObject()) {
|
synchronized (getLockObject()) {
|
||||||
|
if (isManagedProfile(callerUserId)) {
|
||||||
|
mInjector.binderWithCleanCallingIdentity(
|
||||||
|
() -> updateDialerAndSmsManagedShortcutsOverrideCache());
|
||||||
|
}
|
||||||
|
|
||||||
final ActiveAdmin admin = getProfileOwnerOrDeviceOwnerLocked(callerUserId);
|
final ActiveAdmin admin = getProfileOwnerOrDeviceOwnerLocked(callerUserId);
|
||||||
if (!Objects.equals(admin.mDialerPackage, packageName)) {
|
if (!Objects.equals(admin.mDialerPackage, packageName)) {
|
||||||
admin.mDialerPackage = packageName;
|
admin.mDialerPackage = packageName;
|
||||||
@@ -23934,8 +23933,7 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
|
|||||||
Slogf.w(LOG_TAG, "Couldn't install sms app, sms app package is null");
|
Slogf.w(LOG_TAG, "Couldn't install sms app, sms app package is null");
|
||||||
}
|
}
|
||||||
|
|
||||||
updateDialerAndSmsManagedShortcutsOverrideCache(defaultDialerPackageName,
|
updateDialerAndSmsManagedShortcutsOverrideCache();
|
||||||
defaultSmsPackageName);
|
|
||||||
} catch (RemoteException re) {
|
} catch (RemoteException re) {
|
||||||
// shouldn't happen
|
// shouldn't happen
|
||||||
Slogf.wtf(LOG_TAG, "Failed to install dialer/sms app", re);
|
Slogf.wtf(LOG_TAG, "Failed to install dialer/sms app", re);
|
||||||
@@ -23951,17 +23949,28 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
|
|||||||
return mContext.getString(R.string.config_defaultSms);
|
return mContext.getString(R.string.config_defaultSms);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateDialerAndSmsManagedShortcutsOverrideCache(
|
private void updateDialerAndSmsManagedShortcutsOverrideCache() {
|
||||||
String defaultDialerPackageName, String defaultSmsPackageName) {
|
|
||||||
ArrayMap<String, String> shortcutOverrides = new ArrayMap<>();
|
ArrayMap<String, String> shortcutOverrides = new ArrayMap<>();
|
||||||
|
int managedUserId = getManagedUserId();
|
||||||
|
List<String> dialerRoleHolders = mRoleManager.getRoleHoldersAsUser(RoleManager.ROLE_DIALER,
|
||||||
|
UserHandle.of(managedUserId));
|
||||||
|
List<String> smsRoleHolders = mRoleManager.getRoleHoldersAsUser(RoleManager.ROLE_SMS,
|
||||||
|
UserHandle.of(managedUserId));
|
||||||
|
|
||||||
if (defaultDialerPackageName != null) {
|
String dialerPackageToOverride = getOemDefaultDialerPackage();
|
||||||
shortcutOverrides.put(defaultDialerPackageName, defaultDialerPackageName);
|
String smsPackageToOverride = getOemDefaultSmsPackage();
|
||||||
|
|
||||||
|
// To get the default app, we can get all the role holders and get the first element.
|
||||||
|
if (dialerPackageToOverride != null) {
|
||||||
|
shortcutOverrides.put(dialerPackageToOverride,
|
||||||
|
dialerRoleHolders.isEmpty() ? dialerPackageToOverride
|
||||||
|
: dialerRoleHolders.get(0));
|
||||||
|
}
|
||||||
|
if (smsPackageToOverride != null) {
|
||||||
|
shortcutOverrides.put(smsPackageToOverride,
|
||||||
|
smsRoleHolders.isEmpty() ? smsPackageToOverride : smsRoleHolders.get(0));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (defaultSmsPackageName != null) {
|
|
||||||
shortcutOverrides.put(defaultSmsPackageName, defaultSmsPackageName);
|
|
||||||
}
|
|
||||||
mPolicyCache.setLauncherShortcutOverrides(shortcutOverrides);
|
mPolicyCache.setLauncherShortcutOverrides(shortcutOverrides);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user