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

Commit 011d50dd 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: I638ce6506c8795a6025189b6c5389dd44a4c8bc9
parents 7e28d02d 1da11b55
Loading
Loading
Loading
Loading
+17 −4
Original line number Original line Diff line number Diff line
@@ -148,8 +148,22 @@ public class StackScrollAlgorithm {
            AmbientState ambientState) {
            AmbientState ambientState) {


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

        shelf.updateState(algorithmState, ambientState);
        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 {
        } else {
            if (view != ambientState.getTrackedHeadsUpRow()) {
            if (view != ambientState.getTrackedHeadsUpRow()) {
                if (ambientState.isExpansionChanging()) {
                if (ambientState.isExpansionChanging()) {
                    // Show all views. Views below the shelf will later be clipped (essentially
                    // We later update shelf state, then hide views below the shelf.
                    // hidden) in NotificationShelf.
                    viewState.hidden = false;
                    viewState.hidden = false;
                    viewState.inShelf = algorithmState.firstViewInShelf != null
                    viewState.inShelf = algorithmState.firstViewInShelf != null
                            && i >= algorithmState.visibleChildren.indexOf(
                            && i >= algorithmState.visibleChildren.indexOf(