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

Commit 6ea27879 authored by Lucas Dupin's avatar Lucas Dupin
Browse files

Fix header not set on initialization

Header not being set was causing min priority
groups to skip expansion animation.

Bug: 38436027
Test: runtest -x frameworks/base/packages/SystemUI/tests/src/com/android/systemui/statusbar/stack/NotificationChildrenContainerTest.java
Change-Id: I34307a7e5ecfe7e30d5bf97880b17fedb0d84378
parent ea6c7db2
Loading
Loading
Loading
Loading
+13 −3
Original line number Diff line number Diff line
@@ -300,7 +300,7 @@ public class NotificationChildrenContainer extends ViewGroup {
        mNotificationHeaderWrapper.notifyContentUpdated(mContainingNotification);
        recreateLowPriorityHeader(builder);
        recreateAmbientHeader(builder);
        resetHeaderVisibilityIfNeeded(mNotificationHeader, calculateDesiredHeader());
        updateHeaderVisibility(false /* animate */);
        updateChildrenHeaderAppearance();
    }

@@ -833,6 +833,11 @@ public class NotificationChildrenContainer extends ViewGroup {
        return mNotificationHeaderLowPriority;
    }

    @VisibleForTesting
    public ViewGroup getCurrentHeaderView() {
        return mCurrentHeader;
    }

    public void notifyShowAmbientChanged() {
        updateHeaderVisibility(false);
    }
@@ -869,7 +874,12 @@ public class NotificationChildrenContainer extends ViewGroup {
                desiredHeader.setVisibility(VISIBLE);
            }
            if (currentHeader != null) {
                getWrapperForView(currentHeader).setVisible(false);
                // Wrapper can be null if we were a low priority notification
                // and just destroyed it by calling setIsLowPriority(false)
                NotificationViewWrapper wrapper = getWrapperForView(currentHeader);
                if (wrapper != null) {
                    wrapper.setVisible(false);
                }
                currentHeader.setVisibility(INVISIBLE);
            }
        }
@@ -878,7 +888,7 @@ public class NotificationChildrenContainer extends ViewGroup {
        resetHeaderVisibilityIfNeeded(mNotificationHeaderAmbient, desiredHeader);
        resetHeaderVisibilityIfNeeded(mNotificationHeaderLowPriority, desiredHeader);

        mCurrentHeader = currentHeader;
        mCurrentHeader = desiredHeader;
    }

    private void resetHeaderVisibilityIfNeeded(View header, View desiredHeader) {
+8 −0
Original line number Diff line number Diff line
@@ -60,4 +60,12 @@ public class NotificationChildrenContainerTest extends SysuiTestCase {
        Assert.assertTrue(lowPriorityHeaderView.getParent() == null);
        Assert.assertTrue(childrenContainer.getLowPriorityHeaderView() == null);
    }

    @Test
    public void testRecreateNotificationHeader_hasHeader() {
        NotificationChildrenContainer childrenContainer = mGroup.getChildrenContainer();
        childrenContainer.recreateNotificationHeader(null);
        Assert.assertNotNull("Children container must have a header after recreation",
                childrenContainer.getCurrentHeaderView());
    }
}