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,9 @@
package com.android.settings.notification;
import static android.app.admin.DevicePolicyResources.Strings.Settings.WORK_APPS_CANNOT_ACCESS_NOTIFICATION_SETTINGS;
import static android.app.admin.DevicePolicyResources.Strings.Settings.WORK_PROFILE_NOTIFICATION_LISTENER_BLOCKED;
import android.annotation.Nullable;
import android.app.NotificationManager;
import android.app.admin.DevicePolicyManager;
@@ -103,7 +106,9 @@ public class NotificationAccessSettings extends EmptyTextSettings {
if (UserManager.get(mContext).isManagedProfile()) {
// Apps in the work profile do not support notification listeners.
Toast.makeText(mContext, R.string.notification_settings_work_profile,
Toast.makeText(mContext,
mDpm.getString(WORK_APPS_CANNOT_ACCESS_NOTIFICATION_SETTINGS,
() -> mContext.getString(R.string.notification_settings_work_profile)),
Toast.LENGTH_SHORT).show();
finish();
}
@@ -163,7 +168,9 @@ public class NotificationAccessSettings extends EmptyTextSettings {
if (managedProfileId != UserHandle.USER_NULL
&& !mDpm.isNotificationListenerServicePermitted(
service.packageName, managedProfileId)) {
pref.setSummary(R.string.work_profile_notification_access_blocked_summary);
pref.setSummary(mDpm.getString(WORK_PROFILE_NOTIFICATION_LISTENER_BLOCKED,
() -> getString(
R.string.work_profile_notification_access_blocked_summary)));
}
pref.setOnPreferenceClickListener(preference -> {
final Bundle args = new Bundle();

View File

@@ -16,8 +16,13 @@
package com.android.settings.notification;
import static android.app.admin.DevicePolicyResources.Strings.Settings.ENABLE_WORK_PROFILE_SYNC_WITH_PERSONAL_SOUNDS_DIALOG_MESSAGE;
import static android.app.admin.DevicePolicyResources.Strings.Settings.ENABLE_WORK_PROFILE_SYNC_WITH_PERSONAL_SOUNDS_DIALOG_TITLE;
import static android.app.admin.DevicePolicyResources.Strings.Settings.WORK_PROFILE_SYNC_WITH_PERSONAL_SOUNDS_ACTIVE_SUMMARY;
import android.annotation.UserIdInt;
import android.app.Dialog;
import android.app.admin.DevicePolicyManager;
import android.app.settings.SettingsEnums;
import android.content.BroadcastReceiver;
import android.content.Context;
@@ -252,11 +257,16 @@ public class SoundWorkSettingsController extends AbstractPreferenceController
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)
);
if (mWorkPhoneRingtonePreference != null) {
mWorkPhoneRingtonePreference.setSummary(R.string.work_sound_same_as_personal);
mWorkPhoneRingtonePreference.setSummary(summary);
}
mWorkNotificationRingtonePreference.setSummary(R.string.work_sound_same_as_personal);
mWorkAlarmRingtonePreference.setSummary(R.string.work_sound_same_as_personal);
mWorkNotificationRingtonePreference.setSummary(summary);
mWorkAlarmRingtonePreference.setSummary(summary);
}
private void disableWorkSync() {
@@ -339,9 +349,18 @@ public class SoundWorkSettingsController extends AbstractPreferenceController
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
Context context = getActivity().getApplicationContext();
DevicePolicyManager devicePolicyManager =
context.getSystemService(DevicePolicyManager.class);
return new AlertDialog.Builder(getActivity())
.setTitle(R.string.work_sync_dialog_title)
.setMessage(R.string.work_sync_dialog_message)
.setTitle(devicePolicyManager.getString(
ENABLE_WORK_PROFILE_SYNC_WITH_PERSONAL_SOUNDS_DIALOG_TITLE,
() -> context.getString(R.string.work_sync_dialog_title)))
.setMessage(devicePolicyManager.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,
SoundWorkSettingsController.UnifyWorkDialogFragment.this)
.setNegativeButton(android.R.string.no, /* listener= */ null)

View File

@@ -17,7 +17,6 @@
package com.android.settings.notification.zen;
import android.annotation.Nullable;
import android.app.ActivityManager;
import android.app.NotificationManager;
import android.app.settings.SettingsEnums;
import android.content.Context;
@@ -28,8 +27,8 @@ import android.os.Bundle;
import android.os.UserHandle;
import android.os.UserManager;
import android.util.ArraySet;
import android.view.View;
import android.util.Log;
import android.view.View;
import androidx.preference.PreferenceScreen;
@@ -138,7 +137,7 @@ public class ZenAccessSettings extends EmptyTextSettings implements
pref.setOnPreferenceClickListener(preference -> {
AppInfoBase.startAppInfoFragment(
ZenAccessDetails.class /* fragment */,
R.string.manage_zen_access_title /* titleRes */,
getString(R.string.manage_zen_access_title) /* titleRes */,
pkg,
app.uid,
this /* source */,