Allow Device Management Role Holder to update Settings strings.

Test: manual
Bug: 188414370
Change-Id: I6e1a06619799a9e99382d791e72e2e4518f93cac
This commit is contained in:
Jonathan Scott
2022-01-19 15:19:08 +00:00
parent 47d115c3ff
commit e0d439472f
55 changed files with 788 additions and 231 deletions

View File

@@ -13,6 +13,10 @@
*/
package com.android.settings.accounts;
import static android.app.admin.DevicePolicyResources.Strings.Settings.WORK_PROFILE_SETTING_OFF_SUMMARY;
import static android.app.admin.DevicePolicyResources.Strings.Settings.WORK_PROFILE_SETTING_ON_SUMMARY;
import android.app.admin.DevicePolicyManager;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
@@ -40,6 +44,7 @@ public class WorkModePreferenceController extends BasePreferenceController imple
private UserManager mUserManager;
private UserHandle mManagedUser;
private DevicePolicyManager mDevicePolicyManager;
private Preference mPreference;
private IntentFilter mIntentFilter;
@@ -47,6 +52,7 @@ public class WorkModePreferenceController extends BasePreferenceController imple
public WorkModePreferenceController(Context context, String key) {
super(context, key);
mUserManager = (UserManager) context.getSystemService(Context.USER_SERVICE);
mDevicePolicyManager = mContext.getSystemService(DevicePolicyManager.class);
mIntentFilter = new IntentFilter();
mIntentFilter.addAction(Intent.ACTION_MANAGED_PROFILE_AVAILABLE);
mIntentFilter.addAction(Intent.ACTION_MANAGED_PROFILE_UNAVAILABLE);
@@ -80,9 +86,15 @@ public class WorkModePreferenceController extends BasePreferenceController imple
@Override
public CharSequence getSummary() {
return mContext.getText(isChecked()
? R.string.work_mode_on_summary
: R.string.work_mode_off_summary);
if (isChecked()) {
return mDevicePolicyManager
.getString(WORK_PROFILE_SETTING_ON_SUMMARY,
() -> mContext.getString(R.string.work_mode_on_summary));
}
return mDevicePolicyManager
.getString(WORK_PROFILE_SETTING_OFF_SUMMARY,
() -> mContext.getString(R.string.work_mode_off_summary));
}
private boolean isChecked() {