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,16 @@
package com.android.settings.password;
import static android.app.admin.DevicePolicyResources.Strings.UNDEFINED;
import static android.app.admin.DevicePolicyResources.Strings.Settings.CONFIRM_WORK_PROFILE_PASSWORD_HEADER;
import static android.app.admin.DevicePolicyResources.Strings.Settings.CONFIRM_WORK_PROFILE_PIN_HEADER;
import static android.app.admin.DevicePolicyResources.Strings.Settings.WORK_PROFILE_CONFIRM_PASSWORD;
import static android.app.admin.DevicePolicyResources.Strings.Settings.WORK_PROFILE_CONFIRM_PIN;
import static android.app.admin.DevicePolicyResources.Strings.Settings.WORK_PROFILE_LAST_PASSWORD_ATTEMPT_BEFORE_WIPE;
import static android.app.admin.DevicePolicyResources.Strings.Settings.WORK_PROFILE_LAST_PIN_ATTEMPT_BEFORE_WIPE;
import static android.app.admin.DevicePolicyResources.Strings.Settings.WORK_PROFILE_PASSWORD_REQUIRED;
import static android.app.admin.DevicePolicyResources.Strings.Settings.WORK_PROFILE_PIN_REQUIRED;
import android.annotation.Nullable;
import android.app.admin.DevicePolicyManager;
import android.app.settings.SettingsEnums;
@@ -73,6 +83,17 @@ public class ConfirmLockPassword extends ConfirmDeviceCredentialBaseActivity {
R.string.lockpassword_strong_auth_required_work_password
};
private static final String[] DETAIL_TEXT_OVERRIDES = new String[] {
UNDEFINED,
UNDEFINED,
WORK_PROFILE_CONFIRM_PIN,
WORK_PROFILE_CONFIRM_PASSWORD,
UNDEFINED,
UNDEFINED,
WORK_PROFILE_PIN_REQUIRED,
WORK_PROFILE_PASSWORD_REQUIRED
};
public static class InternalActivity extends ConfirmLockPassword {
}
@@ -160,10 +181,10 @@ public class ConfirmLockPassword extends ConfirmDeviceCredentialBaseActivity {
headerMessage = mDevicePolicyManager.getOrganizationNameForUser(mUserId);
}
if (TextUtils.isEmpty(headerMessage)) {
headerMessage = getString(getDefaultHeader());
headerMessage = getDefaultHeader();
}
if (TextUtils.isEmpty(detailsMessage)) {
detailsMessage = getString(getDefaultDetails());
detailsMessage = getDefaultDetails();
}
mGlifLayout.setHeaderText(headerMessage);
mGlifLayout.setDescriptionText(detailsMessage);
@@ -228,29 +249,37 @@ public class ConfirmLockPassword extends ConfirmDeviceCredentialBaseActivity {
}, 5000);
}
private int getDefaultHeader() {
private String getDefaultHeader() {
if (mFrp) {
return mIsAlpha ? R.string.lockpassword_confirm_your_password_header_frp
: R.string.lockpassword_confirm_your_pin_header_frp;
return mIsAlpha ? getString(R.string.lockpassword_confirm_your_password_header_frp)
: getString(R.string.lockpassword_confirm_your_pin_header_frp);
}
if (mIsManagedProfile) {
return mIsAlpha ? R.string.lockpassword_confirm_your_work_password_header
: R.string.lockpassword_confirm_your_work_pin_header;
if (mIsAlpha) {
return mDevicePolicyManager.getString(
CONFIRM_WORK_PROFILE_PASSWORD_HEADER,
() -> getString(
R.string.lockpassword_confirm_your_work_password_header));
}
return mDevicePolicyManager.getString(
CONFIRM_WORK_PROFILE_PIN_HEADER,
() -> getString(R.string.lockpassword_confirm_your_work_pin_header));
}
return mIsAlpha ? R.string.lockpassword_confirm_your_password_header
: R.string.lockpassword_confirm_your_pin_header;
return mIsAlpha ? getString(R.string.lockpassword_confirm_your_password_header)
: getString(R.string.lockpassword_confirm_your_pin_header);
}
private int getDefaultDetails() {
private String getDefaultDetails() {
if (mFrp) {
return mIsAlpha ? R.string.lockpassword_confirm_your_password_details_frp
: R.string.lockpassword_confirm_your_pin_details_frp;
return mIsAlpha ? getString(R.string.lockpassword_confirm_your_password_details_frp)
: getString(R.string.lockpassword_confirm_your_pin_details_frp);
}
boolean isStrongAuthRequired = isStrongAuthRequired();
// Map boolean flags to an index by isStrongAuth << 2 + isManagedProfile << 1 + isAlpha.
int index = ((isStrongAuthRequired ? 1 : 0) << 2) + ((mIsManagedProfile ? 1 : 0) << 1)
+ (mIsAlpha ? 1 : 0);
return DETAIL_TEXTS[index];
return mDevicePolicyManager.getString(
DETAIL_TEXT_OVERRIDES[index], () -> getString(DETAIL_TEXTS[index]));
}
private int getErrorMessage() {
@@ -259,7 +288,17 @@ public class ConfirmLockPassword extends ConfirmDeviceCredentialBaseActivity {
}
@Override
protected int getLastTryErrorMessage(int userType) {
protected String getLastTryOverrideErrorMessageId(int userType) {
if (userType == USER_TYPE_MANAGED_PROFILE) {
return mIsAlpha ? WORK_PROFILE_LAST_PASSWORD_ATTEMPT_BEFORE_WIPE
: WORK_PROFILE_LAST_PIN_ATTEMPT_BEFORE_WIPE;
}
return UNDEFINED;
}
@Override
protected int getLastTryDefaultErrorMessage(int userType) {
switch (userType) {
case USER_TYPE_PRIMARY:
return mIsAlpha ? R.string.lock_last_password_attempt_before_wipe_device