From: Winson Date: Mon, 31 Aug 2015 22:02:26 +0000 (-0700) Subject: Fixing NPE in recycler view scroll bar. X-Git-Tag: android-x86-7.1-r1~166^2~200^2 X-Git-Url: http://git.osdn.net/view?p=android-x86%2Fpackages-apps-Launcher3.git;a=commitdiff_plain;h=23c8f48f4334b0ac0752b320dad2c1fc5ef095f3 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 --- 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; }