Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 00e10688 authored by Sunny Goyal's avatar Sunny Goyal
Browse files

Removing unused background padding from base recycler view

Change-Id: I36f68a143df8f3668074b3539aa9af170a91e511
parent d2959b9e
Loading
Loading
Loading
Loading
+6 −26
Original line number Diff line number Diff line
@@ -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;
    }

@@ -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.
     */
@@ -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);
+6 −8
Original line number Diff line number Diff line
@@ -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);
    }
}
+0 −1
Original line number Diff line number Diff line
@@ -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();
+5 −22
Original line number Diff line number Diff line
@@ -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();
    }

    /**
+1 −14
Original line number Diff line number Diff line
@@ -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;
@@ -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.
     */
@@ -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;
    }