Merge "Prevent location for the work profile from being enabled"

This commit is contained in:
Alex Johnston
2020-01-31 09:49:17 +00:00
committed by Android (Google) Code Review

View File

@@ -67,21 +67,22 @@ public class LocationForWorkPreferenceController extends LocationBasePreferenceC
final RestrictedLockUtils.EnforcedAdmin admin = final RestrictedLockUtils.EnforcedAdmin admin =
mLocationEnabler.getShareLocationEnforcedAdmin( mLocationEnabler.getShareLocationEnforcedAdmin(
Utils.getManagedProfile(mUserManager).getIdentifier()); Utils.getManagedProfile(mUserManager).getIdentifier());
final boolean isRestrictedByBase = mLocationEnabler.isManagedProfileRestrictedByBase(); if (admin != null) {
if (!isRestrictedByBase && admin != null) {
mPreference.setDisabledByAdmin(admin); mPreference.setDisabledByAdmin(admin);
mPreference.setChecked(false);
} else { } else {
final boolean enabled = mLocationEnabler.isEnabled(mode); final boolean enabled = mLocationEnabler.isEnabled(mode);
mPreference.setEnabled(enabled); mPreference.setEnabled(enabled);
int summaryResId;
int summaryResId = R.string.switch_off_text; final boolean isRestrictedByBase =
if (!enabled) { mLocationEnabler.isManagedProfileRestrictedByBase();
if (isRestrictedByBase || !enabled) {
mPreference.setChecked(false); mPreference.setChecked(false);
summaryResId = enabled ? R.string.switch_off_text
: R.string.location_app_permission_summary_location_off;
} else { } else {
mPreference.setChecked(!isRestrictedByBase); mPreference.setChecked(true);
summaryResId = (isRestrictedByBase ? summaryResId = R.string.switch_on_text;
R.string.switch_off_text : R.string.switch_on_text);
} }
mPreference.setSummary(summaryResId); mPreference.setSummary(summaryResId);
} }