From 23c8f48f4334b0ac0752b320dad2c1fc5ef095f3 Mon Sep 17 00:00:00 2001 From: Winson Date: Mon, 31 Aug 2015 15:02:26 -0700 Subject: Fixing NPE in recycler view scroll bar. - The regression was introduced in scroll bar changes ag/751628, but unlike AllApps, the WidgetsRecyclerView can have an unbound model. Bug: 23689784 Change-Id: Ibd3d5bcbafab0ada9a372fa00acaa45809ce720d --- .../launcher3/widget/WidgetsRecyclerView.java | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/src/com/android/launcher3/widget/WidgetsRecyclerView.java b/src/com/android/launcher3/widget/WidgetsRecyclerView.java index 3dcb33268..884bdc418 100644 --- a/src/com/android/launcher3/widget/WidgetsRecyclerView.java +++ b/src/com/android/launcher3/widget/WidgetsRecyclerView.java @@ -88,6 +88,12 @@ public class WidgetsRecyclerView extends BaseRecyclerView { */ @Override public String scrollToPositionAtProgress(float touchFraction) { + // Skip early if widgets are not bound. + if (mWidgets == null) { + return ""; + } + + // Skip early if there are no widgets. int rowCount = mWidgets.getPackageSize(); if (rowCount == 0) { return ""; @@ -112,9 +118,13 @@ public class WidgetsRecyclerView extends BaseRecyclerView { */ @Override public void onUpdateScrollbar(int dy) { - int rowCount = mWidgets.getPackageSize(); + // Skip early if widgets are not bound. + if (mWidgets == null) { + return; + } - // Skip early if, there are no items. + // Skip early if there are no widgets. + int rowCount = mWidgets.getPackageSize(); if (rowCount == 0) { mScrollbar.setThumbOffset(-1, -1); return; @@ -138,9 +148,13 @@ public class WidgetsRecyclerView extends BaseRecyclerView { stateOut.rowTopOffset = -1; stateOut.rowHeight = -1; - int rowCount = mWidgets.getPackageSize(); + // Skip early if widgets are not bound. + if (mWidgets == null) { + return; + } // Return early if there are no items + int rowCount = mWidgets.getPackageSize(); if (rowCount == 0) { return; } -- cgit v1.2.3