Loading src/com/android/launcher3/BaseRecyclerView.java +6 −26 Original line number Diff line number Diff line Loading @@ -18,7 +18,6 @@ package com.android.launcher3; import android.content.Context; import android.graphics.Canvas; import android.graphics.Rect; import android.support.v7.widget.RecyclerView; import android.util.AttributeSet; import android.view.MotionEvent; Loading Loading @@ -48,7 +47,6 @@ public abstract class BaseRecyclerView extends RecyclerView private int mDownX; private int mDownY; private int mLastY; protected Rect mBackgroundPadding = new Rect(); public BaseRecyclerView(Context context) { this(context, null); Loading Loading @@ -164,21 +162,11 @@ public abstract class BaseRecyclerView extends RecyclerView return false; } public void updateBackgroundPadding(Rect padding) { mBackgroundPadding.set(padding); } public Rect getBackgroundPadding() { return mBackgroundPadding; } /** * Returns the visible height of the recycler view: * VisibleHeight = View height - top padding - bottom padding * Returns the height of the fast scroll bar */ protected int getVisibleHeight() { int visibleHeight = getHeight() - mBackgroundPadding.top - mBackgroundPadding.bottom; return visibleHeight; protected int getScrollbarTrackHeight() { return getHeight(); } /** Loading @@ -192,7 +180,7 @@ public abstract class BaseRecyclerView extends RecyclerView * AvailableScrollBarHeight = Total height of the visible view - thumb height */ protected int getAvailableScrollBarHeight() { int availableScrollBarHeight = getVisibleHeight() - mScrollbar.getThumbHeight(); int availableScrollBarHeight = getScrollbarTrackHeight() - mScrollbar.getThumbHeight(); return availableScrollBarHeight; } Loading @@ -203,13 +191,6 @@ public abstract class BaseRecyclerView extends RecyclerView return defaultTrackColor; } /** * Returns the inactive thumb color, can be overridden by each subclass. */ public int getFastScrollerThumbInactiveColor(int defaultInactiveThumbColor) { return defaultInactiveThumbColor; } /** * Returns the scrollbar for this recycler view. */ Loading @@ -234,7 +215,6 @@ public abstract class BaseRecyclerView extends RecyclerView protected void synchronizeScrollBarThumbOffsetToViewScroll(int scrollY, int availableScrollHeight) { // Only show the scrollbar if there is height to be scrolled int availableScrollBarHeight = getAvailableScrollBarHeight(); if (availableScrollHeight <= 0) { mScrollbar.setThumbOffsetY(-1); return; Loading @@ -243,8 +223,8 @@ public abstract class BaseRecyclerView extends RecyclerView // Calculate the current scroll position, the scrollY of the recycler view accounts for the // view padding, while the scrollBarY is drawn right up to the background padding (ignoring // padding) int scrollBarY = mBackgroundPadding.top + (int) (((float) scrollY / availableScrollHeight) * availableScrollBarHeight); int scrollBarY = (int) (((float) scrollY / availableScrollHeight) * getAvailableScrollBarHeight()); // Calculate the position and size of the scroll bar mScrollbar.setThumbOffsetY(scrollBarY); Loading src/com/android/launcher3/BaseRecyclerViewFastScrollBar.java +6 −8 Original line number Diff line number Diff line Loading @@ -150,7 +150,7 @@ public class BaseRecyclerViewFastScrollBar { } int left = getDrawLeft(); // Invalidate the whole scroll bar area. mRv.invalidate(left, 0, left + mMaxWidth, mRv.getVisibleHeight()); mRv.invalidate(left, 0, left + mMaxWidth, mRv.getScrollbarTrackHeight()); mWidth = width; updateThumbPath(); Loading Loading @@ -218,11 +218,9 @@ public class BaseRecyclerViewFastScrollBar { } if (mIsDragging) { // Update the fastscroller section name at this touch position int top = mRv.getBackgroundPadding().top; int bottom = top + mRv.getVisibleHeight() - mThumbHeight; float boundedY = (float) Math.max(top, Math.min(bottom, y - mTouchOffsetY)); String sectionName = mRv.scrollToPositionAtProgress((boundedY - top) / (bottom - top)); int bottom = mRv.getScrollbarTrackHeight() - mThumbHeight; float boundedY = (float) Math.max(0, Math.min(bottom, y - mTouchOffsetY)); String sectionName = mRv.scrollToPositionAtProgress(boundedY / bottom); if (!sectionName.equals(mPopupSectionName)) { mPopupSectionName = sectionName; mPopupView.setText(sectionName); Loading Loading @@ -257,7 +255,7 @@ public class BaseRecyclerViewFastScrollBar { } // Draw the track int thumbWidth = mIsRtl ? mWidth : -mWidth; canvas.drawRect(0, 0, thumbWidth, mRv.getVisibleHeight(), mTrackPaint); canvas.drawRect(0, 0, thumbWidth, mRv.getScrollbarTrackHeight(), mTrackPaint); canvas.translate(0, mThumbOffsetY); canvas.drawPath(mThumbPath, mThumbPaint); Loading Loading @@ -299,7 +297,7 @@ public class BaseRecyclerViewFastScrollBar { private void updatePopupY(int lastTouchY) { int height = mPopupView.getHeight(); float top = lastTouchY - (FAST_SCROLL_OVERLAY_Y_OFFSET_FACTOR * height); top = Math.max(mMaxWidth, Math.min(top, mRv.getVisibleHeight() - mMaxWidth - height)); top = Math.max(mMaxWidth, Math.min(top, mRv.getScrollbarTrackHeight() - mMaxWidth - height)); mPopupView.setTranslationY(top); } } src/com/android/launcher3/DeviceProfile.java +0 −1 Original line number Diff line number Diff line Loading @@ -463,7 +463,6 @@ public class DeviceProfile { public void layout(Launcher launcher, boolean notifyListeners) { FrameLayout.LayoutParams lp; boolean hasVerticalBarLayout = isVerticalBarLayout(); final boolean isLayoutRtl = Utilities.isRtl(launcher.getResources()); // Layout the search bar space Point searchBarBounds = getSearchBarDimensForWidgetOpts(); Loading src/com/android/launcher3/allapps/AllAppsRecyclerView.java +5 −22 Original line number Diff line number Diff line Loading @@ -162,27 +162,10 @@ public class AllAppsRecyclerView extends BaseRecyclerView { } } /** * We need to override the draw to ensure that we don't draw the overscroll effect beyond the * background bounds. */ @Override protected void dispatchDraw(Canvas canvas) { // Clip to ensure that we don't draw the overscroll effect beyond the background bounds canvas.clipRect(mBackgroundPadding.left, mBackgroundPadding.top, getWidth() - mBackgroundPadding.right, getHeight() - mBackgroundPadding.bottom); super.dispatchDraw(canvas); } @Override public void onDraw(Canvas c) { // Draw the background if (mEmptySearchBackground != null && mEmptySearchBackground.getAlpha() > 0) { c.clipRect(mBackgroundPadding.left, mBackgroundPadding.top, getWidth() - mBackgroundPadding.right, getHeight() - mBackgroundPadding.bottom); mEmptySearchBackground.draw(c); } Loading Loading @@ -319,8 +302,8 @@ public class AllAppsRecyclerView extends BaseRecyclerView { // Calculate the current scroll position, the scrollY of the recycler view accounts // for the view padding, while the scrollBarY is drawn right up to the background // padding (ignoring padding) int scrollBarY = mBackgroundPadding.top + (int) (((float) scrollY / availableScrollHeight) * availableScrollBarHeight); int scrollBarY = (int) (((float) scrollY / availableScrollHeight) * availableScrollBarHeight); int thumbScrollY = mScrollbar.getThumbOffsetY(); int diffScrollY = scrollBarY - thumbScrollY; Loading Loading @@ -411,8 +394,8 @@ public class AllAppsRecyclerView extends BaseRecyclerView { } @Override protected int getVisibleHeight() { return super.getVisibleHeight() protected int getScrollbarTrackHeight() { return super.getScrollbarTrackHeight() - Launcher.getLauncher(getContext()).getDragLayer().getInsets().bottom; } Loading @@ -424,7 +407,7 @@ public class AllAppsRecyclerView extends BaseRecyclerView { protected int getAvailableScrollHeight() { int paddedHeight = getCurrentScrollY(mApps.getAdapterItems().size(), 0); int totalHeight = paddedHeight + getPaddingBottom(); return totalHeight - getVisibleHeight(); return totalHeight - getScrollbarTrackHeight(); } /** Loading src/com/android/launcher3/widget/WidgetsRecyclerView.java +1 −14 Original line number Diff line number Diff line Loading @@ -17,7 +17,6 @@ package com.android.launcher3.widget; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.support.v7.widget.LinearLayoutManager; import android.util.AttributeSet; Loading Loading @@ -72,18 +71,6 @@ public class WidgetsRecyclerView extends BaseRecyclerView { mWidgets = widgets; } /** * We need to override the draw to ensure that we don't draw the overscroll effect beyond the * background bounds. */ @Override protected void dispatchDraw(Canvas canvas) { canvas.clipRect(mBackgroundPadding.left, mBackgroundPadding.top, getWidth() - mBackgroundPadding.right, getHeight() - mBackgroundPadding.bottom); super.dispatchDraw(canvas); } /** * Maps the touch (from 0..1) to the adapter position that should be visible. */ Loading Loading @@ -152,7 +139,7 @@ public class WidgetsRecyclerView extends BaseRecyclerView { View child = getChildAt(0); int height = child.getMeasuredHeight() * mWidgets.getPackageSize(); int totalHeight = getPaddingTop() + height + getPaddingBottom(); int availableScrollHeight = totalHeight - getVisibleHeight(); int availableScrollHeight = totalHeight - getScrollbarTrackHeight(); return availableScrollHeight; } Loading Loading
src/com/android/launcher3/BaseRecyclerView.java +6 −26 Original line number Diff line number Diff line Loading @@ -18,7 +18,6 @@ package com.android.launcher3; import android.content.Context; import android.graphics.Canvas; import android.graphics.Rect; import android.support.v7.widget.RecyclerView; import android.util.AttributeSet; import android.view.MotionEvent; Loading Loading @@ -48,7 +47,6 @@ public abstract class BaseRecyclerView extends RecyclerView private int mDownX; private int mDownY; private int mLastY; protected Rect mBackgroundPadding = new Rect(); public BaseRecyclerView(Context context) { this(context, null); Loading Loading @@ -164,21 +162,11 @@ public abstract class BaseRecyclerView extends RecyclerView return false; } public void updateBackgroundPadding(Rect padding) { mBackgroundPadding.set(padding); } public Rect getBackgroundPadding() { return mBackgroundPadding; } /** * Returns the visible height of the recycler view: * VisibleHeight = View height - top padding - bottom padding * Returns the height of the fast scroll bar */ protected int getVisibleHeight() { int visibleHeight = getHeight() - mBackgroundPadding.top - mBackgroundPadding.bottom; return visibleHeight; protected int getScrollbarTrackHeight() { return getHeight(); } /** Loading @@ -192,7 +180,7 @@ public abstract class BaseRecyclerView extends RecyclerView * AvailableScrollBarHeight = Total height of the visible view - thumb height */ protected int getAvailableScrollBarHeight() { int availableScrollBarHeight = getVisibleHeight() - mScrollbar.getThumbHeight(); int availableScrollBarHeight = getScrollbarTrackHeight() - mScrollbar.getThumbHeight(); return availableScrollBarHeight; } Loading @@ -203,13 +191,6 @@ public abstract class BaseRecyclerView extends RecyclerView return defaultTrackColor; } /** * Returns the inactive thumb color, can be overridden by each subclass. */ public int getFastScrollerThumbInactiveColor(int defaultInactiveThumbColor) { return defaultInactiveThumbColor; } /** * Returns the scrollbar for this recycler view. */ Loading @@ -234,7 +215,6 @@ public abstract class BaseRecyclerView extends RecyclerView protected void synchronizeScrollBarThumbOffsetToViewScroll(int scrollY, int availableScrollHeight) { // Only show the scrollbar if there is height to be scrolled int availableScrollBarHeight = getAvailableScrollBarHeight(); if (availableScrollHeight <= 0) { mScrollbar.setThumbOffsetY(-1); return; Loading @@ -243,8 +223,8 @@ public abstract class BaseRecyclerView extends RecyclerView // Calculate the current scroll position, the scrollY of the recycler view accounts for the // view padding, while the scrollBarY is drawn right up to the background padding (ignoring // padding) int scrollBarY = mBackgroundPadding.top + (int) (((float) scrollY / availableScrollHeight) * availableScrollBarHeight); int scrollBarY = (int) (((float) scrollY / availableScrollHeight) * getAvailableScrollBarHeight()); // Calculate the position and size of the scroll bar mScrollbar.setThumbOffsetY(scrollBarY); Loading
src/com/android/launcher3/BaseRecyclerViewFastScrollBar.java +6 −8 Original line number Diff line number Diff line Loading @@ -150,7 +150,7 @@ public class BaseRecyclerViewFastScrollBar { } int left = getDrawLeft(); // Invalidate the whole scroll bar area. mRv.invalidate(left, 0, left + mMaxWidth, mRv.getVisibleHeight()); mRv.invalidate(left, 0, left + mMaxWidth, mRv.getScrollbarTrackHeight()); mWidth = width; updateThumbPath(); Loading Loading @@ -218,11 +218,9 @@ public class BaseRecyclerViewFastScrollBar { } if (mIsDragging) { // Update the fastscroller section name at this touch position int top = mRv.getBackgroundPadding().top; int bottom = top + mRv.getVisibleHeight() - mThumbHeight; float boundedY = (float) Math.max(top, Math.min(bottom, y - mTouchOffsetY)); String sectionName = mRv.scrollToPositionAtProgress((boundedY - top) / (bottom - top)); int bottom = mRv.getScrollbarTrackHeight() - mThumbHeight; float boundedY = (float) Math.max(0, Math.min(bottom, y - mTouchOffsetY)); String sectionName = mRv.scrollToPositionAtProgress(boundedY / bottom); if (!sectionName.equals(mPopupSectionName)) { mPopupSectionName = sectionName; mPopupView.setText(sectionName); Loading Loading @@ -257,7 +255,7 @@ public class BaseRecyclerViewFastScrollBar { } // Draw the track int thumbWidth = mIsRtl ? mWidth : -mWidth; canvas.drawRect(0, 0, thumbWidth, mRv.getVisibleHeight(), mTrackPaint); canvas.drawRect(0, 0, thumbWidth, mRv.getScrollbarTrackHeight(), mTrackPaint); canvas.translate(0, mThumbOffsetY); canvas.drawPath(mThumbPath, mThumbPaint); Loading Loading @@ -299,7 +297,7 @@ public class BaseRecyclerViewFastScrollBar { private void updatePopupY(int lastTouchY) { int height = mPopupView.getHeight(); float top = lastTouchY - (FAST_SCROLL_OVERLAY_Y_OFFSET_FACTOR * height); top = Math.max(mMaxWidth, Math.min(top, mRv.getVisibleHeight() - mMaxWidth - height)); top = Math.max(mMaxWidth, Math.min(top, mRv.getScrollbarTrackHeight() - mMaxWidth - height)); mPopupView.setTranslationY(top); } }
src/com/android/launcher3/DeviceProfile.java +0 −1 Original line number Diff line number Diff line Loading @@ -463,7 +463,6 @@ public class DeviceProfile { public void layout(Launcher launcher, boolean notifyListeners) { FrameLayout.LayoutParams lp; boolean hasVerticalBarLayout = isVerticalBarLayout(); final boolean isLayoutRtl = Utilities.isRtl(launcher.getResources()); // Layout the search bar space Point searchBarBounds = getSearchBarDimensForWidgetOpts(); Loading
src/com/android/launcher3/allapps/AllAppsRecyclerView.java +5 −22 Original line number Diff line number Diff line Loading @@ -162,27 +162,10 @@ public class AllAppsRecyclerView extends BaseRecyclerView { } } /** * We need to override the draw to ensure that we don't draw the overscroll effect beyond the * background bounds. */ @Override protected void dispatchDraw(Canvas canvas) { // Clip to ensure that we don't draw the overscroll effect beyond the background bounds canvas.clipRect(mBackgroundPadding.left, mBackgroundPadding.top, getWidth() - mBackgroundPadding.right, getHeight() - mBackgroundPadding.bottom); super.dispatchDraw(canvas); } @Override public void onDraw(Canvas c) { // Draw the background if (mEmptySearchBackground != null && mEmptySearchBackground.getAlpha() > 0) { c.clipRect(mBackgroundPadding.left, mBackgroundPadding.top, getWidth() - mBackgroundPadding.right, getHeight() - mBackgroundPadding.bottom); mEmptySearchBackground.draw(c); } Loading Loading @@ -319,8 +302,8 @@ public class AllAppsRecyclerView extends BaseRecyclerView { // Calculate the current scroll position, the scrollY of the recycler view accounts // for the view padding, while the scrollBarY is drawn right up to the background // padding (ignoring padding) int scrollBarY = mBackgroundPadding.top + (int) (((float) scrollY / availableScrollHeight) * availableScrollBarHeight); int scrollBarY = (int) (((float) scrollY / availableScrollHeight) * availableScrollBarHeight); int thumbScrollY = mScrollbar.getThumbOffsetY(); int diffScrollY = scrollBarY - thumbScrollY; Loading Loading @@ -411,8 +394,8 @@ public class AllAppsRecyclerView extends BaseRecyclerView { } @Override protected int getVisibleHeight() { return super.getVisibleHeight() protected int getScrollbarTrackHeight() { return super.getScrollbarTrackHeight() - Launcher.getLauncher(getContext()).getDragLayer().getInsets().bottom; } Loading @@ -424,7 +407,7 @@ public class AllAppsRecyclerView extends BaseRecyclerView { protected int getAvailableScrollHeight() { int paddedHeight = getCurrentScrollY(mApps.getAdapterItems().size(), 0); int totalHeight = paddedHeight + getPaddingBottom(); return totalHeight - getVisibleHeight(); return totalHeight - getScrollbarTrackHeight(); } /** Loading
src/com/android/launcher3/widget/WidgetsRecyclerView.java +1 −14 Original line number Diff line number Diff line Loading @@ -17,7 +17,6 @@ package com.android.launcher3.widget; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.support.v7.widget.LinearLayoutManager; import android.util.AttributeSet; Loading Loading @@ -72,18 +71,6 @@ public class WidgetsRecyclerView extends BaseRecyclerView { mWidgets = widgets; } /** * We need to override the draw to ensure that we don't draw the overscroll effect beyond the * background bounds. */ @Override protected void dispatchDraw(Canvas canvas) { canvas.clipRect(mBackgroundPadding.left, mBackgroundPadding.top, getWidth() - mBackgroundPadding.right, getHeight() - mBackgroundPadding.bottom); super.dispatchDraw(canvas); } /** * Maps the touch (from 0..1) to the adapter position that should be visible. */ Loading Loading @@ -152,7 +139,7 @@ public class WidgetsRecyclerView extends BaseRecyclerView { View child = getChildAt(0); int height = child.getMeasuredHeight() * mWidgets.getPackageSize(); int totalHeight = getPaddingTop() + height + getPaddingBottom(); int availableScrollHeight = totalHeight - getVisibleHeight(); int availableScrollHeight = totalHeight - getScrollbarTrackHeight(); return availableScrollHeight; } Loading