RESTRICT AUTOMERGE Refactor device policy resource APIs to a separate class

Bug: 217388602
Bug: 218875965
Test: atest EnterpriseResourcesTests
Test: manual
Change-Id: I4775d7741c7819fd811c3fc4eda1636b1e04b398
diff --git a/src/com/android/settings/MainClear.java b/src/com/android/settings/MainClear.java
index 7eb4a5d..62462b3 100644
--- a/src/com/android/settings/MainClear.java
+++ b/src/com/android/settings/MainClear.java
@@ -500,10 +500,10 @@
                         context.getSystemService(DevicePolicyManager.class);
 
                 if (userInfo.isManagedProfile()) {
-                    titleText.setText(devicePolicyManager.getString(
+                    titleText.setText(devicePolicyManager.getResources().getString(
                             WORK_CATEGORY_HEADER, () -> getString(R.string.category_work)));
                 } else {
-                    titleText.setText(devicePolicyManager.getString(
+                    titleText.setText(devicePolicyManager.getResources().getString(
                             PERSONAL_CATEGORY_HEADER, () -> getString(R.string.category_personal)));
                 }
                 contents.addView(titleView);
diff --git a/src/com/android/settings/RemoteBugreportActivity.java b/src/com/android/settings/RemoteBugreportActivity.java
index 12dce90..1485287 100644
--- a/src/com/android/settings/RemoteBugreportActivity.java
+++ b/src/com/android/settings/RemoteBugreportActivity.java
@@ -54,7 +54,7 @@
 
         if (notificationType == DevicePolicyManager.NOTIFICATION_BUGREPORT_ACCEPTED_NOT_FINISHED) {
             AlertDialog dialog = new AlertDialog.Builder(this)
-                    .setMessage(devicePolicyManager.getString(
+                    .setMessage(devicePolicyManager.getResources().getString(
                             SHARING_REMOTE_BUGREPORT_MESSAGE,
                             () -> getString(R.string.sharing_remote_bugreport_dialog_message)))
                     .setOnDismissListener(new DialogInterface.OnDismissListener() {
@@ -85,9 +85,10 @@
                     : SHARE_REMOTE_BUGREPORT_FINISHED_REQUEST_CONSENT;
 
             AlertDialog dialog = new AlertDialog.Builder(this)
-                    .setTitle(devicePolicyManager.getString(SHARE_REMOTE_BUGREPORT_DIALOG_TITLE,
+                    .setTitle(devicePolicyManager.getResources().getString(
+                            SHARE_REMOTE_BUGREPORT_DIALOG_TITLE,
                             () -> getString(R.string.share_remote_bugreport_dialog_title)))
-                    .setMessage(devicePolicyManager.getString(overrideMessageId,
+                    .setMessage(devicePolicyManager.getResources().getString(overrideMessageId,
                             () -> getString(defaultMessageId)))
                     .setOnDismissListener(new DialogInterface.OnDismissListener() {
                         @Override
diff --git a/src/com/android/settings/TrustedCredentialsSettings.java b/src/com/android/settings/TrustedCredentialsSettings.java
index fffb8eb..735cb3b 100644
--- a/src/com/android/settings/TrustedCredentialsSettings.java
+++ b/src/com/android/settings/TrustedCredentialsSettings.java
@@ -389,10 +389,11 @@
 
             final TextView title = (TextView) convertView.findViewById(android.R.id.title);
             if (getUserInfoByGroup(groupPosition).isManagedProfile()) {
-                title.setText(mDevicePolicyManager.getString(WORK_CATEGORY_HEADER,
+                title.setText(mDevicePolicyManager.getResources().getString(WORK_CATEGORY_HEADER,
                         () -> getString(R.string.category_work)));
             } else {
-                title.setText(mDevicePolicyManager.getString(PERSONAL_CATEGORY_HEADER,
+                title.setText(mDevicePolicyManager.getResources().getString(
+                        PERSONAL_CATEGORY_HEADER,
                         () -> getString(R.string.category_personal)));
 
             }
diff --git a/src/com/android/settings/accounts/AccountPreferenceController.java b/src/com/android/settings/accounts/AccountPreferenceController.java
index 8f387d4..29198fb 100644
--- a/src/com/android/settings/accounts/AccountPreferenceController.java
+++ b/src/com/android/settings/accounts/AccountPreferenceController.java
@@ -199,7 +199,7 @@
                         UserHandle.myUserId())) {
                     final SearchIndexableRaw data = new SearchIndexableRaw(mContext);
                     data.key = PREF_KEY_REMOVE_PROFILE;
-                    data.title = mDpm.getString(
+                    data.title = mDpm.getResources().getString(
                             REMOVE_WORK_PROFILE,
                             () -> res.getString(R.string.remove_managed_profile_label));
                     data.screenTitle = screenTitle;
@@ -207,7 +207,7 @@
                 }
                 final SearchIndexableRaw data = new SearchIndexableRaw(mContext);
                 data.key = PREF_KEY_WORK_PROFILE_SETTING;
-                data.title = mDpm.getString(MANAGED_PROFILE_SETTINGS_TITLE,
+                data.title = mDpm.getResources().getString(MANAGED_PROFILE_SETTINGS_TITLE,
                         () -> res.getString(R.string.managed_profile_settings_title));
                 data.screenTitle = screenTitle;
                 rawData.add(data);
@@ -267,7 +267,7 @@
                 new SubSettingLauncher(mContext)
                         .setSourceMetricsCategory(metricsCategory)
                         .setDestination(ManagedProfileSettings.class.getName())
-                        .setTitleText(mDpm.getString(MANAGED_PROFILE_SETTINGS_TITLE,
+                        .setTitleText(mDpm.getResources().getString(MANAGED_PROFILE_SETTINGS_TITLE,
                                 () -> mContext.getString(R.string.managed_profile_settings_title)))
                         .setArguments(arguments)
                         .launch();
@@ -347,12 +347,12 @@
         } else if (userInfo.isManagedProfile()) {
             if (mType == ProfileSelectFragment.ProfileType.ALL) {
                 preferenceGroup.setTitle(
-                        mDpm.getString(WORK_CATEGORY_HEADER,
+                        mDpm.getResources().getString(WORK_CATEGORY_HEADER,
                                 () -> mContext.getString(R.string.category_work)));
                 final String workGroupSummary = getWorkGroupSummary(context, userInfo);
                 preferenceGroup.setSummary(workGroupSummary);
                 preferenceGroup.setContentDescription(
-                        mDpm.getString(ACCESSIBILITY_CATEGORY_WORK, () ->
+                        mDpm.getResources().getString(ACCESSIBILITY_CATEGORY_WORK, () ->
                         mContext.getString(
                                 R.string.accessibility_category_work, workGroupSummary)));
             }
@@ -363,10 +363,10 @@
         } else {
             if (mType == ProfileSelectFragment.ProfileType.ALL) {
                 preferenceGroup.setTitle(
-                        mDpm.getString(PERSONAL_CATEGORY_HEADER,
+                        mDpm.getResources().getString(PERSONAL_CATEGORY_HEADER,
                                 () -> mContext.getString(R.string.category_personal)));
                 preferenceGroup.setContentDescription(
-                        mDpm.getString(ACCESSIBILITY_CATEGORY_PERSONAL, () ->
+                        mDpm.getResources().getString(ACCESSIBILITY_CATEGORY_PERSONAL, () ->
                         mContext.getString(R.string.accessibility_category_personal)));
             }
         }
@@ -401,7 +401,7 @@
                 mFragment.getPreferenceManager().getContext());
         preference.setKey(PREF_KEY_REMOVE_PROFILE);
         preference.setTitle(
-                mDpm.getString(REMOVE_WORK_PROFILE,
+                mDpm.getResources().getString(REMOVE_WORK_PROFILE,
                         () -> mContext.getString(R.string.remove_managed_profile_label)));
         preference.setIcon(R.drawable.ic_delete);
         preference.setOnPreferenceClickListener(this);
@@ -413,7 +413,7 @@
     private Preference newManagedProfileSettings() {
         Preference preference = new Preference(mFragment.getPreferenceManager().getContext());
         preference.setKey(PREF_KEY_WORK_PROFILE_SETTING);
-        preference.setTitle(mDpm.getString(MANAGED_PROFILE_SETTINGS_TITLE,
+        preference.setTitle(mDpm.getResources().getString(MANAGED_PROFILE_SETTINGS_TITLE,
                 () -> mContext.getString(R.string.managed_profile_settings_title)));
         preference.setIcon(R.drawable.ic_settings_24dp);
         preference.setOnPreferenceClickListener(this);
@@ -428,7 +428,7 @@
             return null;
         }
         CharSequence appLabel = packageManager.getApplicationLabel(adminApplicationInfo);
-        return mDpm.getString(MANAGED_BY,
+        return mDpm.getResources().getString(MANAGED_BY,
                 () -> mContext.getString(R.string.managing_admin, appLabel), appLabel);
     }
 
@@ -508,7 +508,7 @@
             mProfileNotAvailablePreference.setIcon(R.drawable.empty_icon);
             mProfileNotAvailablePreference.setTitle(null);
             mProfileNotAvailablePreference.setSummary(
-                    mDpm.getString(
+                    mDpm.getResources().getString(
                             WORK_PROFILE_NOT_AVAILABLE, () -> mContext.getString(
                     R.string.managed_profile_not_available_label)));
             profileData.preferenceGroup.addPreference(mProfileNotAvailablePreference);
diff --git a/src/com/android/settings/accounts/AccountSyncSettings.java b/src/com/android/settings/accounts/AccountSyncSettings.java
index 7c72d6c..83f89d8 100644
--- a/src/com/android/settings/accounts/AccountSyncSettings.java
+++ b/src/com/android/settings/accounts/AccountSyncSettings.java
@@ -163,10 +163,11 @@
 
         String accessibilityTitle =
                 isWorkProfile
-                        ? devicePolicyManager.getString(ACCESSIBILITY_WORK_ACCOUNT_TITLE,
+                        ? devicePolicyManager.getResources().getString(
+                                ACCESSIBILITY_WORK_ACCOUNT_TITLE,
                                 () -> getString(R.string.accessibility_work_account_title,
                                         currentTitle), currentTitle)
-                                : devicePolicyManager.getString(
+                                : devicePolicyManager.getResources().getString(
                                         ACCESSIBILITY_PERSONAL_ACCOUNT_TITLE,
                                         () -> getString(
                                                 R.string.accessibility_personal_account_title,
diff --git a/src/com/android/settings/accounts/RemoveAccountPreferenceController.java b/src/com/android/settings/accounts/RemoveAccountPreferenceController.java
index 58ef7f1..60faab9 100644
--- a/src/com/android/settings/accounts/RemoveAccountPreferenceController.java
+++ b/src/com/android/settings/accounts/RemoveAccountPreferenceController.java
@@ -217,6 +217,7 @@
             return new AlertDialog.Builder(context)
                     .setTitle(R.string.remove_account_label)
                     .setMessage(getContext().getSystemService(DevicePolicyManager.class)
+                            .getResources()
                             .getString(REMOVE_ACCOUNT_FAILED_ADMIN_RESTRICTION,
                                     () -> getString(R.string.remove_account_failed)))
                     .setPositiveButton(android.R.string.ok, null)
diff --git a/src/com/android/settings/accounts/WorkModePreferenceController.java b/src/com/android/settings/accounts/WorkModePreferenceController.java
index aa54d33..f4ab195 100644
--- a/src/com/android/settings/accounts/WorkModePreferenceController.java
+++ b/src/com/android/settings/accounts/WorkModePreferenceController.java
@@ -87,13 +87,13 @@
     @Override
     public CharSequence getSummary() {
         if (isChecked()) {
-            return mDevicePolicyManager
-                    .getString(WORK_PROFILE_SETTING_ON_SUMMARY,
-                            () -> mContext.getString(R.string.work_mode_on_summary));
+            return mDevicePolicyManager.getResources().getString(
+                    WORK_PROFILE_SETTING_ON_SUMMARY,
+                    () -> mContext.getString(R.string.work_mode_on_summary));
         }
 
-        return mDevicePolicyManager
-                .getString(WORK_PROFILE_SETTING_OFF_SUMMARY,
+        return mDevicePolicyManager.getResources().getString(
+                WORK_PROFILE_SETTING_OFF_SUMMARY,
                         () -> mContext.getString(R.string.work_mode_off_summary));
     }
 
diff --git a/src/com/android/settings/applications/UsageAccessDetails.java b/src/com/android/settings/applications/UsageAccessDetails.java
index ef259d2..8085b69 100644
--- a/src/com/android/settings/applications/UsageAccessDetails.java
+++ b/src/com/android/settings/applications/UsageAccessDetails.java
@@ -97,7 +97,8 @@
                     new AlertDialog.Builder(getContext())
                             .setIcon(com.android.internal.R.drawable.ic_dialog_alert_material)
                             .setTitle(android.R.string.dialog_alert_title)
-                            .setMessage(mDpm.getString(WORK_PROFILE_DISABLE_USAGE_ACCESS_WARNING,
+                            .setMessage(mDpm.getResources().getString(
+                                    WORK_PROFILE_DISABLE_USAGE_ACCESS_WARNING,
                                     () -> getString(R.string.work_profile_usage_access_warning)))
                             .setPositiveButton(R.string.okay, null)
                             .show();
diff --git a/src/com/android/settings/applications/specialaccess/deviceadmin/DeviceAdminAdd.java b/src/com/android/settings/applications/specialaccess/deviceadmin/DeviceAdminAdd.java
index de79739..7dbf333 100644
--- a/src/com/android/settings/applications/specialaccess/deviceadmin/DeviceAdminAdd.java
+++ b/src/com/android/settings/applications/specialaccess/deviceadmin/DeviceAdminAdd.java
@@ -335,7 +335,7 @@
 
             // Build and show the simplified dialog
             final Dialog dialog = new AlertDialog.Builder(this)
-                    .setTitle(mDPM.getString(SET_PROFILE_OWNER_DIALOG_TITLE,
+                    .setTitle(mDPM.getResources().getString(SET_PROFILE_OWNER_DIALOG_TITLE,
                             () -> getString(R.string.profile_owner_add_title_simplified)))
                     .setView(R.layout.profile_owner_add)
                     .setPositiveButton(R.string.allow, new DialogInterface.OnClickListener() {
@@ -358,7 +358,7 @@
             mAddMsg.setText(mAddMsgText);
             mAdminWarning = dialog.findViewById(R.id.admin_warning_simplified);
             mAdminWarning.setText(
-                    mDPM.getString(NEW_DEVICE_ADMIN_WARNING_SIMPLIFIED, () ->
+                    mDPM.getResources().getString(NEW_DEVICE_ADMIN_WARNING_SIMPLIFIED, () ->
                     getString(R.string.device_admin_warning_simplified,
                     mProfileOwnerName), mProfileOwnerName));
             return;
@@ -371,7 +371,7 @@
         mProfileOwnerWarning = (TextView) findViewById(R.id.profile_owner_warning);
 
         mProfileOwnerWarning.setText(
-                mDPM.getString(SET_PROFILE_OWNER_POSTSETUP_WARNING,
+                mDPM.getResources().getString(SET_PROFILE_OWNER_POSTSETUP_WARNING,
                         () -> getString(R.string.adding_profile_owner_warning)));
 
         mAddMsg = (TextView)findViewById(R.id.add_msg);
@@ -419,7 +419,7 @@
         });
 
         mUninstallButton = (Button) findViewById(R.id.uninstall_button);
-        mUninstallButton.setText(mDPM.getString(UNINSTALL_DEVICE_ADMIN,
+        mUninstallButton.setText(mDPM.getResources().getString(UNINSTALL_DEVICE_ADMIN,
                 () -> getString(R.string.uninstall_device_admin)));
         mUninstallButton.setFilterTouchesWhenObscured(true);
         mUninstallButton.setOnClickListener(new View.OnClickListener() {
@@ -681,9 +681,10 @@
             final boolean isManagedProfile = isManagedProfile(mDeviceAdmin);
             if (isProfileOwner && isManagedProfile) {
                 // Profile owner in a managed profile, user can remove profile to disable admin.
-                mAdminWarning.setText(mDPM.getString(WORK_PROFILE_ADMIN_POLICIES_WARNING,
+                mAdminWarning.setText(mDPM.getResources().getString(
+                        WORK_PROFILE_ADMIN_POLICIES_WARNING,
                         () -> getString(R.string.admin_profile_owner_message)));
-                mActionButton.setText(mDPM.getString(REMOVE_WORK_PROFILE,
+                mActionButton.setText(mDPM.getResources().getString(REMOVE_WORK_PROFILE,
                         () -> getString(R.string.remove_managed_profile_label)));
 
                 final EnforcedAdmin admin = getAdminEnforcingCantRemoveProfile();
@@ -698,32 +699,34 @@
                 // Profile owner in a user or device owner, user can't disable admin.
                 if (isProfileOwner) {
                     // Show profile owner in a user description.
-                    mAdminWarning.setText(mDPM.getString(USER_ADMIN_POLICIES_WARNING,
+                    mAdminWarning.setText(mDPM.getResources().getString(USER_ADMIN_POLICIES_WARNING,
                             () -> getString(R.string.admin_profile_owner_user_message)));
                 } else {
                     // Show device owner description.
                     if (isFinancedDevice()) {
                         mAdminWarning.setText(R.string.admin_financed_message);
                     } else {
-                        mAdminWarning.setText(mDPM.getString(DEVICE_ADMIN_POLICIES_WARNING,
+                        mAdminWarning.setText(mDPM.getResources().getString(
+                                DEVICE_ADMIN_POLICIES_WARNING,
                                 () -> getString(R.string.admin_device_owner_message)));
                     }
                 }
-                mActionButton.setText(mDPM.getString(REMOVE_DEVICE_ADMIN,
+                mActionButton.setText(mDPM.getResources().getString(REMOVE_DEVICE_ADMIN,
                         () -> getString(R.string.remove_device_admin)));
                 mActionButton.setEnabled(false);
             } else {
                 addDeviceAdminPolicies(false /* showDescription */);
                 CharSequence label = mDeviceAdmin.getActivityInfo().applicationInfo.loadLabel(
                         getPackageManager());
-                mAdminWarning.setText(mDPM.getString(ACTIVE_DEVICE_ADMIN_WARNING,
+                mAdminWarning.setText(mDPM.getResources().getString(ACTIVE_DEVICE_ADMIN_WARNING,
                         () -> getString(R.string.device_admin_status, label), label));
                 setTitle(R.string.active_device_admin_msg);
                 if (mUninstalling) {
-                    mActionButton.setText(mDPM.getString(REMOVE_AND_UNINSTALL_DEVICE_ADMIN,
+                    mActionButton.setText(mDPM.getResources().getString(
+                            REMOVE_AND_UNINSTALL_DEVICE_ADMIN,
                             () -> getString(R.string.remove_and_uninstall_device_admin)));
                 } else {
-                    mActionButton.setText(mDPM.getString(REMOVE_DEVICE_ADMIN,
+                    mActionButton.setText(mDPM.getResources().getString(REMOVE_DEVICE_ADMIN,
                             () -> getString(R.string.remove_device_admin)));
                 }
             }
@@ -740,12 +743,12 @@
             CharSequence label = mDeviceAdmin.getActivityInfo()
                     .applicationInfo.loadLabel(getPackageManager());
             mAdminWarning.setText(
-                    mDPM.getString(NEW_DEVICE_ADMIN_WARNING, () ->
+                    mDPM.getResources().getString(NEW_DEVICE_ADMIN_WARNING, () ->
                     getString(R.string.device_admin_warning, label
                     ), label));
-            setTitle(mDPM.getString(ACTIVATE_DEVICE_ADMIN_APP,
+            setTitle(mDPM.getResources().getString(ACTIVATE_DEVICE_ADMIN_APP,
                     () -> getString(R.string.add_device_admin_msg)));
-            mActionButton.setText(mDPM.getString(ACTIVATE_THIS_DEVICE_ADMIN_APP,
+            mActionButton.setText(mDPM.getResources().getString(ACTIVATE_THIS_DEVICE_ADMIN_APP,
                     () -> getString(R.string.add_device_admin)));
             if (isAdminUninstallable()) {
                 mUninstallButton.setVisibility(View.VISIBLE);
diff --git a/src/com/android/settings/applications/specialaccess/interactacrossprofiles/InteractAcrossProfilesDetails.java b/src/com/android/settings/applications/specialaccess/interactacrossprofiles/InteractAcrossProfilesDetails.java
index e85a513..e316125 100644
--- a/src/com/android/settings/applications/specialaccess/interactacrossprofiles/InteractAcrossProfilesDetails.java
+++ b/src/com/android/settings/applications/specialaccess/interactacrossprofiles/InteractAcrossProfilesDetails.java
@@ -156,7 +156,7 @@
         }
 
         preference.setSummary(
-                mDevicePolicyManager.getString(overrideKey,
+                mDevicePolicyManager.getResources().getString(overrideKey,
                         () -> getString(resource)));
     }
 
@@ -296,19 +296,20 @@
 
         final TextView dialogTitle = dialogView.findViewById(
                 R.id.interact_across_profiles_consent_dialog_title);
-        dialogTitle.setText(mDpm.getString(CONNECT_APPS_DIALOG_TITLE, () ->
+        dialogTitle.setText(mDpm.getResources().getString(CONNECT_APPS_DIALOG_TITLE, () ->
                 getString(R.string.interact_across_profiles_consent_dialog_title, mAppLabel),
                 mAppLabel));
 
         final TextView appDataSummary = dialogView.findViewById(R.id.app_data_summary);
         appDataSummary.setText(
-                mDpm.getString(APP_CAN_ACCESS_PERSONAL_DATA,
+                mDpm.getResources().getString(APP_CAN_ACCESS_PERSONAL_DATA,
                         () -> getString(
                                 R.string.interact_across_profiles_consent_dialog_app_data_summary,
                                 mAppLabel), mAppLabel));
 
         final TextView permissionsSummary = dialogView.findViewById(R.id.permissions_summary);
-        permissionsSummary.setText(mDpm.getString(APP_CAN_ACCESS_PERSONAL_PERMISSIONS,
+        permissionsSummary.setText(mDpm.getResources().getString(
+                APP_CAN_ACCESS_PERSONAL_PERMISSIONS,
                 () -> getString(
                         R.string.interact_across_profiles_consent_dialog_permissions_summary,
                         mAppLabel),
@@ -316,7 +317,7 @@
 
         final TextView dialogSummary =
                 dialogView.findViewById(R.id.interact_across_profiles_consent_dialog_summary);
-        dialogSummary.setText(mDpm.getString(CONNECT_APPS_DIALOG_SUMMARY,
+        dialogSummary.setText(mDpm.getResources().getString(CONNECT_APPS_DIALOG_SUMMARY,
                 () -> getString(
                         R.string.interact_across_profiles_consent_dialog_summary)));
 
@@ -445,7 +446,7 @@
         }
         if (!mInstalledInPersonal) {
             mInstallBanner.setTitle(
-                    mDpm.getString(INSTALL_IN_PERSONAL_PROFILE_TO_CONNECT_PROMPT,
+                    mDpm.getResources().getString(INSTALL_IN_PERSONAL_PROFILE_TO_CONNECT_PROMPT,
                             () -> getString(
                                     R.string.interact_across_profiles_install_personal_app_title,
                                     mAppLabel),
@@ -459,7 +460,7 @@
         }
         if (!mInstalledInWork) {
             mInstallBanner.setTitle(
-                    mDpm.getString(INSTALL_IN_WORK_PROFILE_TO_CONNECT_PROMPT,
+                    mDpm.getResources().getString(INSTALL_IN_WORK_PROFILE_TO_CONNECT_PROMPT,
                             () -> getString(
                                     R.string.interact_across_profiles_install_work_app_title,
                                     mAppLabel),
diff --git a/src/com/android/settings/applications/specialaccess/interactacrossprofiles/InteractAcrossProfilesSettings.java b/src/com/android/settings/applications/specialaccess/interactacrossprofiles/InteractAcrossProfilesSettings.java
index 05ec3e9..6ce0869 100644
--- a/src/com/android/settings/applications/specialaccess/interactacrossprofiles/InteractAcrossProfilesSettings.java
+++ b/src/com/android/settings/applications/specialaccess/interactacrossprofiles/InteractAcrossProfilesSettings.java
@@ -95,7 +95,8 @@
                 @Override
                 public boolean onPreferenceClick(Preference preference) {
                     AppInfoBase.startAppInfoFragment(InteractAcrossProfilesDetails.class,
-                            mDevicePolicyManager.getString(CONNECTED_WORK_AND_PERSONAL_APPS_TITLE,
+                            mDevicePolicyManager.getResources().getString(
+                                    CONNECTED_WORK_AND_PERSONAL_APPS_TITLE,
                                     () -> getString(R.string.interact_across_profiles_title)),
                             packageName,
                             appInfo.uid,
diff --git a/src/com/android/settings/biometrics/face/FaceEnrollIntroduction.java b/src/com/android/settings/biometrics/face/FaceEnrollIntroduction.java
index b622c1c..efb200f 100644
--- a/src/com/android/settings/biometrics/face/FaceEnrollIntroduction.java
+++ b/src/com/android/settings/biometrics/face/FaceEnrollIntroduction.java
@@ -225,7 +225,7 @@
     @Override
     protected String getDescriptionDisabledByAdmin() {
         DevicePolicyManager devicePolicyManager = getSystemService(DevicePolicyManager.class);
-        return devicePolicyManager.getString(
+        return devicePolicyManager.getResources().getString(
                 FACE_UNLOCK_DISABLED,
                 () -> getString(R.string.security_settings_face_enroll_introduction_message_unlock_disabled));
     }
diff --git a/src/com/android/settings/biometrics/face/FaceProfileStatusPreferenceController.java b/src/com/android/settings/biometrics/face/FaceProfileStatusPreferenceController.java
index abfd3a2..a2e11af 100644
--- a/src/com/android/settings/biometrics/face/FaceProfileStatusPreferenceController.java
+++ b/src/com/android/settings/biometrics/face/FaceProfileStatusPreferenceController.java
@@ -80,7 +80,7 @@
         super.updateState(preference);
 
         preference.setTitle(
-                mDevicePolicyManager.getString(FACE_SETTINGS_FOR_WORK_TITLE, () ->
+                mDevicePolicyManager.getResources().getString(FACE_SETTINGS_FOR_WORK_TITLE, () ->
                 mContext.getResources().getString(
                 R.string.security_settings_face_profile_preference_title)));
     }
diff --git a/src/com/android/settings/biometrics/face/FaceSettings.java b/src/com/android/settings/biometrics/face/FaceSettings.java
index f3a7f2c..dc94376 100644
--- a/src/com/android/settings/biometrics/face/FaceSettings.java
+++ b/src/com/android/settings/biometrics/face/FaceSettings.java
@@ -162,9 +162,9 @@
 
         if (mUserManager.getUserInfo(mUserId).isManagedProfile()) {
             getActivity().setTitle(
-                    mDevicePolicyManager.getString(FACE_SETTINGS_FOR_WORK_TITLE, () ->
-                    getActivity().getResources().getString(
-                    R.string.security_settings_face_profile_preference_title)));
+                    mDevicePolicyManager.getResources().getString(FACE_SETTINGS_FOR_WORK_TITLE,
+                            () -> getActivity().getResources().getString(
+                                    R.string.security_settings_face_profile_preference_title)));
         }
 
         mLockscreenController = Utils.isMultipleBiometricsSupported(context)
diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollIntroduction.java b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollIntroduction.java
index 23595fb..82b76c3 100644
--- a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollIntroduction.java
+++ b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollIntroduction.java
@@ -186,7 +186,7 @@
 
     @Override
     protected String getDescriptionDisabledByAdmin() {
-        return mDevicePolicyManager.getString(
+        return mDevicePolicyManager.getResources().getString(
                 FINGERPRINT_UNLOCK_DISABLED,
                 () -> getString(R.string.security_settings_fingerprint_enroll_introduction_message_unlock_disabled));
     }
diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java b/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java
index a5832ea..2282192 100644
--- a/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java
+++ b/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java
@@ -19,7 +19,7 @@
 
 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 android.app.admin.DevicePolicyResources.Strings.UNDEFINED;
+import static android.app.admin.DevicePolicyResources.UNDEFINED;
 
 import static com.android.settings.Utils.SETTINGS_PACKAGE_NAME;
 
@@ -366,7 +366,7 @@
             if (admin != null) {
                 DevicePolicyManager devicePolicyManager =
                         getSystemService(DevicePolicyManager.class);
-                String footerText = devicePolicyManager.getString(
+                String footerText = devicePolicyManager.getResources().getString(
                         FINGERPRINT_UNLOCK_DISABLED_EXPLANATION,
                         () -> getString(R.string.security_settings_fingerprint_enroll_disclaimer_lockscreen_disabled));
 
@@ -457,10 +457,8 @@
             final Preference addPreference = findPreference(KEY_FINGERPRINT_ADD);
 
             /* Disable preference if too many fingerprints added */
-            final List<FingerprintSensorPropertiesInternal> props =
-                    mFingerprintManager.getSensorPropertiesInternal();
-            // This will need to be updated for devices with multiple fingerprint sensors
-            final int max = props.get(0).maxEnrollmentsPerUser;
+            final int max = getContext().getResources().getInteger(
+                    com.android.internal.R.integer.config_fingerprintMaxTemplatesPerUser);
             boolean tooMany = mFingerprintManager.getEnrolledFingerprints(mUserId).size() >= max;
             // retryFingerprint() will be called when remove finishes
             // need to disable enroll or have a way to determine if enroll is in progress
@@ -948,7 +946,7 @@
 
                 final AlertDialog alertDialog = new AlertDialog.Builder(getActivity())
                         .setTitle(R.string.fingerprint_last_delete_title)
-                        .setMessage(devicePolicyManager.getString(
+                        .setMessage(devicePolicyManager.getResources().getString(
                                 messageId, () -> getContext().getString(defaultMessageId)))
                         .setPositiveButton(R.string.fingerprint_last_delete_confirm,
                                 new DialogInterface.OnClickListener() {
diff --git a/src/com/android/settings/bugreporthandler/BugReportHandlerPicker.java b/src/com/android/settings/bugreporthandler/BugReportHandlerPicker.java
index 25b15c7..276e7aa 100644
--- a/src/com/android/settings/bugreporthandler/BugReportHandlerPicker.java
+++ b/src/com/android/settings/bugreporthandler/BugReportHandlerPicker.java
@@ -196,10 +196,10 @@
                 context.getSystemService(DevicePolicyManager.class);
 
         if (userInfo != null && userInfo.isManagedProfile()) {
-            return devicePolicyManager.getString(WORK_PROFILE_APP_SUBTEXT,
+            return devicePolicyManager.getResources().getString(WORK_PROFILE_APP_SUBTEXT,
                     () -> context.getString(R.string.work_profile_app_subtext));
         }
-        return devicePolicyManager.getString(PERSONAL_PROFILE_APP_SUBTEXT,
+        return devicePolicyManager.getResources().getString(PERSONAL_PROFILE_APP_SUBTEXT,
                 () -> context.getString(R.string.personal_profile_app_subtext));
     }
 
diff --git a/src/com/android/settings/dashboard/DashboardFragment.java b/src/com/android/settings/dashboard/DashboardFragment.java
index 26fe1b1..6ac0fa4 100644
--- a/src/com/android/settings/dashboard/DashboardFragment.java
+++ b/src/com/android/settings/dashboard/DashboardFragment.java
@@ -545,7 +545,7 @@
         }
 
         preference.setTitle(
-                mDevicePolicyManager.getString(overrideKey,
+                mDevicePolicyManager.getResources().getString(overrideKey,
                         () -> getString(resource)));
     }
 
@@ -558,7 +558,7 @@
         }
 
         preference.setSummary(
-                mDevicePolicyManager.getString(overrideKey,
+                mDevicePolicyManager.getResources().getString(overrideKey,
                         () -> getString(resource)));
     }
 }
diff --git a/src/com/android/settings/dashboard/profileselector/ProfileSelectFragment.java b/src/com/android/settings/dashboard/profileselector/ProfileSelectFragment.java
index 47eaf84..30b971c 100644
--- a/src/com/android/settings/dashboard/profileselector/ProfileSelectFragment.java
+++ b/src/com/android/settings/dashboard/profileselector/ProfileSelectFragment.java
@@ -189,11 +189,11 @@
                 getContext().getSystemService(DevicePolicyManager.class);
 
         if (position == WORK_TAB) {
-            return devicePolicyManager.getString(WORK_CATEGORY_HEADER,
+            return devicePolicyManager.getResources().getString(WORK_CATEGORY_HEADER,
                     () -> getContext().getString(R.string.category_work));
         }
 
-        return devicePolicyManager.getString(PERSONAL_CATEGORY_HEADER,
+        return devicePolicyManager.getResources().getString(PERSONAL_CATEGORY_HEADER,
                 () -> getContext().getString(R.string.category_personal));
     }
 
diff --git a/src/com/android/settings/dashboard/profileselector/UserAdapter.java b/src/com/android/settings/dashboard/profileselector/UserAdapter.java
index abf22df..ae5351e 100644
--- a/src/com/android/settings/dashboard/profileselector/UserAdapter.java
+++ b/src/com/android/settings/dashboard/profileselector/UserAdapter.java
@@ -59,9 +59,9 @@
             UserInfo userInfo = um.getUserInfo(mUserHandle.getIdentifier());
             Drawable icon;
             if (userInfo.isManagedProfile()) {
-                mName = context.getSystemService(DevicePolicyManager.class).getString(
-                        WORK_PROFILE_USER_LABEL,
-                        () -> context.getString(R.string.managed_user_title));
+                mName = context.getSystemService(DevicePolicyManager.class).getResources()
+                        .getString(WORK_PROFILE_USER_LABEL,
+                                () -> context.getString(R.string.managed_user_title));
                 icon = context.getPackageManager().getUserBadgeForDensityNoBackground(
                         userHandle, /* density= */ 0);
             } else {
@@ -119,10 +119,10 @@
         int userHandle = user.mUserHandle.getIdentifier();
         if (userHandle == UserHandle.USER_CURRENT
                 || userHandle == ActivityManager.getCurrentUser()) {
-            return mDevicePolicyManager.getString(PERSONAL_CATEGORY_HEADER,
+            return mDevicePolicyManager.getResources().getString(PERSONAL_CATEGORY_HEADER,
                     () -> mContext.getString(R.string.category_personal));
         } else {
-            return mDevicePolicyManager.getString(WORK_CATEGORY_HEADER,
+            return mDevicePolicyManager.getResources().getString(WORK_CATEGORY_HEADER,
                     () -> mContext.getString(R.string.category_work));
         }
     }
diff --git a/src/com/android/settings/deviceinfo/StorageWizardMoveProgress.java b/src/com/android/settings/deviceinfo/StorageWizardMoveProgress.java
index 454de9d..0c5e4a0 100644
--- a/src/com/android/settings/deviceinfo/StorageWizardMoveProgress.java
+++ b/src/com/android/settings/deviceinfo/StorageWizardMoveProgress.java
@@ -89,7 +89,7 @@
             case PackageManager.MOVE_FAILED_INSUFFICIENT_STORAGE:
                 return getString(R.string.insufficient_storage);
             case PackageManager.MOVE_FAILED_DEVICE_ADMIN:
-                return getSystemService(DevicePolicyManager.class)
+                return getSystemService(DevicePolicyManager.class).getResources()
                         .getString(ERROR_MOVE_DEVICE_ADMIN,
                                 () -> getString(R.string.move_error_device_admin));
             case PackageManager.MOVE_FAILED_DOESNT_EXIST:
diff --git a/src/com/android/settings/display/ScreenTimeoutPreferenceController.java b/src/com/android/settings/display/ScreenTimeoutPreferenceController.java
index 65f0853..94041ee 100644
--- a/src/com/android/settings/display/ScreenTimeoutPreferenceController.java
+++ b/src/com/android/settings/display/ScreenTimeoutPreferenceController.java
@@ -62,6 +62,7 @@
         if (admin != null) {
             preference.setEnabled(false);
             preference.setSummary(mContext.getSystemService(DevicePolicyManager.class)
+                    .getResources()
                     .getString(DISABLED_BY_IT_ADMIN_TITLE,
                             () -> mContext.getString(R.string.disabled_by_policy_title)));
             ((RestrictedPreference) preference).setDisabledByAdmin(admin);
diff --git a/src/com/android/settings/display/ScreenTimeoutSettings.java b/src/com/android/settings/display/ScreenTimeoutSettings.java
index 43ec864..25bf852 100644
--- a/src/com/android/settings/display/ScreenTimeoutSettings.java
+++ b/src/com/android/settings/display/ScreenTimeoutSettings.java
@@ -223,7 +223,7 @@
 
     @VisibleForTesting
     void setupDisabledFooterPreference() {
-        final String textDisabledByAdmin = mDevicePolicyManager.getString(
+        final String textDisabledByAdmin = mDevicePolicyManager.getResources().getString(
                 OTHER_OPTIONS_DISABLED_BY_ADMIN, () -> getResources().getString(
                         R.string.admin_disabled_other_options));
         final String textMoreDetails = getResources().getString(R.string.admin_more_details);
diff --git a/src/com/android/settings/enterprise/ActionDisabledByAdminDialogHelper.java b/src/com/android/settings/enterprise/ActionDisabledByAdminDialogHelper.java
index 055e868..b61813b 100644
--- a/src/com/android/settings/enterprise/ActionDisabledByAdminDialogHelper.java
+++ b/src/com/android/settings/enterprise/ActionDisabledByAdminDialogHelper.java
@@ -73,7 +73,7 @@
                 mActivity.getSystemService(DevicePolicyManager.class);
 
         TextView title = mDialogView.findViewById(R.id.admin_support_dialog_title);
-        title.setText(devicePolicyManager.getString(DISABLED_BY_IT_ADMIN_TITLE,
+        title.setText(devicePolicyManager.getResources().getString(DISABLED_BY_IT_ADMIN_TITLE,
                 () -> mActivity.getString(R.string.disabled_by_policy_title)));
 
     }
diff --git a/src/com/android/settings/enterprise/AdminActionPreferenceControllerBase.java b/src/com/android/settings/enterprise/AdminActionPreferenceControllerBase.java
index d5c10b4..e5484db 100644
--- a/src/com/android/settings/enterprise/AdminActionPreferenceControllerBase.java
+++ b/src/com/android/settings/enterprise/AdminActionPreferenceControllerBase.java
@@ -52,7 +52,7 @@
     }
 
     private String getEnterprisePrivacyNone() {
-        return mContext.getSystemService(DevicePolicyManager.class)
+        return mContext.getSystemService(DevicePolicyManager.class).getResources()
                 .getString(ADMIN_ACTION_NONE,
                         () -> mContext.getString(R.string.enterprise_privacy_none));
     }
diff --git a/src/com/android/settings/enterprise/AlwaysOnVpnCurrentUserPreferenceController.java b/src/com/android/settings/enterprise/AlwaysOnVpnCurrentUserPreferenceController.java
index e883ac3..f1f9a61 100644
--- a/src/com/android/settings/enterprise/AlwaysOnVpnCurrentUserPreferenceController.java
+++ b/src/com/android/settings/enterprise/AlwaysOnVpnCurrentUserPreferenceController.java
@@ -44,13 +44,13 @@
     public void updateState(Preference preference) {
         if (mFeatureProvider.isInCompMode()) {
             preference.setTitle(
-                    mDevicePolicyManager.getString(
+                    mDevicePolicyManager.getResources().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,
+                    mDevicePolicyManager.getResources().getString(ALWAYS_ON_VPN_DEVICE,
                             () -> mContext.getString(
                                     R.string.enterprise_privacy_always_on_vpn_device)));
         }
diff --git a/src/com/android/settings/enterprise/CaCertsCurrentUserPreferenceController.java b/src/com/android/settings/enterprise/CaCertsCurrentUserPreferenceController.java
index 76aa6bc..394de07 100644
--- a/src/com/android/settings/enterprise/CaCertsCurrentUserPreferenceController.java
+++ b/src/com/android/settings/enterprise/CaCertsCurrentUserPreferenceController.java
@@ -47,11 +47,11 @@
         super.updateState(preference);
 
         if (mFeatureProvider.isInCompMode()) {
-            preference.setTitle(mDevicePolicyManager.getString(
+            preference.setTitle(mDevicePolicyManager.getResources().getString(
                     CA_CERTS_PERSONAL_PROFILE,
                     () -> mContext.getString(R.string.enterprise_privacy_ca_certs_personal)));
         } else {
-            preference.setTitle(mDevicePolicyManager.getString(
+            preference.setTitle(mDevicePolicyManager.getResources().getString(
                     CA_CERTS_DEVICE,
                     () -> mContext.getString(R.string.enterprise_privacy_ca_certs_device)));
         }
diff --git a/src/com/android/settings/enterprise/DeviceAdminStringProviderImpl.java b/src/com/android/settings/enterprise/DeviceAdminStringProviderImpl.java
index 696baca..422ffe9 100644
--- a/src/com/android/settings/enterprise/DeviceAdminStringProviderImpl.java
+++ b/src/com/android/settings/enterprise/DeviceAdminStringProviderImpl.java
@@ -39,7 +39,7 @@
 
     @Override
     public String getDefaultDisabledByPolicyTitle() {
-        return mDevicePolicyManager.getString(DISABLED_BY_IT_ADMIN_TITLE,
+        return mDevicePolicyManager.getResources().getString(DISABLED_BY_IT_ADMIN_TITLE,
                 () -> mContext.getString(R.string.disabled_by_policy_title));
     }
 
@@ -75,13 +75,13 @@
 
     @Override
     public String getDefaultDisabledByPolicyContent() {
-        return mDevicePolicyManager.getString(CONTACT_YOUR_IT_ADMIN,
+        return mDevicePolicyManager.getResources().getString(CONTACT_YOUR_IT_ADMIN,
                 () -> mContext.getString(R.string.default_admin_support_msg));
     }
 
     @Override
     public String getLearnMoreHelpPageUrl() {
-        return mDevicePolicyManager.getString(IT_ADMIN_POLICY_DISABLING_INFO_URL,
+        return mDevicePolicyManager.getResources().getString(IT_ADMIN_POLICY_DISABLING_INFO_URL,
                 () -> mContext.getString(R.string.help_url_action_disabled_by_it_admin));
     }
 
diff --git a/src/com/android/settings/enterprise/EnterprisePrivacyFeatureProviderImpl.java b/src/com/android/settings/enterprise/EnterprisePrivacyFeatureProviderImpl.java
index 76b2e24..6cadbda 100644
--- a/src/com/android/settings/enterprise/EnterprisePrivacyFeatureProviderImpl.java
+++ b/src/com/android/settings/enterprise/EnterprisePrivacyFeatureProviderImpl.java
@@ -98,11 +98,11 @@
         final SpannableStringBuilder disclosure = new SpannableStringBuilder();
         final CharSequence organizationName = mDpm.getDeviceOwnerOrganizationName();
         if (organizationName != null) {
-            disclosure.append(mDpm.getString(DEVICE_MANAGED_WITH_NAME,
+            disclosure.append(mDpm.getResources().getString(DEVICE_MANAGED_WITH_NAME,
                     () -> mResources.getString(R.string.do_disclosure_with_name,
                     organizationName), organizationName));
         } else {
-            disclosure.append(mDpm.getString(DEVICE_MANAGED_WITHOUT_NAME,
+            disclosure.append(mDpm.getResources().getString(DEVICE_MANAGED_WITHOUT_NAME,
                     () -> mResources.getString(R.string.do_disclosure_generic)));
         }
         return disclosure;
diff --git a/src/com/android/settings/enterprise/EnterpriseSetDefaultAppsListPreferenceController.java b/src/com/android/settings/enterprise/EnterpriseSetDefaultAppsListPreferenceController.java
index 34d098d..3c090ed 100644
--- a/src/com/android/settings/enterprise/EnterpriseSetDefaultAppsListPreferenceController.java
+++ b/src/com/android/settings/enterprise/EnterpriseSetDefaultAppsListPreferenceController.java
@@ -134,11 +134,11 @@
                 final PreferenceCategory category = new PreferenceCategory(prefContext);
                 screen.addPreference(category);
                 if (userInfo.isManagedProfile()) {
-                    category.setTitle(devicePolicyManager.getString(
+                    category.setTitle(devicePolicyManager.getResources().getString(
                             WORK_CATEGORY_HEADER,
                             () -> mContext.getString(R.string.category_work)));
                 } else {
-                    category.setTitle(devicePolicyManager.getString(
+                    category.setTitle(devicePolicyManager.getResources().getString(
                             PERSONAL_CATEGORY_HEADER,
                             () -> mContext.getString(R.string.category_personal)));
                 }
diff --git a/src/com/android/settings/enterprise/ImePreferenceController.java b/src/com/android/settings/enterprise/ImePreferenceController.java
index 25dcdaf..2adf52c 100644
--- a/src/com/android/settings/enterprise/ImePreferenceController.java
+++ b/src/com/android/settings/enterprise/ImePreferenceController.java
@@ -41,7 +41,7 @@
     @Override
     public void updateState(Preference preference) {
         preference.setSummary(
-                mContext.getSystemService(DevicePolicyManager.class)
+                mContext.getSystemService(DevicePolicyManager.class).getResources()
                         .getString(ADMIN_ACTION_SET_INPUT_METHOD_NAME, () ->
                                 mContext.getResources().getString(
                                         R.string.enterprise_privacy_input_method_name,
diff --git a/src/com/android/settings/enterprise/ManageDeviceAdminPreferenceController.java b/src/com/android/settings/enterprise/ManageDeviceAdminPreferenceController.java
index 934659d..71bd3d1 100644
--- a/src/com/android/settings/enterprise/ManageDeviceAdminPreferenceController.java
+++ b/src/com/android/settings/enterprise/ManageDeviceAdminPreferenceController.java
@@ -42,7 +42,7 @@
                 = mFeatureProvider.getNumberOfActiveDeviceAdminsForCurrentUserAndManagedProfile();
 
         if (activeAdmins == 0) {
-            return mDevicePolicyManager.getString(NUMBER_OF_DEVICE_ADMINS_NONE,
+            return mDevicePolicyManager.getResources().getString(NUMBER_OF_DEVICE_ADMINS_NONE,
                     () -> mContext.getResources().getString(R.string.number_of_device_admins_none));
         }
 
diff --git a/src/com/android/settings/enterprise/PrivacyPreferenceControllerHelper.java b/src/com/android/settings/enterprise/PrivacyPreferenceControllerHelper.java
index f6070bd..e582fb0 100644
--- a/src/com/android/settings/enterprise/PrivacyPreferenceControllerHelper.java
+++ b/src/com/android/settings/enterprise/PrivacyPreferenceControllerHelper.java
@@ -52,16 +52,16 @@
 
         final String organizationName = mFeatureProvider.getDeviceOwnerOrganizationName();
         if (organizationName == null) {
-            preference.setSummary(mDevicePolicyManager.getString(
+            preference.setSummary(mDevicePolicyManager.getResources().getString(
                     MANAGED_DEVICE_INFO_SUMMARY,
                     () -> mContext.getString(
                             R.string.enterprise_privacy_settings_summary_generic)));
         } else {
-            preference.setSummary(mDevicePolicyManager
-                    .getString(MANAGED_DEVICE_INFO_SUMMARY_WITH_NAME,
-                            () -> mContext.getResources().getString(
-                                    R.string.enterprise_privacy_settings_summary_with_name,
-                                    organizationName), organizationName));
+            preference.setSummary(mDevicePolicyManager.getResources().getString(
+                    MANAGED_DEVICE_INFO_SUMMARY_WITH_NAME,
+                    () -> mContext.getResources().getString(
+                            R.string.enterprise_privacy_settings_summary_with_name,
+                            organizationName), organizationName));
         }
     }
 
diff --git a/src/com/android/settings/homepage/contextualcards/conditional/WorkModeConditionController.java b/src/com/android/settings/homepage/contextualcards/conditional/WorkModeConditionController.java
index 1927421..beef59f 100644
--- a/src/com/android/settings/homepage/contextualcards/conditional/WorkModeConditionController.java
+++ b/src/com/android/settings/homepage/contextualcards/conditional/WorkModeConditionController.java
@@ -89,7 +89,7 @@
 
     @Override
     public ContextualCard buildContextualCard() {
-        String conditionWorkTitle = mDpm.getString(WORK_PROFILE_OFF_CONDITION_TITLE,
+        String conditionWorkTitle = mDpm.getResources().getString(WORK_PROFILE_OFF_CONDITION_TITLE,
                 () -> mAppContext.getString(R.string.condition_work_title));
         return new ConditionalContextualCard.Builder()
                 .setConditionId(ID)
diff --git a/src/com/android/settings/notification/NotificationAccessSettings.java b/src/com/android/settings/notification/NotificationAccessSettings.java
index 0daa818..4ec9ccd 100644
--- a/src/com/android/settings/notification/NotificationAccessSettings.java
+++ b/src/com/android/settings/notification/NotificationAccessSettings.java
@@ -107,7 +107,7 @@
         if (UserManager.get(mContext).isManagedProfile()) {
             // Apps in the work profile do not support notification listeners.
             Toast.makeText(mContext,
-                    mDpm.getString(WORK_APPS_CANNOT_ACCESS_NOTIFICATION_SETTINGS,
+                    mDpm.getResources().getString(WORK_APPS_CANNOT_ACCESS_NOTIFICATION_SETTINGS,
                             () -> mContext.getString(R.string.notification_settings_work_profile)),
                     Toast.LENGTH_SHORT).show();
             finish();
@@ -168,7 +168,8 @@
             if (managedProfileId != UserHandle.USER_NULL
                     && !mDpm.isNotificationListenerServicePermitted(
                     service.packageName, managedProfileId)) {
-                pref.setSummary(mDpm.getString(WORK_PROFILE_NOTIFICATION_LISTENER_BLOCKED,
+                pref.setSummary(mDpm.getResources().getString(
+                        WORK_PROFILE_NOTIFICATION_LISTENER_BLOCKED,
                         () -> getString(
                                 R.string.work_profile_notification_access_blocked_summary)));
             }
diff --git a/src/com/android/settings/notification/SoundWorkSettingsController.java b/src/com/android/settings/notification/SoundWorkSettingsController.java
index bcaf4af..c14a7fe 100644
--- a/src/com/android/settings/notification/SoundWorkSettingsController.java
+++ b/src/com/android/settings/notification/SoundWorkSettingsController.java
@@ -257,9 +257,9 @@
     private void enableWorkSyncSettings() {
         mWorkUsePersonalSounds.setChecked(true);
 
-        String summary = mContext.getSystemService(DevicePolicyManager.class).getString(
-                WORK_PROFILE_SYNC_WITH_PERSONAL_SOUNDS_ACTIVE_SUMMARY,
-                () -> mContext.getString(R.string.work_sound_same_as_personal)
+        String summary = mContext.getSystemService(DevicePolicyManager.class).getResources()
+                .getString(WORK_PROFILE_SYNC_WITH_PERSONAL_SOUNDS_ACTIVE_SUMMARY,
+                        () -> mContext.getString(R.string.work_sound_same_as_personal)
         );
 
         if (mWorkPhoneRingtonePreference != null) {
@@ -355,10 +355,10 @@
                     context.getSystemService(DevicePolicyManager.class);
 
             return new AlertDialog.Builder(getActivity())
-                    .setTitle(devicePolicyManager.getString(
+                    .setTitle(devicePolicyManager.getResources().getString(
                             ENABLE_WORK_PROFILE_SYNC_WITH_PERSONAL_SOUNDS_DIALOG_TITLE,
                             () -> context.getString(R.string.work_sync_dialog_title)))
-                    .setMessage(devicePolicyManager.getString(
+                    .setMessage(devicePolicyManager.getResources().getString(
                             ENABLE_WORK_PROFILE_SYNC_WITH_PERSONAL_SOUNDS_DIALOG_MESSAGE,
                             () -> context.getString(R.string.work_sync_dialog_message)))
                     .setPositiveButton(R.string.work_sync_dialog_yes,
diff --git a/src/com/android/settings/password/ChooseLockGeneric.java b/src/com/android/settings/password/ChooseLockGeneric.java
index a28f237..841d1f9 100644
--- a/src/com/android/settings/password/ChooseLockGeneric.java
+++ b/src/com/android/settings/password/ChooseLockGeneric.java
@@ -396,16 +396,18 @@
                 }
             } else {
                 if (mIsManagedProfile) {
-                    textView.setText(mDpm.getString(WORK_PROFILE_SCREEN_LOCK_SETUP_MESSAGE,
+                    textView.setText(mDpm.getResources().getString(
+                            WORK_PROFILE_SCREEN_LOCK_SETUP_MESSAGE,
                             () -> getString(R.string.lock_settings_picker_profile_message)));
                 } else {
                     int profileUserId = Utils.getManagedProfileId(mUserManager, mUserId);
                     if (mController.isScreenLockRestrictedByAdmin()
                             && profileUserId != UserHandle.USER_NULL) {
                         final StringBuilder description = new StringBuilder(
-                                mDpm.getString(WORK_PROFILE_IT_ADMIN_CANT_RESET_SCREEN_LOCK, () ->
-                                getString(
-                                R.string.lock_settings_picker_admin_restricted_personal_message)));
+                                mDpm.getResources().getString(
+                                        WORK_PROFILE_IT_ADMIN_CANT_RESET_SCREEN_LOCK,
+                                        () -> getString(
+                                                R.string.lock_settings_picker_admin_restricted_personal_message)));
                         final LinkifyUtils.OnClickListener clickListener = () -> {
                             final Bundle extras = new Bundle();
                             extras.putInt(Intent.EXTRA_USER_ID, profileUserId);
diff --git a/src/com/android/settings/password/ChooseLockPassword.java b/src/com/android/settings/password/ChooseLockPassword.java
index 9f307cb..7b0955e 100644
--- a/src/com/android/settings/password/ChooseLockPassword.java
+++ b/src/com/android/settings/password/ChooseLockPassword.java
@@ -24,7 +24,7 @@
 import static android.app.admin.DevicePolicyResources.Strings.Settings.REENTER_WORK_PROFILE_PIN_HEADER;
 import static android.app.admin.DevicePolicyResources.Strings.Settings.SET_WORK_PROFILE_PASSWORD_HEADER;
 import static android.app.admin.DevicePolicyResources.Strings.Settings.SET_WORK_PROFILE_PIN_HEADER;
-import static android.app.admin.DevicePolicyResources.Strings.UNDEFINED;
+import static android.app.admin.DevicePolicyResources.UNDEFINED;
 
 import static com.android.internal.widget.LockPatternUtils.CREDENTIAL_TYPE_NONE;
 import static com.android.internal.widget.PasswordValidationError.CONTAINS_INVALID_CHARACTERS;
@@ -389,7 +389,7 @@
                     } else if (type == TYPE_BIOMETRIC) {
                         return context.getString(alphaHintForBiometrics);
                     } else if (isProfile) {
-                        return context.getSystemService(DevicePolicyManager.class)
+                        return context.getSystemService(DevicePolicyManager.class).getResources()
                                 .getString(alphaHintOverrideForProfile,
                                         () -> context.getString(alphaHintForProfile));
                     } else {
@@ -403,7 +403,7 @@
                     } else if (type == TYPE_BIOMETRIC) {
                         return context.getString(numericHintForBiometrics);
                     } else if (isProfile) {
-                        return context.getSystemService(DevicePolicyManager.class)
+                        return context.getSystemService(DevicePolicyManager.class).getResources()
                                 .getString(numericHintOverrideForProfile,
                                         () -> context.getString(numericHintForProfile));
                     } else {
@@ -848,11 +848,11 @@
                         DevicePolicyManager devicePolicyManager =
                                 getContext().getSystemService(DevicePolicyManager.class);
                         if (mIsAlphaMode) {
-                            messages.add(devicePolicyManager.getString(
+                            messages.add(devicePolicyManager.getResources().getString(
                                     PASSWORD_RECENTLY_USED,
                                     () -> getString(R.string.lockpassword_password_recently_used)));
                         } else {
-                            messages.add(devicePolicyManager.getString(
+                            messages.add(devicePolicyManager.getResources().getString(
                                     PIN_RECENTLY_USED,
                                     () -> getString(R.string.lockpassword_pin_recently_used)));
                         }
diff --git a/src/com/android/settings/password/ChooseLockPattern.java b/src/com/android/settings/password/ChooseLockPattern.java
index 64fe9ef..6558262 100644
--- a/src/com/android/settings/password/ChooseLockPattern.java
+++ b/src/com/android/settings/password/ChooseLockPattern.java
@@ -482,7 +482,7 @@
             } else if (mForFace) {
                 msg = getString(R.string.lockpassword_choose_your_pattern_header_for_face);
             } else if (mIsManagedProfile) {
-                msg = getContext().getSystemService(DevicePolicyManager.class)
+                msg = getContext().getSystemService(DevicePolicyManager.class).getResources()
                         .getString(SET_WORK_PROFILE_PATTERN_HEADER,
                                 () -> getString(
                                         R.string.lockpassword_choose_your_profile_pattern_header));
diff --git a/src/com/android/settings/password/ConfirmDeviceCredentialActivity.java b/src/com/android/settings/password/ConfirmDeviceCredentialActivity.java
index 4b06fe0..3b5600f 100644
--- a/src/com/android/settings/password/ConfirmDeviceCredentialActivity.java
+++ b/src/com/android/settings/password/ConfirmDeviceCredentialActivity.java
@@ -272,7 +272,7 @@
             case LockPatternUtils.CREDENTIAL_TYPE_PIN:
 
                 if (isEffectiveUserManagedProfile) {
-                    return mDevicePolicyManager.getString(
+                    return mDevicePolicyManager.getResources().getString(
                             CONFIRM_WORK_PROFILE_PIN_HEADER,
                             () -> getString(R.string.lockpassword_confirm_your_work_pin_header));
                 }
@@ -280,7 +280,7 @@
                 return getString(R.string.lockpassword_confirm_your_pin_header);
             case LockPatternUtils.CREDENTIAL_TYPE_PATTERN:
                 if (isEffectiveUserManagedProfile) {
-                    return mDevicePolicyManager.getString(
+                    return mDevicePolicyManager.getResources().getString(
                             CONFIRM_WORK_PROFILE_PATTERN_HEADER,
                             () -> getString(
                                     R.string.lockpassword_confirm_your_work_pattern_header));
@@ -289,7 +289,7 @@
                 return getString(R.string.lockpassword_confirm_your_pattern_header);
             case LockPatternUtils.CREDENTIAL_TYPE_PASSWORD:
                 if (isEffectiveUserManagedProfile) {
-                    return mDevicePolicyManager.getString(
+                    return mDevicePolicyManager.getResources().getString(
                             CONFIRM_WORK_PROFILE_PASSWORD_HEADER,
                             () -> getString(
                                     R.string.lockpassword_confirm_your_work_password_header));
@@ -305,7 +305,7 @@
         switch (credentialType) {
             case LockPatternUtils.CREDENTIAL_TYPE_PIN:
                 if (isEffectiveUserManagedProfile) {
-                    return mDevicePolicyManager.getString(WORK_PROFILE_CONFIRM_PIN,
+                    return mDevicePolicyManager.getResources().getString(WORK_PROFILE_CONFIRM_PIN,
                             () -> getString(
                                     R.string.lockpassword_confirm_your_pin_generic_profile));
                 }
@@ -313,7 +313,8 @@
                 return getString(R.string.lockpassword_confirm_your_pin_generic);
             case LockPatternUtils.CREDENTIAL_TYPE_PATTERN:
                 if (isEffectiveUserManagedProfile) {
-                    return mDevicePolicyManager.getString(WORK_PROFILE_CONFIRM_PATTERN,
+                    return mDevicePolicyManager.getResources().getString(
+                            WORK_PROFILE_CONFIRM_PATTERN,
                             () -> getString(
                                     R.string.lockpassword_confirm_your_pattern_generic_profile));
                 }
@@ -321,7 +322,8 @@
                 return getString(R.string.lockpassword_confirm_your_pattern_generic);
             case LockPatternUtils.CREDENTIAL_TYPE_PASSWORD:
                 if (isEffectiveUserManagedProfile) {
-                    return mDevicePolicyManager.getString(WORK_PROFILE_CONFIRM_PASSWORD,
+                    return mDevicePolicyManager.getResources().getString(
+                            WORK_PROFILE_CONFIRM_PASSWORD,
                             () -> getString(
                                     R.string.lockpassword_confirm_your_password_generic_profile));
                 }
diff --git a/src/com/android/settings/password/ConfirmDeviceCredentialBaseFragment.java b/src/com/android/settings/password/ConfirmDeviceCredentialBaseFragment.java
index 9650a4d..793f600 100644
--- a/src/com/android/settings/password/ConfirmDeviceCredentialBaseFragment.java
+++ b/src/com/android/settings/password/ConfirmDeviceCredentialBaseFragment.java
@@ -247,7 +247,7 @@
                     R.string.lock_last_attempt_before_wipe_warning_title);
             final String overrideMessageId = getLastTryOverrideErrorMessageId(userType);
             final int defaultMessageId = getLastTryDefaultErrorMessage(userType);
-            final String message = mDevicePolicyManager.getString(
+            final String message = mDevicePolicyManager.getResources().getString(
                     overrideMessageId, () -> getString(defaultMessageId));
             LastTryDialog.show(fragmentManager, title, message,
                     android.R.string.ok, false /* dismiss */);
@@ -279,7 +279,8 @@
             case USER_TYPE_PRIMARY:
                 return getString(R.string.lock_failed_attempts_now_wiping_device);
             case USER_TYPE_MANAGED_PROFILE:
-                return mDevicePolicyManager.getString(WORK_PROFILE_LOCK_ATTEMPTS_FAILED,
+                return mDevicePolicyManager.getResources().getString(
+                        WORK_PROFILE_LOCK_ATTEMPTS_FAILED,
                         () -> getString(R.string.lock_failed_attempts_now_wiping_profile));
             case USER_TYPE_SECONDARY:
                 return getString(R.string.lock_failed_attempts_now_wiping_user);
diff --git a/src/com/android/settings/password/ConfirmLockPassword.java b/src/com/android/settings/password/ConfirmLockPassword.java
index df7e2dd..7dcfc83 100644
--- a/src/com/android/settings/password/ConfirmLockPassword.java
+++ b/src/com/android/settings/password/ConfirmLockPassword.java
@@ -16,7 +16,6 @@
 
 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;
@@ -25,6 +24,7 @@
 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 static android.app.admin.DevicePolicyResources.UNDEFINED;
 
 import android.annotation.Nullable;
 import android.app.admin.DevicePolicyManager;
@@ -256,12 +256,12 @@
             }
             if (mIsManagedProfile) {
                 if (mIsAlpha) {
-                    return mDevicePolicyManager.getString(
+                    return mDevicePolicyManager.getResources().getString(
                             CONFIRM_WORK_PROFILE_PASSWORD_HEADER,
                             () -> getString(
                                     R.string.lockpassword_confirm_your_work_password_header));
                 }
-                return mDevicePolicyManager.getString(
+                return mDevicePolicyManager.getResources().getString(
                         CONFIRM_WORK_PROFILE_PIN_HEADER,
                         () -> getString(R.string.lockpassword_confirm_your_work_pin_header));
             }
@@ -278,7 +278,7 @@
             // 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 mDevicePolicyManager.getString(
+            return mDevicePolicyManager.getResources().getString(
                     DETAIL_TEXT_OVERRIDES[index], () -> getString(DETAIL_TEXTS[index]));
         }
 
diff --git a/src/com/android/settings/password/ConfirmLockPattern.java b/src/com/android/settings/password/ConfirmLockPattern.java
index f20a2a2..8b33aa5 100644
--- a/src/com/android/settings/password/ConfirmLockPattern.java
+++ b/src/com/android/settings/password/ConfirmLockPattern.java
@@ -16,11 +16,11 @@
 
 package com.android.settings.password;
 
-import static android.app.admin.DevicePolicyResources.Strings.UNDEFINED;
 import static android.app.admin.DevicePolicyResources.Strings.Settings.CONFIRM_WORK_PROFILE_PATTERN_HEADER;
 import static android.app.admin.DevicePolicyResources.Strings.Settings.WORK_PROFILE_CONFIRM_PATTERN;
 import static android.app.admin.DevicePolicyResources.Strings.Settings.WORK_PROFILE_LAST_PATTERN_ATTEMPT_BEFORE_WIPE;
 import static android.app.admin.DevicePolicyResources.Strings.Settings.WORK_PROFILE_PATTERN_REQUIRED;
+import static android.app.admin.DevicePolicyResources.UNDEFINED;
 
 import android.annotation.Nullable;
 import android.annotation.SuppressLint;
@@ -271,11 +271,13 @@
             final boolean isStrongAuthRequired = isStrongAuthRequired();
             if (mIsManagedProfile) {
                 if (isStrongAuthRequired) {
-                    return mDevicePolicyManager.getString(WORK_PROFILE_PATTERN_REQUIRED,
+                    return mDevicePolicyManager.getResources().getString(
+                            WORK_PROFILE_PATTERN_REQUIRED,
                             () -> getString(
                                     R.string.lockpassword_strong_auth_required_work_pattern));
                 } else {
-                    return mDevicePolicyManager.getString(WORK_PROFILE_CONFIRM_PATTERN,
+                    return mDevicePolicyManager.getResources().getString(
+                            WORK_PROFILE_CONFIRM_PATTERN,
                             () -> getString(
                                     R.string.lockpassword_confirm_your_pattern_generic_profile));
                 }
@@ -368,7 +370,7 @@
             if (mFrp) return getString(R.string.lockpassword_confirm_your_pattern_header_frp);
 
             if (mIsManagedProfile) {
-                return mDevicePolicyManager.getString(
+                return mDevicePolicyManager.getResources().getString(
                         CONFIRM_WORK_PROFILE_PATTERN_HEADER,
                         () -> getString(R.string.lockpassword_confirm_your_work_pattern_header));
             }
diff --git a/src/com/android/settings/password/ForgotPasswordActivity.java b/src/com/android/settings/password/ForgotPasswordActivity.java
index d963a05..657139e 100644
--- a/src/com/android/settings/password/ForgotPasswordActivity.java
+++ b/src/com/android/settings/password/ForgotPasswordActivity.java
@@ -51,7 +51,7 @@
 
         DevicePolicyManager devicePolicyManager = getSystemService(DevicePolicyManager.class);
         TextView forgotPasswordText = (TextView) findViewById(R.id.forgot_password_text);
-        forgotPasswordText.setText(devicePolicyManager.getString(
+        forgotPasswordText.setText(devicePolicyManager.getResources().getString(
                 FORGOT_PASSWORD_TEXT, () -> getString(R.string.forgot_password_text)));
 
         final GlifLayout layout = findViewById(R.id.setup_wizard_layout);
diff --git a/src/com/android/settings/security/LockUnificationPreferenceController.java b/src/com/android/settings/security/LockUnificationPreferenceController.java
index ec7a6ed..d85d65b 100644
--- a/src/com/android/settings/security/LockUnificationPreferenceController.java
+++ b/src/com/android/settings/security/LockUnificationPreferenceController.java
@@ -192,7 +192,8 @@
      */
     public void startUnification() {
         // Confirm profile lock
-        final String title = mDpm.getString(WORK_PROFILE_SET_UNLOCK_LAUNCH_PICKER_TITLE,
+        final String title = mDpm.getResources().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);
diff --git a/src/com/android/settings/security/UnificationConfirmationDialog.java b/src/com/android/settings/security/UnificationConfirmationDialog.java
index 929751c..0238b0c 100644
--- a/src/com/android/settings/security/UnificationConfirmationDialog.java
+++ b/src/com/android/settings/security/UnificationConfirmationDialog.java
@@ -65,7 +65,7 @@
 
         return new AlertDialog.Builder(getActivity())
                 .setTitle(R.string.lock_settings_profile_unification_dialog_title)
-                .setMessage(getContext().getSystemService(DevicePolicyManager.class)
+                .setMessage(getContext().getSystemService(DevicePolicyManager.class).getResources()
                         .getString(overrideMessageId, () -> getString(defaultMessageId)))
                 .setPositiveButton(
                         compliant ? R.string.lock_settings_profile_unification_dialog_confirm
diff --git a/src/com/android/settings/security/screenlock/LockAfterTimeoutPreferenceController.java b/src/com/android/settings/security/screenlock/LockAfterTimeoutPreferenceController.java
index 17e7e01..180ed99 100644
--- a/src/com/android/settings/security/screenlock/LockAfterTimeoutPreferenceController.java
+++ b/src/com/android/settings/security/screenlock/LockAfterTimeoutPreferenceController.java
@@ -124,7 +124,7 @@
     private void updateLockAfterPreferenceSummary(TimeoutListPreference preference) {
         final CharSequence summary;
         if (preference.isDisabledByAdmin()) {
-            summary = mDPM.getString(DISABLED_BY_IT_ADMIN_TITLE,
+            summary = mDPM.getResources().getString(DISABLED_BY_IT_ADMIN_TITLE,
                     () -> mContext.getString(R.string.disabled_by_policy_title));
         } else {
             // Update summary message with current value
diff --git a/src/com/android/settings/users/UserDialogs.java b/src/com/android/settings/users/UserDialogs.java
index 4dcec4d..d28b798 100644
--- a/src/com/android/settings/users/UserDialogs.java
+++ b/src/com/android/settings/users/UserDialogs.java
@@ -63,13 +63,13 @@
                 .setPositiveButton(R.string.user_delete_button, onConfirmListener)
                 .setNegativeButton(android.R.string.cancel, null);
         if (userInfo.isManagedProfile()) {
-            builder.setTitle(dpm.getString(WORK_PROFILE_CONFIRM_REMOVE_TITLE,
+            builder.setTitle(dpm.getResources().getString(WORK_PROFILE_CONFIRM_REMOVE_TITLE,
                     () -> context.getString(R.string.work_profile_confirm_remove_title)));
             View view = createRemoveManagedUserDialogView(context, removingUserId);
             if (view != null) {
                 builder.setView(view);
             } else {
-                builder.setMessage(dpm.getString(WORK_PROFILE_CONFIRM_REMOVE_MESSAGE,
+                builder.setMessage(dpm.getResources().getString(WORK_PROFILE_CONFIRM_REMOVE_MESSAGE,
                         () -> context.getString(R.string.work_profile_confirm_remove_message)));
             }
         } else if (UserHandle.myUserId() == removingUserId) {
@@ -107,12 +107,14 @@
 
         TextView openingParagraph = (TextView)
                 view.findViewById(R.id.delete_managed_profile_opening_paragraph);
-        openingParagraph.setText(devicePolicyManager.getString(WORK_PROFILE_MANAGED_BY,
+        openingParagraph.setText(devicePolicyManager.getResources().getString(
+                WORK_PROFILE_MANAGED_BY,
                 () -> context.getString(
                         R.string.opening_paragraph_delete_profile_unknown_company)));
         TextView closingParagraph = (TextView)
                 view.findViewById(R.id.delete_managed_profile_closing_paragraph);
-        closingParagraph.setText(devicePolicyManager.getString(WORK_PROFILE_CONFIRM_REMOVE_MESSAGE,
+        closingParagraph.setText(devicePolicyManager.getResources().getString(
+                WORK_PROFILE_CONFIRM_REMOVE_MESSAGE,
                 () -> context.getString(R.string.work_profile_confirm_remove_message)));
 
         CharSequence appLabel = packageManager.getApplicationLabel(mdmApplicationInfo);
diff --git a/src/com/android/settings/utils/ManagedServiceSettings.java b/src/com/android/settings/utils/ManagedServiceSettings.java
index 06a8fff..a1e2b05 100644
--- a/src/com/android/settings/utils/ManagedServiceSettings.java
+++ b/src/com/android/settings/utils/ManagedServiceSettings.java
@@ -136,7 +136,8 @@
             if (managedProfileId != UserHandle.USER_NULL
                     && !mDpm.isNotificationListenerServicePermitted(
                             service.packageName, managedProfileId)) {
-                pref.setSummary(mDpm.getString(WORK_PROFILE_NOTIFICATION_LISTENER_BLOCKED,
+                pref.setSummary(mDpm.getResources().getString(
+                        WORK_PROFILE_NOTIFICATION_LISTENER_BLOCKED,
                         () -> getString(
                                 R.string.work_profile_notification_access_blocked_summary)));
             }