Merge "Rename DND Access to Priority Modes Access in Settings" into main

This commit is contained in:
Matías Hernández
2024-08-19 17:18:26 +00:00
committed by Android (Google) Code Review
8 changed files with 84 additions and 8 deletions

View File

@@ -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>

View File

@@ -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)

View File

@@ -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);

View File

@@ -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())

View File

@@ -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();

View File

@@ -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<String> getPackagesRequestingNotificationPolicyAccess() {
final String[] PERM = {
android.Manifest.permission.ACCESS_NOTIFICATION_POLICY

View File

@@ -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 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 */));
}
@@ -80,6 +84,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;

View File

@@ -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);