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

Commit e859a824 authored by Lyn Han's avatar Lyn Han
Browse files

Add null checks for notification shelf

Fixes: 185751571
Test: manual
Change-Id: I30ab2b75ba7b87036325fe2a4685f041e8aa01bf
parent bb98628e
Loading
Loading
Loading
Loading
+18 −12
Original line number Diff line number Diff line
@@ -272,6 +272,7 @@ public class StackScrollAlgorithm {
                currentY += mGapHeight;
            }

            if (ambientState.getShelf() != null) {
                // Save index of first view in the shelf
                final float shelfStart = ambientState.getStackEndHeight()
                        - ambientState.getShelf().getIntrinsicHeight();
@@ -280,6 +281,7 @@ public class StackScrollAlgorithm {
                        && state.firstViewInShelf == null) {
                    state.firstViewInShelf = view;
                }
            }

            // Record y position when fully expanded
            ExpansionData expansionData = new ExpansionData();
@@ -298,11 +300,15 @@ public class StackScrollAlgorithm {
                float sectionEnd = state.expansionData.get(sectionEndView).fullyExpandedY
                        + sectionEndView.getIntrinsicHeight();

                if (ambientState.getShelf() != null) {
                    // If we show the shelf, trim section end to shelf start
                    // This means section end > start for views in the shelf
                    final float shelfStart = ambientState.getStackEndHeight()
                            - ambientState.getShelf().getIntrinsicHeight();
                    if (state.firstViewInShelf != null && sectionEnd > shelfStart) {
                        sectionEnd = shelfStart;
                    }
                }

                // Update section bounds of every view in the previous section
                // Consider using shared SectionInfo for views in same section to avoid looping back
@@ -460,7 +466,7 @@ public class StackScrollAlgorithm {
                        && i >= algorithmState.visibleChildren.indexOf(
                                algorithmState.firstViewInShelf)
                        && !(view instanceof FooterView);
            } else {
            } else if (ambientState.getShelf() != null) {
                // When pulsing (incoming notification on AOD), innerHeight is 0; clamp all
                // to shelf start, thereby hiding all notifications (except the first one, which we
                // later unhide in updatePulsingState)