Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit eccce0f8 authored by Lyn Han's avatar Lyn Han Committed by Automerger Merge Worker
Browse files

Merge "Set views below shelf explicitly invisible to skip hardware rendering"...

Merge "Set views below shelf explicitly invisible to skip hardware rendering" into sc-dev am: 1da11b55

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15261872

Change-Id: Ia1299d9b26931e403df6ea59b0d21b82ce575eed
parents 17999f4e 1da11b55
Loading
Loading
Loading
Loading
+17 −4
Original line number Diff line number Diff line
@@ -148,8 +148,22 @@ public class StackScrollAlgorithm {
            AmbientState ambientState) {

        NotificationShelf shelf = ambientState.getShelf();
        if (shelf != null) {
        if (shelf == null) {
            return;
        }

        shelf.updateState(algorithmState, ambientState);

        // After the shelf has updated its yTranslation,
        // explicitly hide views below the shelf to skip rendering them in the hardware layer.
        final float shelfTop = shelf.getViewState().yTranslation;

        for (ExpandableView view : algorithmState.visibleChildren) {
            final float viewTop = view.getViewState().yTranslation;

            if (viewTop >= shelfTop) {
                view.getViewState().hidden = true;
            }
        }
    }

@@ -411,8 +425,7 @@ public class StackScrollAlgorithm {
        } else {
            if (view != ambientState.getTrackedHeadsUpRow()) {
                if (ambientState.isExpansionChanging()) {
                    // Show all views. Views below the shelf will later be clipped (essentially
                    // hidden) in NotificationShelf.
                    // We later update shelf state, then hide views below the shelf.
                    viewState.hidden = false;
                    viewState.inShelf = algorithmState.firstViewInShelf != null
                            && i >= algorithmState.visibleChildren.indexOf(