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

Commit d25e2f5e authored by Sunny Goyal's avatar Sunny Goyal Committed by Android (Google) Code Review
Browse files

Merge "Removing unused background padding from base recycler view" into ub-launcher3-master

parents ed5d960e 00e10688
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;
    }