Flag-guards changes to status bar and lockscreen.
This change restores low-priority notifications to the status bar and
lockscreen and adds a flag to remove them once the rest of the UI changes
are complete.
Fixes: 118754096
Fixes: 118805186
Test: manually
Change-Id: I300d04e94fa4fbe5c00b91d78f99a45960886870
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationLockscreenUserManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationLockscreenUserManager.java
index bc662e3..8994568 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationLockscreenUserManager.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationLockscreenUserManager.java
@@ -15,6 +15,7 @@
package com.android.systemui.statusbar;
import android.content.pm.UserInfo;
+import android.os.SystemProperties;
import android.service.notification.StatusBarNotification;
import android.util.SparseArray;
@@ -25,6 +26,8 @@
String NOTIFICATION_UNLOCKED_BY_WORK_CHALLENGE_ACTION
= "com.android.systemui.statusbar.work_challenge_unlocked_notification_action";
+ boolean AUTO_DEMOTE_NOTIFICATIONS = SystemProperties.getBoolean("debug.demote_notifs", false);
+
boolean shouldAllowLockscreenRemoteInput();
/**
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationLockscreenUserManagerImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationLockscreenUserManagerImpl.java
index 427d169..0108469 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationLockscreenUserManagerImpl.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationLockscreenUserManagerImpl.java
@@ -292,9 +292,16 @@
Log.wtf(TAG, "mEntryManager was null!", new Throwable());
return false;
}
- return mShowLockscreenNotifications
- && getEntryManager().getNotificationData().getImportance(sbn.getKey())
- >= IMPORTANCE_DEFAULT;
+ boolean exceedsPriorityThreshold;
+ if (AUTO_DEMOTE_NOTIFICATIONS) {
+ exceedsPriorityThreshold =
+ getEntryManager().getNotificationData().getImportance(sbn.getKey())
+ >= IMPORTANCE_DEFAULT;
+ } else {
+ exceedsPriorityThreshold =
+ !getEntryManager().getNotificationData().isAmbient(sbn.getKey());
+ }
+ return mShowLockscreenNotifications && exceedsPriorityThreshold;
}
private void setShowLockscreenNotifications(boolean show) {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationIconAreaController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationIconAreaController.java
index c6097d9..e41e3e4 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationIconAreaController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationIconAreaController.java
@@ -20,6 +20,7 @@
import com.android.internal.widget.ViewClippingUtil;
import com.android.systemui.Dependency;
import com.android.systemui.R;
+import com.android.systemui.statusbar.NotificationLockscreenUserManager;
import com.android.systemui.statusbar.NotificationShelf;
import com.android.systemui.statusbar.StatusBarIconView;
import com.android.systemui.statusbar.notification.NotificationData;
@@ -48,7 +49,8 @@
@Override
public void onTuningChanged(String key, String newValue) {
if (key.equals(LOW_PRIORITY)) {
- mShowLowPriority = "1".equals(newValue);
+ mShowLowPriority = "1".equals(newValue)
+ || !NotificationLockscreenUserManager.AUTO_DEMOTE_NOTIFICATIONS;
if (mNotificationScrollLayout != null) {
updateStatusBarIcons();
}
@@ -234,7 +236,8 @@
public void updateStatusBarIcons() {
updateIconsForLayout(entry -> entry.icon, mNotificationIcons,
- false /* showAmbient */, false /* showLowPriority */, true /* hideDismissed */,
+ false /* showAmbient */, mShowLowPriority /* showLowPriority */,
+ true /* hideDismissed */,
true /* hideRepliedMessages */);
}