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

Commit 6a1129a4 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 am: 629c6aa1

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

Change-Id: I806e9da595338a4508d2b9935a61f694c4249978
parents 18d06cd9 629c6aa1
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(