From 9073ef0a5eacdf820c45b9267396a5cd8c4b1e13 Mon Sep 17 00:00:00 2001 From: Fabian Kozynski Date: Mon, 16 Mar 2020 11:50:12 -0400 Subject: [PATCH] Prevent NPE in PagedTileLayout This CL prevents fake drag by checking ViewPager#isFakeDragging, which is enabled by ViewPager#beginFakeDrag. This is not a fix of the underlying issue (which is not known) but a patch to prevent crashing. Fixes: 149979063 Test: adb shell monkey --throttle 1000 --pct-nav 0 --pct-majornav 0 \ --pct-touch 30 --ignore-crashes --ignore-timeouts \ --ignore-security-exceptions -v 2000000 Change-Id: I7da764eaf20fc9d971afe2cb89b232b4efd65a3b --- .../SystemUI/src/com/android/systemui/qs/PagedTileLayout.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages/SystemUI/src/com/android/systemui/qs/PagedTileLayout.java b/packages/SystemUI/src/com/android/systemui/qs/PagedTileLayout.java index 0403a0505b003..cd737217b84a1 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/PagedTileLayout.java +++ b/packages/SystemUI/src/com/android/systemui/qs/PagedTileLayout.java @@ -142,6 +142,9 @@ public class PagedTileLayout extends ViewPager implements QSTileLayout { @Override public void computeScroll() { if (!mScroller.isFinished() && mScroller.computeScrollOffset()) { + if (!isFakeDragging()) { + beginFakeDrag(); + } fakeDragBy(getScrollX() - mScroller.getCurrX()); // Keep on drawing until the animation has finished. postInvalidateOnAnimation();