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

@@ -88,9 +88,9 @@ public abstract class BiometricEnrollIntroduction extends BiometricEnrollBase
protected abstract int getHeaderResDefault();
/**
* @return the description resource for if the biometric has been disabled by a device admin
* @return the description for if the biometric has been disabled by a device admin
*/
protected abstract int getDescriptionResDisabledByAdmin();
protected abstract String getDescriptionDisabledByAdmin();
/**
* @return the cancel button
@@ -414,7 +414,7 @@ public abstract class BiometricEnrollIntroduction extends BiometricEnrollBase
super.initViews();
if (mBiometricUnlockDisabledByAdmin && !mParentalConsentRequired) {
setDescriptionText(getDescriptionResDisabledByAdmin());
setDescriptionText(getDescriptionDisabledByAdmin());
}
}

View File

@@ -16,6 +16,8 @@
package com.android.settings.biometrics.face;
import static android.app.admin.DevicePolicyResources.Strings.Settings.FACE_UNLOCK_DISABLED;
import android.app.admin.DevicePolicyManager;
import android.app.settings.SettingsEnums;
import android.content.Intent;
@@ -221,8 +223,11 @@ public class FaceEnrollIntroduction extends BiometricEnrollIntroduction {
}
@Override
protected int getDescriptionResDisabledByAdmin() {
return R.string.security_settings_face_enroll_introduction_message_unlock_disabled;
protected String getDescriptionDisabledByAdmin() {
DevicePolicyManager devicePolicyManager = getSystemService(DevicePolicyManager.class);
return devicePolicyManager.getString(
FACE_UNLOCK_DISABLED,
() -> getString(R.string.security_settings_face_enroll_introduction_message_unlock_disabled));
}
@Override

View File

@@ -16,6 +16,9 @@
package com.android.settings.biometrics.face;
import static android.app.admin.DevicePolicyResources.Strings.Settings.FACE_SETTINGS_FOR_WORK_TITLE;
import android.app.admin.DevicePolicyManager;
import android.content.Context;
import android.os.UserHandle;
@@ -27,21 +30,26 @@ import com.android.settings.R;
public class FaceProfileStatusPreferenceController extends FaceStatusPreferenceController {
private static final String KEY_FACE_SETTINGS = "face_settings_profile";
private final DevicePolicyManager mDevicePolicyManager;
public FaceProfileStatusPreferenceController(Context context) {
super(context, KEY_FACE_SETTINGS);
mDevicePolicyManager = context.getSystemService(DevicePolicyManager.class);
}
public FaceProfileStatusPreferenceController(Context context, String key) {
super(context, key);
mDevicePolicyManager = context.getSystemService(DevicePolicyManager.class);
}
public FaceProfileStatusPreferenceController(Context context, Lifecycle lifecycle) {
super(context, KEY_FACE_SETTINGS, lifecycle);
mDevicePolicyManager = context.getSystemService(DevicePolicyManager.class);
}
public FaceProfileStatusPreferenceController(Context context, String key, Lifecycle lifecycle) {
super(context, key, lifecycle);
mDevicePolicyManager = context.getSystemService(DevicePolicyManager.class);
}
@Override
@@ -70,7 +78,10 @@ public class FaceProfileStatusPreferenceController extends FaceStatusPreferenceC
@Override
public void updateState(Preference preference) {
super.updateState(preference);
preference.setTitle(mContext.getResources().getString(
R.string.security_settings_face_profile_preference_title));
preference.setTitle(
mDevicePolicyManager.getString(FACE_SETTINGS_FOR_WORK_TITLE, () ->
mContext.getResources().getString(
R.string.security_settings_face_profile_preference_title)));
}
}

View File

@@ -17,12 +17,14 @@
package com.android.settings.biometrics.face;
import static android.app.Activity.RESULT_OK;
import static android.app.admin.DevicePolicyResources.Strings.Settings.FACE_SETTINGS_FOR_WORK_TITLE;
import static com.android.settings.biometrics.BiometricEnrollBase.CONFIRM_REQUEST;
import static com.android.settings.biometrics.BiometricEnrollBase.ENROLL_REQUEST;
import static com.android.settings.biometrics.BiometricEnrollBase.RESULT_FINISHED;
import static com.android.settings.biometrics.BiometricEnrollBase.RESULT_TIMEOUT;
import android.app.admin.DevicePolicyManager;
import android.app.settings.SettingsEnums;
import android.content.Context;
import android.content.Intent;
@@ -66,6 +68,7 @@ public class FaceSettings extends DashboardFragment {
private UserManager mUserManager;
private FaceManager mFaceManager;
private DevicePolicyManager mDevicePolicyManager;
private int mUserId;
private int mSensorId;
private long mChallenge;
@@ -148,6 +151,7 @@ public class FaceSettings extends DashboardFragment {
mUserManager = context.getSystemService(UserManager.class);
mFaceManager = context.getSystemService(FaceManager.class);
mDevicePolicyManager = context.getSystemService(DevicePolicyManager.class);
mToken = getIntent().getByteArrayExtra(KEY_TOKEN);
mSensorId = getIntent().getIntExtra(BiometricEnrollBase.EXTRA_KEY_SENSOR_ID, -1);
mChallenge = getIntent().getLongExtra(BiometricEnrollBase.EXTRA_KEY_CHALLENGE, 0L);
@@ -157,8 +161,10 @@ public class FaceSettings extends DashboardFragment {
mFaceFeatureProvider = FeatureFactory.getFactory(getContext()).getFaceFeatureProvider();
if (mUserManager.getUserInfo(mUserId).isManagedProfile()) {
getActivity().setTitle(getActivity().getResources().getString(
R.string.security_settings_face_profile_preference_title));
getActivity().setTitle(
mDevicePolicyManager.getString(FACE_SETTINGS_FOR_WORK_TITLE, () ->
getActivity().getResources().getString(
R.string.security_settings_face_profile_preference_title)));
}
mLockscreenController = Utils.isMultipleBiometricsSupported(context)

View File

@@ -16,6 +16,8 @@
package com.android.settings.biometrics.fingerprint;
import static android.app.admin.DevicePolicyResources.Strings.Settings.FINGERPRINT_UNLOCK_DISABLED;
import android.app.admin.DevicePolicyManager;
import android.app.settings.SettingsEnums;
import android.content.ActivityNotFoundException;
@@ -57,6 +59,8 @@ public class FingerprintEnrollIntroduction extends BiometricEnrollIntroduction {
@Nullable private FooterButton mPrimaryFooterButton;
@Nullable private FooterButton mSecondaryFooterButton;
private DevicePolicyManager mDevicePolicyManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
mFingerprintManager = Utils.getFingerprintManagerOrNull(this);
@@ -68,6 +72,8 @@ public class FingerprintEnrollIntroduction extends BiometricEnrollIntroduction {
super.onCreate(savedInstanceState);
mDevicePolicyManager = getSystemService(DevicePolicyManager.class);
final ImageView iconFingerprint = findViewById(R.id.icon_fingerprint);
final ImageView iconDeviceLocked = findViewById(R.id.icon_device_locked);
final ImageView iconTrashCan = findViewById(R.id.icon_trash_can);
@@ -177,8 +183,10 @@ public class FingerprintEnrollIntroduction extends BiometricEnrollIntroduction {
}
@Override
protected int getDescriptionResDisabledByAdmin() {
return R.string.security_settings_fingerprint_enroll_introduction_message_unlock_disabled;
protected String getDescriptionDisabledByAdmin() {
return mDevicePolicyManager.getString(
FINGERPRINT_UNLOCK_DISABLED,
() -> getString(R.string.security_settings_fingerprint_enroll_introduction_message_unlock_disabled));
}
@Override

View File

@@ -17,6 +17,10 @@
package com.android.settings.biometrics.fingerprint;
import static android.app.admin.DevicePolicyResources.Strings.UNDEFINED;
import static android.app.admin.DevicePolicyResources.Strings.Settings.FINGERPRINT_UNLOCK_DISABLED_EXPLANATION;
import static android.app.admin.DevicePolicyResources.Strings.Settings.WORK_PROFILE_FINGERPRINT_LAST_DELETE_MESSAGE;
import static com.android.settings.Utils.SETTINGS_PACKAGE_NAME;
import android.app.Activity;
@@ -356,11 +360,22 @@ public class FingerprintSettings extends SubSettings {
activity, getString(getHelpResource()), activity.getClass().getName());
final AnnotationSpan.LinkInfo linkInfo = new AnnotationSpan.LinkInfo(
activity, ANNOTATION_URL, helpIntent);
mFooterTitle = AnnotationSpan.linkify(getText(admin != null
? R.string
.security_settings_fingerprint_enroll_disclaimer_lockscreen_disabled
: R.string.security_settings_fingerprint_v2_home_screen),
linkInfo, adminLinkInfo);
if (admin != null) {
DevicePolicyManager devicePolicyManager =
getSystemService(DevicePolicyManager.class);
String footerText = devicePolicyManager.getString(
FINGERPRINT_UNLOCK_DISABLED_EXPLANATION,
() -> getString(R.string.security_settings_fingerprint_enroll_disclaimer_lockscreen_disabled));
mFooterTitle = AnnotationSpan.linkify(footerText, linkInfo, adminLinkInfo);
} else {
mFooterTitle = AnnotationSpan.linkify(
getText(R.string.security_settings_fingerprint_v2_home_screen),
linkInfo, adminLinkInfo);
}
}
private boolean isUdfps() {
@@ -917,11 +932,20 @@ public class FingerprintSettings extends SubSettings {
mFp = getArguments().getParcelable("fingerprint");
final boolean isProfileChallengeUser =
getArguments().getBoolean("isProfileChallengeUser");
DevicePolicyManager devicePolicyManager =
getContext().getSystemService(DevicePolicyManager.class);
String messageId =
isProfileChallengeUser ? WORK_PROFILE_FINGERPRINT_LAST_DELETE_MESSAGE
: UNDEFINED;
int defaultMessageId = isProfileChallengeUser
? R.string.fingerprint_last_delete_message_profile_challenge
: R.string.fingerprint_last_delete_message;
final AlertDialog alertDialog = new AlertDialog.Builder(getActivity())
.setTitle(R.string.fingerprint_last_delete_title)
.setMessage((isProfileChallengeUser)
? R.string.fingerprint_last_delete_message_profile_challenge
: R.string.fingerprint_last_delete_message)
.setMessage(devicePolicyManager.getString(
messageId, () -> getContext().getString(defaultMessageId)))
.setPositiveButton(R.string.fingerprint_last_delete_confirm,
new DialogInterface.OnClickListener() {
@Override