Merge "Rename DND Access to Priority Modes Access in Settings" into main
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 939befe..ab883ee 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -8851,9 +8851,13 @@
<string name="nls_feature_reply_summary">It can reply to messages and take action on buttons in notifications, including snoozing or dismissing notifications and answering calls.</string>
<string name="nls_feature_settings_title">Change settings</string>
<string name="nls_feature_settings_summary">It can turn Do Not Disturb on or off and change related settings.</string>
+ <string name="nls_feature_modes_settings_summary">It can manage and activate Priority Modes, and change related settings.</string>
<string name="notification_listener_disable_warning_summary">
If you turn off notification access for <xliff:g id="notification_listener_name">%1$s</xliff:g>, Do Not Disturb access may also be turned off.
</string>
+ <string name="notification_listener_disable_modes_warning_summary">
+ If you turn off notification access for <xliff:g id="notification_listener_name">%1$s</xliff:g>, Priority Modes access may also be turned off.
+ </string>
<string name="notification_listener_disable_warning_confirm">Turn off</string>
<string name="notification_listener_disable_warning_cancel">Cancel</string>
<string name="notif_type_ongoing">Real-time</string>
@@ -9030,6 +9034,15 @@
<!-- Sound & notification > Do Not Disturb access > Text to display when the list is empty. [CHAR LIMIT=NONE] -->
<string name="zen_access_empty_text">No installed apps have requested Do Not Disturb access</string>
+ <!-- Special App Access: Title for managing Priority Modes access option. [CHAR LIMIT=40] -->
+ <string name="manage_zen_modes_access_title">Priority Modes access</string>
+
+ <!-- Button title that grants 'Priority Modes' permission to an app [CHAR_LIMIT=60]-->
+ <string name="zen_modes_access_detail_switch">Allow Priority Modes access</string>
+
+ <!-- Special App Access > Do Not Disturb access > Text to display when the list is empty. [CHAR LIMIT=NONE] -->
+ <string name="zen_modes_access_empty_text">No installed apps have requested Priority Modes access</string>
+
<!-- [CHAR LIMIT=NONE] Text appearing when app notifications are off -->
<string name="app_notifications_off_desc">You haven\'t allowed notifications from this app</string>
@@ -10151,6 +10164,18 @@
<!-- Zen mode access settings - summary for warning dialog when revoking access [CHAR LIMIT=NONE] -->
<string name="zen_access_revoke_warning_dialog_summary">All Do Not Disturb rules created by this app will be removed.</string>
+ <!-- Priority modes access settings - title for warning dialog when enabling access [CHAR LIMIT=NONE] -->
+ <string name="zen_modes_access_warning_dialog_title">Allow access to Priority Modes for <xliff:g id="app" example="Tasker">%1$s</xliff:g>?</string>
+
+ <!-- Priority modes access settings - summary for warning dialog when enabling access [CHAR LIMIT=NONE] -->
+ <string name="zen_modes_access_warning_dialog_summary">The app will be able to turn on/off Do Not Disturb, manage and activate Priority Modes, and make changes to related settings.</string>
+
+ <!-- Priority modes access settings - title for warning dialog when revoking access [CHAR LIMIT=NONE] -->
+ <string name="zen_modes_access_revoke_warning_dialog_title">Revoke access Priority Modes for <xliff:g id="app" example="Tasker">%1$s</xliff:g>?</string>
+
+ <!-- Priority modes access settings - summary for warning dialog when revoking access [CHAR LIMIT=NONE] -->
+ <string name="zen_modes_access_revoke_warning_dialog_summary">All modes created by this app will be removed.</string>
+
<!-- Ignore battery optimizations on label [CHAR LIMIT=30] -->
<string name="ignore_optimizations_on">Don\u2019t optimize</string>
diff --git a/src/com/android/settings/applications/specialaccess/notificationaccess/FriendlyWarningDialogFragment.java b/src/com/android/settings/applications/specialaccess/notificationaccess/FriendlyWarningDialogFragment.java
index 3577946..c92f734 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 @@
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 747a125..53181fd 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 @@
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 5da2990..38317ed 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 @@
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 e4ef48b..b489602 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 @@
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 6f4137c..cfeeb0d 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 @@
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.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 @@
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<String> 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 20367c3..74903c0 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;
@@ -43,6 +44,9 @@
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 */));
}
@@ -80,6 +84,9 @@
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 f765d6d..4b598db 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 @@
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 @@
@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 @@
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 @@
/**
* @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);