diff options
author | Sunny Goyal <sunnygoyal@google.com> | 2016-10-18 14:23:46 +0100 |
---|---|---|
committer | Sunny Goyal <sunnygoyal@google.com> | 2016-10-18 21:36:29 +0100 |
commit | 00e106880d33d2fc173c38e6d9da98762ccee478 (patch) | |
tree | 1587f491a3f2b887a8fd89866f85b23205aa0549 | |
parent | d2959b9ee7deb06b40152e2ce85b5c045fff58e7 (diff) | |
download | android_packages_apps_Trebuchet-00e106880d33d2fc173c38e6d9da98762ccee478.tar.gz android_packages_apps_Trebuchet-00e106880d33d2fc173c38e6d9da98762ccee478.tar.bz2 android_packages_apps_Trebuchet-00e106880d33d2fc173c38e6d9da98762ccee478.zip |
Removing unused background padding from base recycler view
Change-Id: I36f68a143df8f3668074b3539aa9af170a91e511
5 files changed, 18 insertions, 71 deletions
diff --git a/src/com/android/launcher3/BaseRecyclerView.java b/src/com/android/launcher3/BaseRecyclerView.java index 4e39ed3e5..6fdf45450 100644 --- a/src/com/android/launcher3/BaseRecyclerView.java +++ b/src/com/android/launcher3/BaseRecyclerView.java @@ -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; @@ -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); @@ -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(); } /** @@ -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; } @@ -204,13 +192,6 @@ public abstract class BaseRecyclerView extends RecyclerView } /** - * 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. */ public BaseRecyclerViewFastScrollBar getScrollBar() { @@ -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; @@ -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); diff --git a/src/com/android/launcher3/BaseRecyclerViewFastScrollBar.java b/src/com/android/launcher3/BaseRecyclerViewFastScrollBar.java index 263e132c8..40c5ed65d 100644 --- a/src/com/android/launcher3/BaseRecyclerViewFastScrollBar.java +++ b/src/com/android/launcher3/BaseRecyclerViewFastScrollBar.java @@ -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(); @@ -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); @@ -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); @@ -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); } } diff --git a/src/com/android/launcher3/DeviceProfile.java b/src/com/android/launcher3/DeviceProfile.java index e830250dc..655c21868 100644 --- a/src/com/android/launcher3/DeviceProfile.java +++ b/src/com/android/launcher3/DeviceProfile.java @@ -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(); diff --git a/src/com/android/launcher3/allapps/AllAppsRecyclerView.java b/src/com/android/launcher3/allapps/AllAppsRecyclerView.java index a32a9b144..ab34287eb 100644 --- a/src/com/android/launcher3/allapps/AllAppsRecyclerView.java +++ b/src/com/android/launcher3/allapps/AllAppsRecyclerView.java @@ -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); } @@ -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; @@ -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; } @@ -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(); } /** diff --git a/src/com/android/launcher3/widget/WidgetsRecyclerView.java b/src/com/android/launcher3/widget/WidgetsRecyclerView.java index c33978eea..4b23ae088 100644 --- a/src/com/android/launcher3/widget/WidgetsRecyclerView.java +++ b/src/com/android/launcher3/widget/WidgetsRecyclerView.java @@ -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; @@ -71,18 +70,6 @@ public class WidgetsRecyclerView extends BaseRecyclerView { public void setWidgets(WidgetsModel widgets) { 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. @@ -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; } |