From 1f8634ec20e7b2ab500c775f51a8582d7884524a Mon Sep 17 00:00:00 2001 From: Chloris Kuo Date: Fri, 11 Dec 2020 00:32:58 -0800 Subject: [PATCH] New DeviceConfig flags for NAS Add ENABLE_NAS_RANKING, ENABLE_NAS_PRIORITIZER, ENABLE_NAS_FEEDBACK Test: atest NotificationManagerServiceTest; manual test on device Bug: 175363481 Change-Id: I63ee375c14435e50ecaf755da6b7068af9afe57f --- .../sysui/SystemUiDeviceConfigFlags.java | 15 +++++++++++++ .../NotificationManagerService.java | 22 +++++++++++++++---- 2 files changed, 33 insertions(+), 4 deletions(-) diff --git a/core/java/com/android/internal/config/sysui/SystemUiDeviceConfigFlags.java b/core/java/com/android/internal/config/sysui/SystemUiDeviceConfigFlags.java index 777534e72d736..13358daf05a15 100644 --- a/core/java/com/android/internal/config/sysui/SystemUiDeviceConfigFlags.java +++ b/core/java/com/android/internal/config/sysui/SystemUiDeviceConfigFlags.java @@ -47,6 +47,21 @@ public final class SystemUiDeviceConfigFlags { */ public static final String NAS_MAX_SUGGESTIONS = "nas_max_suggestions"; + /** + * Whether the Notification Assistant can change ranking. + */ + public static final String ENABLE_NAS_RANKING = "enable_nas_ranking"; + + /** + * Whether the Notification Assistant can prioritize notification. + */ + public static final String ENABLE_NAS_PRIORITIZER = "enable_nas_prioritizer"; + + /** + * Whether to enable feedback UI for Notification Assistant + */ + public static final String ENABLE_NAS_FEEDBACK = "enable_nas_feedback"; + // Flags related to screenshot intelligence /** diff --git a/services/core/java/com/android/server/notification/NotificationManagerService.java b/services/core/java/com/android/server/notification/NotificationManagerService.java index 525fca073edef..c9ed5183bdb78 100755 --- a/services/core/java/com/android/server/notification/NotificationManagerService.java +++ b/services/core/java/com/android/server/notification/NotificationManagerService.java @@ -2274,10 +2274,24 @@ public class NotificationManagerService extends SystemService { if (!DeviceConfig.NAMESPACE_SYSTEMUI.equals(properties.getNamespace())) { return; } - if (properties.getKeyset() - .contains(SystemUiDeviceConfigFlags.NAS_DEFAULT_SERVICE)) { - mAssistants.allowAdjustmentType(Adjustment.KEY_IMPORTANCE); - mAssistants.resetDefaultAssistantsIfNecessary(); + for (String name : properties.getKeyset()) { + if (SystemUiDeviceConfigFlags.NAS_DEFAULT_SERVICE.equals(name)) { + mAssistants.resetDefaultAssistantsIfNecessary(); + } else if (SystemUiDeviceConfigFlags.ENABLE_NAS_PRIORITIZER.equals(name)) { + String value = properties.getString(name, null); + if ("true".equals(value)) { + mAssistants.allowAdjustmentType(Adjustment.KEY_IMPORTANCE); + } else if ("false".equals(value)) { + mAssistants.disallowAdjustmentType(Adjustment.KEY_IMPORTANCE); + } + } else if (SystemUiDeviceConfigFlags.ENABLE_NAS_RANKING.equals(name)) { + String value = properties.getString(name, null); + if ("true".equals(value)) { + mAssistants.allowAdjustmentType(Adjustment.KEY_RANKING_SCORE); + } else if ("false".equals(value)) { + mAssistants.disallowAdjustmentType(Adjustment.KEY_RANKING_SCORE); + } + } } }; DeviceConfig.addOnPropertiesChangedListener(