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

Commit cee49cd5 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Make scroll bars more noticeable on round screens."

parents e26fae64 b8cbf3aa
Loading
Loading
Loading
Loading
+15 −8
Original line number Diff line number Diff line
@@ -31,13 +31,14 @@ class RoundScrollbarRenderer {
    private static final int MAX_SCROLLBAR_ANGLE_SWIPE = 16;
    private static final int MIN_SCROLLBAR_ANGLE_SWIPE = 6;
    private static final float WIDTH_PERCENTAGE = 0.02f;
    private static final int DEFAULT_THUMB_COLOR = 0x4CFFFFFF;
    private static final int DEFAULT_TRACK_COLOR = 0x26FFFFFF;
    private static final int DEFAULT_THUMB_COLOR = 0xFFE8EAED;
    private static final int DEFAULT_TRACK_COLOR = 0x4CFFFFFF;

    private final Paint mThumbPaint = new Paint();
    private final Paint mTrackPaint = new Paint();
    private final RectF mRect = new RectF();
    private final View mParent;
    private final int mMaskThickness;

    public RoundScrollbarRenderer(View parent) {
        // Paints for the round scrollbar.
@@ -52,6 +53,12 @@ class RoundScrollbarRenderer {
        mTrackPaint.setStyle(Paint.Style.STROKE);

        mParent = parent;

        // Fetch the resource indicating the thickness of CircularDisplayMask, rounding in the same
        // way WindowManagerService.showCircularMask does. The scroll bar is inset by this amount so
        // that it doesn't get clipped.
        mMaskThickness = parent.getContext().getResources().getDimensionPixelSize(
                com.android.internal.R.dimen.circular_display_mask_thickness);
    }

    public void drawRoundScrollbars(Canvas canvas, float alpha, Rect bounds) {
@@ -82,13 +89,13 @@ class RoundScrollbarRenderer {
        startAngle = clamp(startAngle, -SCROLLBAR_ANGLE_RANGE / 2,
                SCROLLBAR_ANGLE_RANGE / 2 - sweepAngle);

        // Draw the track and the scroll bar.
        // Draw the track and the thumb.
        float inset = thumbWidth / 2 + mMaskThickness;
        mRect.set(
                bounds.left - thumbWidth / 2,
                bounds.top,
                bounds.right - thumbWidth / 2,
                bounds.bottom);

                bounds.left + inset,
                bounds.top + inset,
                bounds.right - inset,
                bounds.bottom - inset);
        canvas.drawArc(mRect, -SCROLLBAR_ANGLE_RANGE / 2, SCROLLBAR_ANGLE_RANGE, false,
                mTrackPaint);
        canvas.drawArc(mRect, startAngle, sweepAngle, false, mThumbPaint);