Add policy transparency dialog to 'Remove work profile'
* For a work profile on an organization-owned device, no explanation was being shown to the user as to why the work profile cannot be removed. * This CL adds a policy transparency dialog when the 'Remove work profile' option is selected in the 'Device Admin' Settings screen. Bug: 149391073 Test: Manual testing atest com.android.settings.applications.specialaccess.deviceadmin.DeviceAdminAddTest Change-Id: I8221973ed16fcc7c79f5897c3bea063050ae00a6
This commit is contained in:
@@ -457,12 +457,20 @@ public class DeviceAdminAdd extends Activity {
|
||||
private void showPolicyTransparencyDialogIfRequired() {
|
||||
if (isManagedProfile(mDeviceAdmin)
|
||||
&& mDeviceAdmin.getComponent().equals(mDPM.getProfileOwner())) {
|
||||
EnforcedAdmin enforcedAdmin;
|
||||
ComponentName adminComponent = mDPM.getProfileOwnerAsUser(getUserId());
|
||||
if (adminComponent != null && mDPM.isOrganizationOwnedDeviceWithManagedProfile()) {
|
||||
enforcedAdmin = new EnforcedAdmin(adminComponent,
|
||||
UserManager.DISALLOW_REMOVE_MANAGED_PROFILE, UserHandle.of(getUserId()));
|
||||
} else {
|
||||
// Todo (b/151061366): Investigate this case to check if it is still viable.
|
||||
if (hasBaseCantRemoveProfileRestriction()) {
|
||||
// If DISALLOW_REMOVE_MANAGED_PROFILE is set by the system, there's no
|
||||
// point showing a dialog saying it's disabled by an admin.
|
||||
return;
|
||||
}
|
||||
EnforcedAdmin enforcedAdmin = getAdminEnforcingCantRemoveProfile();
|
||||
enforcedAdmin = getAdminEnforcingCantRemoveProfile();
|
||||
}
|
||||
if (enforcedAdmin != null) {
|
||||
RestrictedLockUtils.sendShowAdminSupportDetailsIntent(
|
||||
DeviceAdminAdd.this,
|
||||
@@ -640,7 +648,8 @@ public class DeviceAdminAdd extends Activity {
|
||||
|
||||
final EnforcedAdmin admin = getAdminEnforcingCantRemoveProfile();
|
||||
final boolean hasBaseRestriction = hasBaseCantRemoveProfileRestriction();
|
||||
if (admin != null && !hasBaseRestriction) {
|
||||
if ((hasBaseRestriction && mDPM.isOrganizationOwnedDeviceWithManagedProfile())
|
||||
|| (admin != null && !hasBaseRestriction)) {
|
||||
findViewById(R.id.restricted_icon).setVisibility(View.VISIBLE);
|
||||
}
|
||||
mActionButton.setEnabled(admin == null && !hasBaseRestriction);
|
||||
|
Reference in New Issue
Block a user