Merge "Notification footer shows when there are zero notifications" into sc-dev

This commit is contained in:
Jay Aliomer
2021-07-06 18:32:31 +00:00
committed by Android (Google) Code Review
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()) {