Allow Device Management Role Holder to update Settings strings.
Test: manual Bug: 188414370 Change-Id: I6e1a06619799a9e99382d791e72e2e4518f93cac
This commit is contained in:
@@ -14,6 +14,9 @@
|
||||
|
||||
package com.android.settings.enterprise;
|
||||
|
||||
import static android.app.admin.DevicePolicyResources.Strings.Settings.ADMIN_ACTION_NONE;
|
||||
|
||||
import android.app.admin.DevicePolicyManager;
|
||||
import android.content.Context;
|
||||
import android.text.format.DateUtils;
|
||||
|
||||
@@ -43,11 +46,17 @@ public abstract class AdminActionPreferenceControllerBase extends
|
||||
public void updateState(Preference preference) {
|
||||
final Date timestamp = getAdminActionTimestamp();
|
||||
preference.setSummary(timestamp == null ?
|
||||
mContext.getString(R.string.enterprise_privacy_none) :
|
||||
getEnterprisePrivacyNone() :
|
||||
DateUtils.formatDateTime(mContext, timestamp.getTime(),
|
||||
DateUtils.FORMAT_SHOW_TIME | DateUtils.FORMAT_SHOW_DATE));
|
||||
}
|
||||
|
||||
private String getEnterprisePrivacyNone() {
|
||||
return mContext.getSystemService(DevicePolicyManager.class)
|
||||
.getString(ADMIN_ACTION_NONE,
|
||||
() -> mContext.getString(R.string.enterprise_privacy_none));
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isAvailable() {
|
||||
return true;
|
||||
|
||||
@@ -13,6 +13,10 @@
|
||||
*/
|
||||
package com.android.settings.enterprise;
|
||||
|
||||
import static android.app.admin.DevicePolicyResources.Strings.Settings.ALWAYS_ON_VPN_DEVICE;
|
||||
import static android.app.admin.DevicePolicyResources.Strings.Settings.ALWAYS_ON_VPN_PERSONAL_PROFILE;
|
||||
|
||||
import android.app.admin.DevicePolicyManager;
|
||||
import android.content.Context;
|
||||
|
||||
import androidx.preference.Preference;
|
||||
@@ -27,18 +31,29 @@ public class AlwaysOnVpnCurrentUserPreferenceController
|
||||
|
||||
private static final String KEY_ALWAYS_ON_VPN_PRIMARY_USER = "always_on_vpn_primary_user";
|
||||
private final EnterprisePrivacyFeatureProvider mFeatureProvider;
|
||||
private final DevicePolicyManager mDevicePolicyManager;
|
||||
|
||||
public AlwaysOnVpnCurrentUserPreferenceController(Context context) {
|
||||
super(context);
|
||||
mFeatureProvider = FeatureFactory.getFactory(context)
|
||||
.getEnterprisePrivacyFeatureProvider(context);
|
||||
mDevicePolicyManager = context.getSystemService(DevicePolicyManager.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateState(Preference preference) {
|
||||
preference.setTitle(mFeatureProvider.isInCompMode()
|
||||
? R.string.enterprise_privacy_always_on_vpn_personal
|
||||
: R.string.enterprise_privacy_always_on_vpn_device);
|
||||
if (mFeatureProvider.isInCompMode()) {
|
||||
preference.setTitle(
|
||||
mDevicePolicyManager.getString(
|
||||
ALWAYS_ON_VPN_PERSONAL_PROFILE,
|
||||
() -> mContext.getString(
|
||||
R.string.enterprise_privacy_always_on_vpn_personal)));
|
||||
} else {
|
||||
preference.setTitle(
|
||||
mDevicePolicyManager.getString(ALWAYS_ON_VPN_DEVICE,
|
||||
() -> mContext.getString(
|
||||
R.string.enterprise_privacy_always_on_vpn_device)));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -14,6 +14,10 @@
|
||||
|
||||
package com.android.settings.enterprise;
|
||||
|
||||
import static android.app.admin.DevicePolicyResources.Strings.Settings.CA_CERTS_DEVICE;
|
||||
import static android.app.admin.DevicePolicyResources.Strings.Settings.CA_CERTS_PERSONAL_PROFILE;
|
||||
|
||||
import android.app.admin.DevicePolicyManager;
|
||||
import android.content.Context;
|
||||
|
||||
import androidx.annotation.VisibleForTesting;
|
||||
@@ -26,8 +30,11 @@ public class CaCertsCurrentUserPreferenceController extends CaCertsPreferenceCon
|
||||
@VisibleForTesting
|
||||
static final String CA_CERTS_CURRENT_USER = "ca_certs_current_user";
|
||||
|
||||
DevicePolicyManager mDevicePolicyManager;
|
||||
|
||||
public CaCertsCurrentUserPreferenceController(Context context) {
|
||||
super(context);
|
||||
mDevicePolicyManager = mContext.getSystemService(DevicePolicyManager.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -38,9 +45,16 @@ public class CaCertsCurrentUserPreferenceController extends CaCertsPreferenceCon
|
||||
@Override
|
||||
public void updateState(Preference preference) {
|
||||
super.updateState(preference);
|
||||
preference.setTitle(mFeatureProvider.isInCompMode()
|
||||
? R.string.enterprise_privacy_ca_certs_personal
|
||||
: R.string.enterprise_privacy_ca_certs_device);
|
||||
|
||||
if (mFeatureProvider.isInCompMode()) {
|
||||
preference.setTitle(mDevicePolicyManager.getString(
|
||||
CA_CERTS_PERSONAL_PROFILE,
|
||||
() -> mContext.getString(R.string.enterprise_privacy_ca_certs_personal)));
|
||||
} else {
|
||||
preference.setTitle(mDevicePolicyManager.getString(
|
||||
CA_CERTS_DEVICE,
|
||||
() -> mContext.getString(R.string.enterprise_privacy_ca_certs_device)));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -16,8 +16,13 @@
|
||||
|
||||
package com.android.settings.enterprise;
|
||||
|
||||
import static android.app.admin.DevicePolicyResources.Strings.Settings.CONTACT_YOUR_IT_ADMIN;
|
||||
import static android.app.admin.DevicePolicyResources.Strings.Settings.DISABLED_BY_IT_ADMIN_TITLE;
|
||||
import static android.app.admin.DevicePolicyResources.Strings.Settings.IT_ADMIN_POLICY_DISABLING_INFO_URL;
|
||||
|
||||
import static java.util.Objects.requireNonNull;
|
||||
|
||||
import android.app.admin.DevicePolicyManager;
|
||||
import android.content.Context;
|
||||
|
||||
import com.android.settings.R;
|
||||
@@ -25,14 +30,17 @@ import com.android.settingslib.enterprise.DeviceAdminStringProvider;
|
||||
|
||||
class DeviceAdminStringProviderImpl implements DeviceAdminStringProvider {
|
||||
private final Context mContext;
|
||||
private final DevicePolicyManager mDevicePolicyManager;
|
||||
|
||||
DeviceAdminStringProviderImpl(Context context) {
|
||||
mContext = requireNonNull(context);
|
||||
mDevicePolicyManager = mContext.getSystemService(DevicePolicyManager.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getDefaultDisabledByPolicyTitle() {
|
||||
return mContext.getString(R.string.disabled_by_policy_title);
|
||||
return mDevicePolicyManager.getString(DISABLED_BY_IT_ADMIN_TITLE,
|
||||
() -> mContext.getString(R.string.disabled_by_policy_title));
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -67,12 +75,14 @@ class DeviceAdminStringProviderImpl implements DeviceAdminStringProvider {
|
||||
|
||||
@Override
|
||||
public String getDefaultDisabledByPolicyContent() {
|
||||
return mContext.getString(R.string.default_admin_support_msg);
|
||||
return mDevicePolicyManager.getString(CONTACT_YOUR_IT_ADMIN,
|
||||
() -> mContext.getString(R.string.default_admin_support_msg));
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getLearnMoreHelpPageUrl() {
|
||||
return mContext.getString(R.string.help_url_action_disabled_by_it_admin);
|
||||
return mDevicePolicyManager.getString(IT_ADMIN_POLICY_DISABLING_INFO_URL,
|
||||
() -> mContext.getString(R.string.help_url_action_disabled_by_it_admin));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -16,6 +16,9 @@
|
||||
|
||||
package com.android.settings.enterprise;
|
||||
|
||||
import static android.app.admin.DevicePolicyResources.Strings.Settings.DEVICE_MANAGED_WITHOUT_NAME;
|
||||
import static android.app.admin.DevicePolicyResources.Strings.Settings.DEVICE_MANAGED_WITH_NAME;
|
||||
|
||||
import android.app.admin.DevicePolicyManager;
|
||||
import android.content.ComponentName;
|
||||
import android.content.Context;
|
||||
@@ -95,10 +98,12 @@ public class EnterprisePrivacyFeatureProviderImpl implements EnterprisePrivacyFe
|
||||
final SpannableStringBuilder disclosure = new SpannableStringBuilder();
|
||||
final CharSequence organizationName = mDpm.getDeviceOwnerOrganizationName();
|
||||
if (organizationName != null) {
|
||||
disclosure.append(mResources.getString(R.string.do_disclosure_with_name,
|
||||
organizationName));
|
||||
disclosure.append(mDpm.getString(DEVICE_MANAGED_WITH_NAME,
|
||||
() -> mResources.getString(R.string.do_disclosure_with_name,
|
||||
organizationName), organizationName));
|
||||
} else {
|
||||
disclosure.append(mResources.getString(R.string.do_disclosure_generic));
|
||||
disclosure.append(mDpm.getString(DEVICE_MANAGED_WITHOUT_NAME,
|
||||
() -> mResources.getString(R.string.do_disclosure_generic)));
|
||||
}
|
||||
return disclosure;
|
||||
}
|
||||
|
||||
@@ -16,6 +16,10 @@
|
||||
|
||||
package com.android.settings.enterprise;
|
||||
|
||||
import static android.app.admin.DevicePolicyResources.Strings.Settings.PERSONAL_CATEGORY_HEADER;
|
||||
import static android.app.admin.DevicePolicyResources.Strings.Settings.WORK_CATEGORY_HEADER;
|
||||
|
||||
import android.app.admin.DevicePolicyManager;
|
||||
import android.content.Context;
|
||||
import android.content.pm.ApplicationInfo;
|
||||
import android.content.pm.PackageManager;
|
||||
@@ -123,14 +127,20 @@ public class EnterpriseSetDefaultAppsListPreferenceController extends
|
||||
if (!mEnterprisePrivacyFeatureProvider.isInCompMode() && mUsers.size() == 1) {
|
||||
createPreferences(prefContext, screen, mApps.get(0));
|
||||
} else {
|
||||
DevicePolicyManager devicePolicyManager =
|
||||
mContext.getSystemService(DevicePolicyManager.class);
|
||||
for (int i = 0; i < mUsers.size(); i++) {
|
||||
final UserInfo userInfo = mUsers.get(i);
|
||||
final PreferenceCategory category = new PreferenceCategory(prefContext);
|
||||
screen.addPreference(category);
|
||||
if (userInfo.isManagedProfile()) {
|
||||
category.setTitle(R.string.category_work);
|
||||
category.setTitle(devicePolicyManager.getString(
|
||||
WORK_CATEGORY_HEADER,
|
||||
() -> mContext.getString(R.string.category_work)));
|
||||
} else {
|
||||
category.setTitle(R.string.category_personal);
|
||||
category.setTitle(devicePolicyManager.getString(
|
||||
PERSONAL_CATEGORY_HEADER,
|
||||
() -> mContext.getString(R.string.category_personal)));
|
||||
}
|
||||
category.setOrder(i);
|
||||
createPreferences(prefContext, category, mApps.get(i));
|
||||
|
||||
@@ -14,6 +14,9 @@
|
||||
|
||||
package com.android.settings.enterprise;
|
||||
|
||||
import static android.app.admin.DevicePolicyResources.Strings.Settings.ADMIN_ACTION_SET_INPUT_METHOD_NAME;
|
||||
|
||||
import android.app.admin.DevicePolicyManager;
|
||||
import android.content.Context;
|
||||
|
||||
import androidx.preference.Preference;
|
||||
@@ -37,9 +40,13 @@ public class ImePreferenceController extends AbstractPreferenceController implem
|
||||
|
||||
@Override
|
||||
public void updateState(Preference preference) {
|
||||
preference.setSummary(mContext.getResources().getString(
|
||||
R.string.enterprise_privacy_input_method_name,
|
||||
mFeatureProvider.getImeLabelIfOwnerSet()));
|
||||
preference.setSummary(
|
||||
mContext.getSystemService(DevicePolicyManager.class)
|
||||
.getString(ADMIN_ACTION_SET_INPUT_METHOD_NAME, () ->
|
||||
mContext.getResources().getString(
|
||||
R.string.enterprise_privacy_input_method_name,
|
||||
mFeatureProvider.getImeLabelIfOwnerSet()),
|
||||
mFeatureProvider.getImeLabelIfOwnerSet()));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -13,6 +13,9 @@
|
||||
*/
|
||||
package com.android.settings.enterprise;
|
||||
|
||||
import static android.app.admin.DevicePolicyResources.Strings.Settings.NUMBER_OF_DEVICE_ADMINS_NONE;
|
||||
|
||||
import android.app.admin.DevicePolicyManager;
|
||||
import android.content.Context;
|
||||
|
||||
import com.android.settings.R;
|
||||
@@ -23,20 +26,28 @@ import com.android.settings.overlay.FeatureFactory;
|
||||
public class ManageDeviceAdminPreferenceController extends BasePreferenceController {
|
||||
|
||||
private final EnterprisePrivacyFeatureProvider mFeatureProvider;
|
||||
private final DevicePolicyManager mDevicePolicyManager;
|
||||
|
||||
public ManageDeviceAdminPreferenceController(Context context, String key) {
|
||||
super(context, key);
|
||||
mFeatureProvider = FeatureFactory.getFactory(context)
|
||||
.getEnterprisePrivacyFeatureProvider(context);
|
||||
mDevicePolicyManager =
|
||||
mContext.getSystemService(DevicePolicyManager.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public CharSequence getSummary() {
|
||||
final int activeAdmins
|
||||
= mFeatureProvider.getNumberOfActiveDeviceAdminsForCurrentUserAndManagedProfile();
|
||||
return activeAdmins == 0
|
||||
? mContext.getResources().getString(R.string.number_of_device_admins_none)
|
||||
: mContext.getResources().getQuantityString(R.plurals.number_of_device_admins,
|
||||
|
||||
if (activeAdmins == 0) {
|
||||
return mDevicePolicyManager.getString(NUMBER_OF_DEVICE_ADMINS_NONE,
|
||||
() -> mContext.getResources().getString(R.string.number_of_device_admins_none));
|
||||
}
|
||||
|
||||
// TODO: override
|
||||
return mContext.getResources().getQuantityString(R.plurals.number_of_device_admins,
|
||||
activeAdmins, activeAdmins);
|
||||
}
|
||||
|
||||
|
||||
@@ -17,6 +17,8 @@
|
||||
package com.android.settings.enterprise;
|
||||
|
||||
import static android.app.admin.DevicePolicyManager.DEVICE_OWNER_TYPE_FINANCED;
|
||||
import static android.app.admin.DevicePolicyResources.Strings.Settings.MANAGED_DEVICE_INFO_SUMMARY;
|
||||
import static android.app.admin.DevicePolicyResources.Strings.Settings.MANAGED_DEVICE_INFO_SUMMARY_WITH_NAME;
|
||||
|
||||
import android.app.admin.DevicePolicyManager;
|
||||
import android.content.Context;
|
||||
@@ -50,10 +52,16 @@ class PrivacyPreferenceControllerHelper {
|
||||
|
||||
final String organizationName = mFeatureProvider.getDeviceOwnerOrganizationName();
|
||||
if (organizationName == null) {
|
||||
preference.setSummary(R.string.enterprise_privacy_settings_summary_generic);
|
||||
preference.setSummary(mDevicePolicyManager.getString(
|
||||
MANAGED_DEVICE_INFO_SUMMARY,
|
||||
() -> mContext.getString(
|
||||
R.string.enterprise_privacy_settings_summary_generic)));
|
||||
} else {
|
||||
preference.setSummary(mContext.getResources().getString(
|
||||
R.string.enterprise_privacy_settings_summary_with_name, organizationName));
|
||||
preference.setSummary(mDevicePolicyManager
|
||||
.getString(MANAGED_DEVICE_INFO_SUMMARY_WITH_NAME,
|
||||
() -> mContext.getResources().getString(
|
||||
R.string.enterprise_privacy_settings_summary_with_name,
|
||||
organizationName), organizationName));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user