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

Commit f95803f1 authored by Fabian Kozynski's avatar Fabian Kozynski
Browse files

Log NPE in QSAnimator

Not sure how this could happen but we may be trying to create an
animator for an empty page, resulting in a null animator. In that case,
instead Log the failure so we can track it better.

Test: build
Bug: 223632036
Change-Id: Ic8ba88ea8c392c7c9d1fccfd8c5be623db303c61
parent 81aa343c
Loading
Loading
Loading
Loading
+14 −1
Original line number Diff line number Diff line
@@ -241,8 +241,14 @@ public class QSAnimator implements Callback, PageListener, Listener, OnLayoutCha

    private void addNonFirstPageAnimators(int page) {
        Pair<HeightExpansionAnimator, TouchAnimator> pair = createSecondaryPageAnimators(page);
        if (pair != null) {
            // pair is null in one of two cases:
            // * mPagedTileLayout is null, meaning we are still setting up.
            // * the page has no tiles
            // In either case, don't add the animators to the map.
            mNonFirstPageQSAnimators.put(page, pair);
        }
    }

    @Override
    public void onPageChanged(boolean isFirst, int currentPage) {
@@ -518,6 +524,13 @@ public class QSAnimator implements Callback, PageListener, Listener, OnLayoutCha
        SideLabelTileLayout qqsLayout = (SideLabelTileLayout) mQuickQsPanel.getTileLayout();
        View view = mQs.getView();
        List<String> specs = mPagedLayout.getSpecsForPage(page);
        if (specs.isEmpty()) {
            // specs should not be empty in a valid secondary page, as we scrolled to it.
            // We may crash later on because there's a null animator.
            specs = mQsPanelController.getHost().mTileSpecs;
            Log.e(TAG, "Trying to create animators for empty page " + page + ". Tiles: " + specs);
            // return null;
        }

        int row = -1;
        int lastTileTop = -1;