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

@@ -16,6 +16,8 @@
package com.android.settings.security;
import static android.app.admin.DevicePolicyResources.Strings.Settings.WORK_PROFILE_SET_UNLOCK_LAUNCH_PICKER_TITLE;
import static com.android.settings.security.SecuritySettings.UNIFY_LOCK_CONFIRM_PROFILE_REQUEST;
import static com.android.settings.security.SecuritySettings.UNUNIFY_LOCK_CONFIRM_DEVICE_REQUEST;
@@ -190,8 +192,8 @@ public class LockUnificationPreferenceController extends AbstractPreferenceContr
*/
public void startUnification() {
// Confirm profile lock
final String title = mContext.getString(
R.string.unlock_set_unlock_launch_picker_title_profile);
final String title = mDpm.getString(WORK_PROFILE_SET_UNLOCK_LAUNCH_PICKER_TITLE,
() -> mContext.getString(R.string.unlock_set_unlock_launch_picker_title_profile));
final ChooseLockSettingsHelper.Builder builder =
new ChooseLockSettingsHelper.Builder(mHost.getActivity(), mHost);
final boolean launched = builder.setRequestCode(UNIFY_LOCK_CONFIRM_PROFILE_REQUEST)

View File

@@ -16,7 +16,11 @@
package com.android.settings.security;
import static android.app.admin.DevicePolicyResources.Strings.Settings.WORK_PROFILE_UNIFY_LOCKS_DETAIL;
import static android.app.admin.DevicePolicyResources.Strings.Settings.WORK_PROFILE_UNIFY_LOCKS_NONCOMPLIANT;
import android.app.Dialog;
import android.app.admin.DevicePolicyManager;
import android.app.settings.SettingsEnums;
import android.content.DialogInterface;
import android.os.Bundle;
@@ -53,10 +57,16 @@ public class UnificationConfirmationDialog extends InstrumentedDialogFragment {
public Dialog onCreateDialog(Bundle savedInstanceState) {
final SecuritySettings parentFragment = ((SecuritySettings) getParentFragment());
final boolean compliant = getArguments().getBoolean(EXTRA_COMPLIANT);
String overrideMessageId = compliant ? WORK_PROFILE_UNIFY_LOCKS_DETAIL
: WORK_PROFILE_UNIFY_LOCKS_NONCOMPLIANT;
int defaultMessageId = compliant ? R.string.lock_settings_profile_unification_dialog_body
: R.string.lock_settings_profile_unification_dialog_uncompliant_body;
return new AlertDialog.Builder(getActivity())
.setTitle(R.string.lock_settings_profile_unification_dialog_title)
.setMessage(compliant ? R.string.lock_settings_profile_unification_dialog_body
: R.string.lock_settings_profile_unification_dialog_uncompliant_body)
.setMessage(getContext().getSystemService(DevicePolicyManager.class)
.getString(overrideMessageId, () -> getString(defaultMessageId)))
.setPositiveButton(
compliant ? R.string.lock_settings_profile_unification_dialog_confirm
: R.string

View File

@@ -16,6 +16,7 @@
package com.android.settings.security.screenlock;
import static android.app.admin.DevicePolicyResources.Strings.Settings.DISABLED_BY_IT_ADMIN_TITLE;
import static android.provider.Settings.System.SCREEN_OFF_TIMEOUT;
import android.app.admin.DevicePolicyManager;
@@ -123,7 +124,8 @@ public class LockAfterTimeoutPreferenceController extends AbstractPreferenceCont
private void updateLockAfterPreferenceSummary(TimeoutListPreference preference) {
final CharSequence summary;
if (preference.isDisabledByAdmin()) {
summary = mContext.getText(R.string.disabled_by_policy_title);
summary = mDPM.getString(DISABLED_BY_IT_ADMIN_TITLE,
() -> mContext.getString(R.string.disabled_by_policy_title));
} else {
// Update summary message with current value
long currentTimeout = Settings.Secure.getLong(mContext.getContentResolver(),