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
This commit is contained in:
Fabian Kozynski
2022-03-09 15:14:13 -05:00
parent 81aa343c4c
commit f95803f19d

View File

@@ -241,7 +241,13 @@ public class QSAnimator implements Callback, PageListener, Listener, OnLayoutCha
private void addNonFirstPageAnimators(int page) {
Pair<HeightExpansionAnimator, TouchAnimator> pair = createSecondaryPageAnimators(page);
mNonFirstPageQSAnimators.put(page, pair);
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
@@ -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;