From fe1d29699ee3ce7a7f44082bc471e75714cdb69a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mat=C3=ADas=20Hern=C3=A1ndez?= Date: Fri, 16 Aug 2024 21:15:14 +0200 Subject: [PATCH] Rename DND Access to Priority Modes Access in Settings Bug: 360384256 Test: manual Flag: android.app.modes_ui Change-Id: If01a14cfac8cf5660cf93ef10bce6a334472a0b9 --- res/values/strings.xml | 25 +++++++++++++++++++ .../FriendlyWarningDialogFragment.java | 6 ++++- .../ScaryWarningDialogFragment.java | 6 +++++ .../FriendlyWarningDialogFragment.java | 10 ++++++-- .../zenaccess/ScaryWarningDialogFragment.java | 10 ++++++-- .../zenaccess/ZenAccessController.java | 14 +++++++++++ .../zenaccess/ZenAccessDetails.java | 7 ++++++ .../notification/zen/ZenAccessSettings.java | 14 ++++++++--- 8 files changed, 84 insertions(+), 8 deletions(-) diff --git a/res/values/strings.xml b/res/values/strings.xml index 6c018c23ec9..c9cc94d575a 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -8839,9 +8839,13 @@ It can reply to messages and take action on buttons in notifications, including snoozing or dismissing notifications and answering calls. Change settings It can turn Do Not Disturb on or off and change related settings. + It can manage and activate Priority Modes, and change related settings. If you turn off notification access for %1$s, Do Not Disturb access may also be turned off. + + If you turn off notification access for %1$s, Priority Modes access may also be turned off. + Turn off Cancel Real-time @@ -9018,6 +9022,15 @@ No installed apps have requested Do Not Disturb access + + Priority Modes access + + + Allow Priority Modes access + + + No installed apps have requested Priority Modes access + You haven\'t allowed notifications from this app @@ -10122,6 +10135,18 @@ All Do Not Disturb rules created by this app will be removed. + + Allow access to Priority Modes for %1$s? + + + The app will be able to turn on/off Do Not Disturb, manage and activate Priority Modes, and make changes to related settings. + + + Revoke access Priority Modes for %1$s? + + + All modes created by this app will be removed. + Don\u2019t optimize diff --git a/src/com/android/settings/applications/specialaccess/notificationaccess/FriendlyWarningDialogFragment.java b/src/com/android/settings/applications/specialaccess/notificationaccess/FriendlyWarningDialogFragment.java index 3577946e28f..c92f73410b4 100644 --- a/src/com/android/settings/applications/specialaccess/notificationaccess/FriendlyWarningDialogFragment.java +++ b/src/com/android/settings/applications/specialaccess/notificationaccess/FriendlyWarningDialogFragment.java @@ -16,6 +16,7 @@ package com.android.settings.applications.specialaccess.notificationaccess; import android.app.Dialog; +import android.app.Flags; import android.app.settings.SettingsEnums; import android.content.ComponentName; import android.content.DialogInterface; @@ -55,7 +56,10 @@ public class FriendlyWarningDialogFragment extends InstrumentedDialogFragment { NotificationAccessDetails parent = (NotificationAccessDetails) getTargetFragment(); final String summary = getResources().getString( - R.string.notification_listener_disable_warning_summary, label); + Flags.modesApi() && Flags.modesUi() + ? R.string.notification_listener_disable_modes_warning_summary + : R.string.notification_listener_disable_warning_summary, + label); return new AlertDialog.Builder(getContext()) .setMessage(summary) .setCancelable(true) diff --git a/src/com/android/settings/applications/specialaccess/notificationaccess/ScaryWarningDialogFragment.java b/src/com/android/settings/applications/specialaccess/notificationaccess/ScaryWarningDialogFragment.java index 747a1251300..53181fd4f9f 100644 --- a/src/com/android/settings/applications/specialaccess/notificationaccess/ScaryWarningDialogFragment.java +++ b/src/com/android/settings/applications/specialaccess/notificationaccess/ScaryWarningDialogFragment.java @@ -16,6 +16,7 @@ package com.android.settings.applications.specialaccess.notificationaccess; import android.app.Dialog; +import android.app.Flags; import android.app.settings.SettingsEnums; import android.content.ComponentName; import android.content.Context; @@ -96,6 +97,11 @@ public class ScaryWarningDialogFragment extends InstrumentedDialogFragment { R.string.nls_warning_prompt, label); ((TextView) content.findViewById(R.id.prompt)).setText(prompt); + ((TextView) content.findViewById(R.id.settings_description)).setText( + Flags.modesApi() && Flags.modesUi() + ? R.string.nls_feature_modes_settings_summary + : R.string.nls_feature_settings_summary); + Button allowButton = content.findViewById(R.id.allow_button); allowButton.setOnClickListener((view) -> { parent.enable(cn); diff --git a/src/com/android/settings/applications/specialaccess/zenaccess/FriendlyWarningDialogFragment.java b/src/com/android/settings/applications/specialaccess/zenaccess/FriendlyWarningDialogFragment.java index 5da2990caae..38317ed6b52 100644 --- a/src/com/android/settings/applications/specialaccess/zenaccess/FriendlyWarningDialogFragment.java +++ b/src/com/android/settings/applications/specialaccess/zenaccess/FriendlyWarningDialogFragment.java @@ -17,6 +17,7 @@ package com.android.settings.applications.specialaccess.zenaccess; import android.app.Dialog; +import android.app.Flags; import android.app.settings.SettingsEnums; import android.os.Bundle; import android.text.TextUtils; @@ -58,9 +59,14 @@ public class FriendlyWarningDialogFragment extends InstrumentedDialogFragment { final String label = args.getString(KEY_LABEL); final String title = getResources().getString( - R.string.zen_access_revoke_warning_dialog_title, label); + Flags.modesApi() && Flags.modesUi() + ? R.string.zen_modes_access_revoke_warning_dialog_title + : R.string.zen_access_revoke_warning_dialog_title, + label); final String summary = getResources() - .getString(R.string.zen_access_revoke_warning_dialog_summary); + .getString(Flags.modesApi() && Flags.modesUi() + ? R.string.zen_modes_access_revoke_warning_dialog_summary + : R.string.zen_access_revoke_warning_dialog_summary); ZenAccessDetails parent = (ZenAccessDetails) getTargetFragment(); return new AlertDialog.Builder(getContext()) diff --git a/src/com/android/settings/applications/specialaccess/zenaccess/ScaryWarningDialogFragment.java b/src/com/android/settings/applications/specialaccess/zenaccess/ScaryWarningDialogFragment.java index e4ef48bc823..b4896026962 100644 --- a/src/com/android/settings/applications/specialaccess/zenaccess/ScaryWarningDialogFragment.java +++ b/src/com/android/settings/applications/specialaccess/zenaccess/ScaryWarningDialogFragment.java @@ -17,6 +17,7 @@ package com.android.settings.applications.specialaccess.zenaccess; import android.app.Dialog; +import android.app.Flags; import android.app.settings.SettingsEnums; import android.os.Bundle; import android.text.TextUtils; @@ -55,10 +56,15 @@ public class ScaryWarningDialogFragment extends InstrumentedDialogFragment { final String pkg = args.getString(KEY_PKG); final String label = args.getString(KEY_LABEL); - final String title = getResources().getString(R.string.zen_access_warning_dialog_title, + final String title = getResources().getString( + Flags.modesApi() && Flags.modesUi() + ? R.string.zen_modes_access_warning_dialog_title + : R.string.zen_access_warning_dialog_title, label); final String summary = getResources() - .getString(R.string.zen_access_warning_dialog_summary); + .getString(Flags.modesApi() && Flags.modesUi() + ? R.string.zen_modes_access_warning_dialog_summary + : R.string.zen_access_warning_dialog_summary); ZenAccessDetails parent = (ZenAccessDetails) getTargetFragment(); diff --git a/src/com/android/settings/applications/specialaccess/zenaccess/ZenAccessController.java b/src/com/android/settings/applications/specialaccess/zenaccess/ZenAccessController.java index 6f4137c224a..cfeeb0dc02c 100644 --- a/src/com/android/settings/applications/specialaccess/zenaccess/ZenAccessController.java +++ b/src/com/android/settings/applications/specialaccess/zenaccess/ZenAccessController.java @@ -18,6 +18,7 @@ package com.android.settings.applications.specialaccess.zenaccess; import android.app.ActivityManager; import android.app.AppGlobals; +import android.app.Flags; import android.app.NotificationManager; import android.app.settings.SettingsEnums; import android.content.Context; @@ -28,7 +29,10 @@ import android.util.ArraySet; import android.util.Log; import androidx.annotation.VisibleForTesting; +import androidx.preference.Preference; +import androidx.preference.PreferenceScreen; +import com.android.settings.R; import com.android.settings.core.BasePreferenceController; import com.android.settings.overlay.FeatureFactory; @@ -48,6 +52,16 @@ public class ZenAccessController extends BasePreferenceController { return AVAILABLE; } + @Override + public void displayPreference(PreferenceScreen screen) { + Preference preference = screen.findPreference(getPreferenceKey()); + if (preference != null) { + preference.setTitle(Flags.modesApi() && Flags.modesUi() + ? R.string.manage_zen_modes_access_title + : R.string.manage_zen_access_title); + } + } + public static Set getPackagesRequestingNotificationPolicyAccess() { final String[] PERM = { android.Manifest.permission.ACCESS_NOTIFICATION_POLICY diff --git a/src/com/android/settings/applications/specialaccess/zenaccess/ZenAccessDetails.java b/src/com/android/settings/applications/specialaccess/zenaccess/ZenAccessDetails.java index ffe13e6f5a0..730c2fb659d 100644 --- a/src/com/android/settings/applications/specialaccess/zenaccess/ZenAccessDetails.java +++ b/src/com/android/settings/applications/specialaccess/zenaccess/ZenAccessDetails.java @@ -16,6 +16,7 @@ package com.android.settings.applications.specialaccess.zenaccess; +import android.app.Flags; import android.app.settings.SettingsEnums; import android.content.Context; import android.os.Bundle; @@ -42,6 +43,9 @@ public class ZenAccessDetails extends AppInfoWithHeader implements public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.zen_access_permission_details); + requireActivity().setTitle(Flags.modesApi() && Flags.modesUi() + ? R.string.manage_zen_modes_access_title + : R.string.manage_zen_access_title); getSettingsLifecycle().addObserver( new ZenAccessSettingObserverMixin(getContext(), this /* listener */)); } @@ -74,6 +78,9 @@ public class ZenAccessDetails extends AppInfoWithHeader implements preference.setSummary(getString(R.string.zen_access_disabled_package_warning)); return; } + preference.setTitle(Flags.modesApi() && Flags.modesUi() + ? R.string.zen_modes_access_detail_switch + : R.string.zen_access_detail_switch); preference.setChecked(ZenAccessController.hasAccess(context, mPackageName)); preference.setOnPreferenceChangeListener((p, newValue) -> { final boolean access = (Boolean) newValue; diff --git a/src/com/android/settings/notification/zen/ZenAccessSettings.java b/src/com/android/settings/notification/zen/ZenAccessSettings.java index f765d6d2e4d..4b598db0ae7 100644 --- a/src/com/android/settings/notification/zen/ZenAccessSettings.java +++ b/src/com/android/settings/notification/zen/ZenAccessSettings.java @@ -16,6 +16,7 @@ package com.android.settings.notification.zen; +import android.app.Flags; import android.app.NotificationManager; import android.app.settings.SettingsEnums; import android.content.Context; @@ -68,6 +69,9 @@ public class ZenAccessSettings extends EmptyTextSettings implements mContext = getActivity(); mPkgMan = mContext.getPackageManager(); mNoMan = mContext.getSystemService(NotificationManager.class); + requireActivity().setTitle(Flags.modesApi() && Flags.modesUi() + ? R.string.manage_zen_modes_access_title + : R.string.manage_zen_access_title); getSettingsLifecycle().addObserver( new ZenAccessSettingObserverMixin(getContext(), this /* listener */)); } @@ -75,7 +79,9 @@ public class ZenAccessSettings extends EmptyTextSettings implements @Override public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); - setEmptyText(R.string.zen_access_empty_text); + setEmptyText(Flags.modesApi() && Flags.modesUi() + ? R.string.zen_modes_access_empty_text + : R.string.zen_access_empty_text); } @Override @@ -139,7 +145,9 @@ public class ZenAccessSettings extends EmptyTextSettings implements pref.setOnPreferenceClickListener(preference -> { AppInfoBase.startAppInfoFragment( ZenAccessDetails.class /* fragment */, - getString(R.string.manage_zen_access_title) /* titleRes */, + getString(Flags.modesApi() && Flags.modesUi() + ? R.string.manage_zen_modes_access_title + : R.string.manage_zen_access_title), pkg, app.uid, this /* source */, @@ -154,7 +162,7 @@ public class ZenAccessSettings extends EmptyTextSettings implements /** * @return the summary for the current state of whether the app associated with the given - * {@param packageName} is allowed to enter picture-in-picture. + * {@param packageName} is allowed to manage DND / Priority Modes. */ private int getPreferenceSummary(String packageName) { final boolean enabled = ZenAccessController.hasAccess(getContext(), packageName);