Notification footer shows when there are zero notifications

Fixes: 191960604
Test: visual
Change-Id: Ib4b41890b6a0eb7e9b445b64c30b500eebc1a52f
This commit is contained in:
Jay Aliomer
2021-06-24 12:16:15 -04:00
parent 920e1fd7a6
commit 3b6a3ecb25
2 changed files with 18 additions and 6 deletions

View File

@@ -25,6 +25,7 @@ import android.view.View;
import com.android.systemui.R;
import com.android.systemui.statusbar.notification.stack.ExpandableViewState;
import com.android.systemui.statusbar.notification.stack.ViewState;
public class FooterView extends StackScrollerDecorView {
private final int mClearAllTopPadding;
@@ -121,6 +122,14 @@ public class FooterView extends StackScrollerDecorView {
*/
public boolean hideContent;
@Override
public void copyFrom(ViewState viewState) {
super.copyFrom(viewState);
if (viewState instanceof FooterViewState) {
hideContent = ((FooterViewState) viewState).hideContent;
}
}
@Override
public void applyToView(View view) {
super.applyToView(view);

View File

@@ -399,12 +399,15 @@ public class StackScrollAlgorithm {
if (view instanceof FooterView) {
final boolean shadeClosed = !ambientState.isShadeExpanded();
final boolean isShelfShowing = algorithmState.firstViewInShelf != null;
final float footerEnd = algorithmState.mCurrentExpandedYPosition
+ view.getIntrinsicHeight();
final boolean noSpaceForFooter = footerEnd > ambientState.getStackEndHeight();
((FooterView.FooterViewState) viewState).hideContent =
shadeClosed || isShelfShowing || noSpaceForFooter;
if (shadeClosed) {
viewState.hidden = true;
} else {
final float footerEnd = algorithmState.mCurrentExpandedYPosition
+ view.getIntrinsicHeight();
final boolean noSpaceForFooter = footerEnd > ambientState.getStackEndHeight();
((FooterView.FooterViewState) viewState).hideContent =
isShelfShowing || noSpaceForFooter;
}
} else {
if (view != ambientState.getTrackedHeadsUpRow()) {
if (ambientState.isExpansionChanging()) {