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
(cherry picked from commit dddef39dffc535d0dedc7e19ad6cd3e9f8982db2)
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 */);
     }