Move ServiceListing to SettingsLib
Also tidy things up a bit Bug: 70902607 Test: RunSettingsRoboTests Change-Id: Id641beb601513bb4e34a098bf2729eb98954175d
This commit is contained in:
@@ -19,8 +19,9 @@ package com.android.settings.notification;
|
||||
import android.app.AlertDialog;
|
||||
import android.app.Dialog;
|
||||
import android.app.Fragment;
|
||||
import android.app.NotificationManager;
|
||||
import android.content.ComponentName;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.Context;
|
||||
import android.os.AsyncTask;
|
||||
import android.os.Bundle;
|
||||
import android.provider.Settings;
|
||||
@@ -33,28 +34,35 @@ import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
|
||||
import com.android.settings.overlay.FeatureFactory;
|
||||
import com.android.settings.utils.ManagedServiceSettings;
|
||||
|
||||
/**
|
||||
* Settings screen for managing notification listener permissions
|
||||
*/
|
||||
public class NotificationAccessSettings extends ManagedServiceSettings {
|
||||
private static final String TAG = NotificationAccessSettings.class.getSimpleName();
|
||||
private static final Config CONFIG = getNotificationListenerConfig();
|
||||
private static final Config CONFIG = new Config.Builder()
|
||||
.setTag(TAG)
|
||||
.setSetting(Settings.Secure.ENABLED_NOTIFICATION_LISTENERS)
|
||||
.setIntentAction(NotificationListenerService.SERVICE_INTERFACE)
|
||||
.setPermission(android.Manifest.permission.BIND_NOTIFICATION_LISTENER_SERVICE)
|
||||
.setNoun("notification listener")
|
||||
.setWarningDialogTitle(R.string.notification_listener_security_warning_title)
|
||||
.setWarningDialogSummary(R.string.notification_listener_security_warning_summary)
|
||||
.setEmptyText(R.string.no_notification_listeners)
|
||||
.build();
|
||||
|
||||
private static Config getNotificationListenerConfig() {
|
||||
final Config c = new Config();
|
||||
c.tag = TAG;
|
||||
c.setting = Settings.Secure.ENABLED_NOTIFICATION_LISTENERS;
|
||||
c.intentAction = NotificationListenerService.SERVICE_INTERFACE;
|
||||
c.permission = android.Manifest.permission.BIND_NOTIFICATION_LISTENER_SERVICE;
|
||||
c.noun = "notification listener";
|
||||
c.warningDialogTitle = R.string.notification_listener_security_warning_title;
|
||||
c.warningDialogSummary = R.string.notification_listener_security_warning_summary;
|
||||
c.emptyText = R.string.no_notification_listeners;
|
||||
return c;
|
||||
}
|
||||
private NotificationManager mNm;
|
||||
|
||||
@Override
|
||||
public int getMetricsCategory() {
|
||||
return MetricsEvent.NOTIFICATION_ACCESS;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAttach(Context context) {
|
||||
super.onAttach(context);
|
||||
mNm = context.getSystemService(NotificationManager.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Config getConfig() {
|
||||
return CONFIG;
|
||||
@@ -109,13 +117,10 @@ public class NotificationAccessSettings extends ManagedServiceSettings {
|
||||
|
||||
private static void disable(final NotificationAccessSettings parent, final ComponentName cn) {
|
||||
parent.mNm.setNotificationListenerAccessGranted(cn, false);
|
||||
AsyncTask.execute(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
if (!parent.mNm.isNotificationPolicyAccessGrantedForPackage(
|
||||
cn.getPackageName())) {
|
||||
parent.mNm.removeAutomaticZenRules(cn.getPackageName());
|
||||
}
|
||||
AsyncTask.execute(() -> {
|
||||
if (!parent.mNm.isNotificationPolicyAccessGrantedForPackage(
|
||||
cn.getPackageName())) {
|
||||
parent.mNm.removeAutomaticZenRules(cn.getPackageName());
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -153,16 +158,10 @@ public class NotificationAccessSettings extends ManagedServiceSettings {
|
||||
.setMessage(summary)
|
||||
.setCancelable(true)
|
||||
.setPositiveButton(R.string.notification_listener_disable_warning_confirm,
|
||||
new DialogInterface.OnClickListener() {
|
||||
public void onClick(DialogInterface dialog, int id) {
|
||||
disable(parent, cn);
|
||||
}
|
||||
})
|
||||
(dialog, id) -> disable(parent, cn))
|
||||
.setNegativeButton(R.string.notification_listener_disable_warning_cancel,
|
||||
new DialogInterface.OnClickListener() {
|
||||
public void onClick(DialogInterface dialog, int id) {
|
||||
// pass
|
||||
}
|
||||
(dialog, id) -> {
|
||||
// pass
|
||||
})
|
||||
.create();
|
||||
}
|
||||
|
Reference in New Issue
Block a user