Fix notification padding and slice collision

Slices should completely replace notifications,
they should never be visible at the same time.

Test: send notification, look at AOD
Change-Id: I14f04db1e4541a24f7b9117659e4c9481262aeff
Fixes: 73908553
diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardSliceView.java b/packages/SystemUI/src/com/android/keyguard/KeyguardSliceView.java
index 2adb286..b657ba7 100644
--- a/packages/SystemUI/src/com/android/keyguard/KeyguardSliceView.java
+++ b/packages/SystemUI/src/com/android/keyguard/KeyguardSliceView.java
@@ -72,6 +72,7 @@
     private int mIconSize;
     private Consumer<Boolean> mListener;
     private boolean mHasHeader;
+    private boolean mHideContent;
 
     public KeyguardSliceView(Context context) {
         this(context, null, 0);
@@ -192,12 +193,16 @@
             }
         }
 
-        final int visibility = mHasHeader || subItemsCount > 0 ? VISIBLE : GONE;
+        updateVisibility();
+        mListener.accept(mHasHeader);
+    }
+
+    private void updateVisibility() {
+        final boolean hasContent = mHasHeader || mRow.getChildCount() > 0;
+        final int visibility = hasContent && !mHideContent ? VISIBLE : GONE;
         if (visibility != getVisibility()) {
             setVisibility(visibility);
         }
-
-        mListener.accept(mHasHeader);
     }
 
     /**
@@ -321,6 +326,11 @@
         updateTextColors();
     }
 
+    public void setHideContent(boolean hideContent) {
+        mHideContent = hideContent;
+        updateVisibility();
+    }
+
     /**
      * Representation of an item that appears under the clock on main keyguard message.
      */
diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardStatusView.java b/packages/SystemUI/src/com/android/keyguard/KeyguardStatusView.java
index 3b5f34c..a3ffa40 100644
--- a/packages/SystemUI/src/com/android/keyguard/KeyguardStatusView.java
+++ b/packages/SystemUI/src/com/android/keyguard/KeyguardStatusView.java
@@ -362,7 +362,7 @@
 
     public void setPulsing(boolean pulsing) {
         mPulsing = pulsing;
-        mKeyguardSlice.setVisibility(pulsing ? INVISIBLE : VISIBLE);
+        mKeyguardSlice.setHideContent(pulsing);
         onSliceContentChanged(mKeyguardSlice.hasHeader());
         updateDozeVisibleViews();
     }