Merge "Rename DND Access to Priority Modes Access in Settings" into main
This commit is contained in:
committed by
Android (Google) Code Review
commit
c85e48b0aa
@@ -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_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_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_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">
|
<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.
|
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>
|
||||||
|
<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_confirm">Turn off</string>
|
||||||
<string name="notification_listener_disable_warning_cancel">Cancel</string>
|
<string name="notification_listener_disable_warning_cancel">Cancel</string>
|
||||||
<string name="notif_type_ongoing">Real-time</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] -->
|
<!-- 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>
|
<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 -->
|
<!-- [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>
|
<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] -->
|
<!-- 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>
|
<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] -->
|
<!-- Ignore battery optimizations on label [CHAR LIMIT=30] -->
|
||||||
<string name="ignore_optimizations_on">Don\u2019t optimize</string>
|
<string name="ignore_optimizations_on">Don\u2019t optimize</string>
|
||||||
|
|
||||||
|
@@ -16,6 +16,7 @@
|
|||||||
package com.android.settings.applications.specialaccess.notificationaccess;
|
package com.android.settings.applications.specialaccess.notificationaccess;
|
||||||
|
|
||||||
import android.app.Dialog;
|
import android.app.Dialog;
|
||||||
|
import android.app.Flags;
|
||||||
import android.app.settings.SettingsEnums;
|
import android.app.settings.SettingsEnums;
|
||||||
import android.content.ComponentName;
|
import android.content.ComponentName;
|
||||||
import android.content.DialogInterface;
|
import android.content.DialogInterface;
|
||||||
@@ -55,7 +56,10 @@ public class FriendlyWarningDialogFragment extends InstrumentedDialogFragment {
|
|||||||
NotificationAccessDetails parent = (NotificationAccessDetails) getTargetFragment();
|
NotificationAccessDetails parent = (NotificationAccessDetails) getTargetFragment();
|
||||||
|
|
||||||
final String summary = getResources().getString(
|
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())
|
return new AlertDialog.Builder(getContext())
|
||||||
.setMessage(summary)
|
.setMessage(summary)
|
||||||
.setCancelable(true)
|
.setCancelable(true)
|
||||||
|
@@ -16,6 +16,7 @@
|
|||||||
package com.android.settings.applications.specialaccess.notificationaccess;
|
package com.android.settings.applications.specialaccess.notificationaccess;
|
||||||
|
|
||||||
import android.app.Dialog;
|
import android.app.Dialog;
|
||||||
|
import android.app.Flags;
|
||||||
import android.app.settings.SettingsEnums;
|
import android.app.settings.SettingsEnums;
|
||||||
import android.content.ComponentName;
|
import android.content.ComponentName;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
@@ -96,6 +97,11 @@ public class ScaryWarningDialogFragment extends InstrumentedDialogFragment {
|
|||||||
R.string.nls_warning_prompt, label);
|
R.string.nls_warning_prompt, label);
|
||||||
((TextView) content.findViewById(R.id.prompt)).setText(prompt);
|
((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);
|
Button allowButton = content.findViewById(R.id.allow_button);
|
||||||
allowButton.setOnClickListener((view) -> {
|
allowButton.setOnClickListener((view) -> {
|
||||||
parent.enable(cn);
|
parent.enable(cn);
|
||||||
|
@@ -17,6 +17,7 @@
|
|||||||
package com.android.settings.applications.specialaccess.zenaccess;
|
package com.android.settings.applications.specialaccess.zenaccess;
|
||||||
|
|
||||||
import android.app.Dialog;
|
import android.app.Dialog;
|
||||||
|
import android.app.Flags;
|
||||||
import android.app.settings.SettingsEnums;
|
import android.app.settings.SettingsEnums;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
@@ -58,9 +59,14 @@ public class FriendlyWarningDialogFragment extends InstrumentedDialogFragment {
|
|||||||
final String label = args.getString(KEY_LABEL);
|
final String label = args.getString(KEY_LABEL);
|
||||||
|
|
||||||
final String title = getResources().getString(
|
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()
|
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();
|
ZenAccessDetails parent = (ZenAccessDetails) getTargetFragment();
|
||||||
return new AlertDialog.Builder(getContext())
|
return new AlertDialog.Builder(getContext())
|
||||||
|
@@ -17,6 +17,7 @@
|
|||||||
package com.android.settings.applications.specialaccess.zenaccess;
|
package com.android.settings.applications.specialaccess.zenaccess;
|
||||||
|
|
||||||
import android.app.Dialog;
|
import android.app.Dialog;
|
||||||
|
import android.app.Flags;
|
||||||
import android.app.settings.SettingsEnums;
|
import android.app.settings.SettingsEnums;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
@@ -55,10 +56,15 @@ public class ScaryWarningDialogFragment extends InstrumentedDialogFragment {
|
|||||||
final String pkg = args.getString(KEY_PKG);
|
final String pkg = args.getString(KEY_PKG);
|
||||||
final String label = args.getString(KEY_LABEL);
|
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);
|
label);
|
||||||
final String summary = getResources()
|
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();
|
ZenAccessDetails parent = (ZenAccessDetails) getTargetFragment();
|
||||||
|
|
||||||
|
@@ -18,6 +18,7 @@ package com.android.settings.applications.specialaccess.zenaccess;
|
|||||||
|
|
||||||
import android.app.ActivityManager;
|
import android.app.ActivityManager;
|
||||||
import android.app.AppGlobals;
|
import android.app.AppGlobals;
|
||||||
|
import android.app.Flags;
|
||||||
import android.app.NotificationManager;
|
import android.app.NotificationManager;
|
||||||
import android.app.settings.SettingsEnums;
|
import android.app.settings.SettingsEnums;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
@@ -28,7 +29,10 @@ import android.util.ArraySet;
|
|||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
import androidx.annotation.VisibleForTesting;
|
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.core.BasePreferenceController;
|
||||||
import com.android.settings.overlay.FeatureFactory;
|
import com.android.settings.overlay.FeatureFactory;
|
||||||
|
|
||||||
@@ -48,6 +52,16 @@ public class ZenAccessController extends BasePreferenceController {
|
|||||||
return AVAILABLE;
|
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() {
|
public static Set<String> getPackagesRequestingNotificationPolicyAccess() {
|
||||||
final String[] PERM = {
|
final String[] PERM = {
|
||||||
android.Manifest.permission.ACCESS_NOTIFICATION_POLICY
|
android.Manifest.permission.ACCESS_NOTIFICATION_POLICY
|
||||||
|
@@ -16,6 +16,7 @@
|
|||||||
|
|
||||||
package com.android.settings.applications.specialaccess.zenaccess;
|
package com.android.settings.applications.specialaccess.zenaccess;
|
||||||
|
|
||||||
|
import android.app.Flags;
|
||||||
import android.app.settings.SettingsEnums;
|
import android.app.settings.SettingsEnums;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
@@ -43,6 +44,9 @@ public class ZenAccessDetails extends AppInfoWithHeader implements
|
|||||||
public void onCreate(Bundle savedInstanceState) {
|
public void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
addPreferencesFromResource(R.xml.zen_access_permission_details);
|
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(
|
getSettingsLifecycle().addObserver(
|
||||||
new ZenAccessSettingObserverMixin(getContext(), this /* listener */));
|
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));
|
preference.setSummary(getString(R.string.zen_access_disabled_package_warning));
|
||||||
return;
|
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.setChecked(ZenAccessController.hasAccess(context, mPackageName));
|
||||||
preference.setOnPreferenceChangeListener((p, newValue) -> {
|
preference.setOnPreferenceChangeListener((p, newValue) -> {
|
||||||
final boolean access = (Boolean) newValue;
|
final boolean access = (Boolean) newValue;
|
||||||
|
@@ -16,6 +16,7 @@
|
|||||||
|
|
||||||
package com.android.settings.notification.zen;
|
package com.android.settings.notification.zen;
|
||||||
|
|
||||||
|
import android.app.Flags;
|
||||||
import android.app.NotificationManager;
|
import android.app.NotificationManager;
|
||||||
import android.app.settings.SettingsEnums;
|
import android.app.settings.SettingsEnums;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
@@ -68,6 +69,9 @@ public class ZenAccessSettings extends EmptyTextSettings implements
|
|||||||
mContext = getActivity();
|
mContext = getActivity();
|
||||||
mPkgMan = mContext.getPackageManager();
|
mPkgMan = mContext.getPackageManager();
|
||||||
mNoMan = mContext.getSystemService(NotificationManager.class);
|
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(
|
getSettingsLifecycle().addObserver(
|
||||||
new ZenAccessSettingObserverMixin(getContext(), this /* listener */));
|
new ZenAccessSettingObserverMixin(getContext(), this /* listener */));
|
||||||
}
|
}
|
||||||
@@ -75,7 +79,9 @@ public class ZenAccessSettings extends EmptyTextSettings implements
|
|||||||
@Override
|
@Override
|
||||||
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
|
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
|
||||||
super.onViewCreated(view, 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
|
@Override
|
||||||
@@ -139,7 +145,9 @@ public class ZenAccessSettings extends EmptyTextSettings implements
|
|||||||
pref.setOnPreferenceClickListener(preference -> {
|
pref.setOnPreferenceClickListener(preference -> {
|
||||||
AppInfoBase.startAppInfoFragment(
|
AppInfoBase.startAppInfoFragment(
|
||||||
ZenAccessDetails.class /* fragment */,
|
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,
|
pkg,
|
||||||
app.uid,
|
app.uid,
|
||||||
this /* source */,
|
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
|
* @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) {
|
private int getPreferenceSummary(String packageName) {
|
||||||
final boolean enabled = ZenAccessController.hasAccess(getContext(), packageName);
|
final boolean enabled = ZenAccessController.hasAccess(getContext(), packageName);
|
||||||
|
Reference in New Issue
Block a user