diff options
Diffstat (limited to 'src/com/android/launcher3')
-rw-r--r-- | src/com/android/launcher3/AppsContainerRecyclerView.java | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/com/android/launcher3/AppsContainerRecyclerView.java b/src/com/android/launcher3/AppsContainerRecyclerView.java index 95da48fcd..e7b3d282b 100644 --- a/src/com/android/launcher3/AppsContainerRecyclerView.java +++ b/src/com/android/launcher3/AppsContainerRecyclerView.java @@ -359,7 +359,7 @@ public class AppsContainerRecyclerView extends BaseContainerRecyclerView { // If there is a prediction bar, then capture the appropriate area for the prediction bar float predictionBarFraction = 0f; - if (mPredictionBarHeight > 0) { + if (!mApps.getPredictedApps().isEmpty()) { predictionBarFraction = (float) mNumPredictedAppsPerRow / mApps.getSize(); if (touchFraction <= predictionBarFraction) { // Scroll to the top of the view, where the prediction bar is @@ -408,12 +408,13 @@ public class AppsContainerRecyclerView extends BaseContainerRecyclerView { // Find the index and height of the first visible row (all rows have the same height) int x; int y; + int predictionBarHeight = mApps.getPredictedApps().isEmpty() ? 0 : mPredictionBarHeight; boolean isRtl = Utilities.isRtl(getResources()); int rowCount = getNumRows(); getCurScrollState(mScrollPosState, items); if (mScrollPosState.rowIndex != -1) { int height = getHeight() - getPaddingTop() - getPaddingBottom(); - int totalScrollHeight = rowCount * mScrollPosState.rowHeight + mPredictionBarHeight; + int totalScrollHeight = rowCount * mScrollPosState.rowHeight + predictionBarHeight; if (totalScrollHeight > height) { int scrollbarHeight = Math.max(mScrollbarMinHeight, (int) (height / ((float) totalScrollHeight / height))); @@ -429,7 +430,7 @@ public class AppsContainerRecyclerView extends BaseContainerRecyclerView { // that the user has already scrolled and then map that to the scroll bar bounds int availableY = totalScrollHeight - height; int availableScrollY = height - scrollbarHeight; - y = (mScrollPosState.rowIndex * mScrollPosState.rowHeight) + mPredictionBarHeight + y = (mScrollPosState.rowIndex * mScrollPosState.rowHeight) + predictionBarHeight - mScrollPosState.rowTopOffset; y = getPaddingTop() + (int) (((float) (getPaddingTop() + y) / availableY) * availableScrollY); @@ -479,8 +480,9 @@ public class AppsContainerRecyclerView extends BaseContainerRecyclerView { List<AlphabeticalAppsList.AdapterItem> items = mApps.getAdapterItems(); getCurScrollState(mScrollPosState, items); if (mScrollPosState.rowIndex != -1) { + int predictionBarHeight = mApps.getPredictedApps().isEmpty() ? 0 : mPredictionBarHeight; int scrollY = getPaddingTop() + (mScrollPosState.rowIndex * mScrollPosState.rowHeight) + - mPredictionBarHeight - mScrollPosState.rowTopOffset; + predictionBarHeight - mScrollPosState.rowTopOffset; updateScrollY(scrollY); } } |