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

Commit d87bdf98 authored by Sergey's avatar Sergey Committed by android-build-merger
Browse files

Merge "Stable seek bar positioning" am: 874b481c

am: ffb8583a

Change-Id: I049976100806ea78d99bad3201945ceccb0ee8c5
parents f7a4219a ffb8583a
Loading
Loading
Loading
Loading
+12 −2
Original line number Diff line number Diff line
@@ -95,6 +95,7 @@ public abstract class AbsSeekBar extends ProgressBar {
    private float mTouchDownX;
    @UnsupportedAppUsage
    private boolean mIsDragging;
    private float mTouchThumbOffset = 0.0f;

    private List<Rect> mUserGestureExclusionRects = Collections.emptyList();
    private final List<Rect> mGestureExclusionRects = new ArrayList<>();
@@ -874,6 +875,14 @@ public abstract class AbsSeekBar extends ProgressBar {

        switch (event.getAction()) {
            case MotionEvent.ACTION_DOWN:
                if (mThumb != null) {
                    final int availableWidth = getWidth() - mPaddingLeft - mPaddingRight;
                    mTouchThumbOffset = (getProgress() - getMin()) / (float) (getMax()
                        - getMin()) - (event.getX() - mPaddingLeft) / availableWidth;
                    if (Math.abs(mTouchThumbOffset * availableWidth) > getThumbOffset()) {
                        mTouchThumbOffset = 0;
                    }
                }
                if (isInScrollingContainer()) {
                    mTouchDownX = event.getX();
                } else {
@@ -956,7 +965,8 @@ public abstract class AbsSeekBar extends ProgressBar {
            } else if (x < mPaddingLeft) {
                scale = 1.0f;
            } else {
                scale = (availableWidth - x + mPaddingLeft) / (float) availableWidth;
                scale = (availableWidth - x + mPaddingLeft) / (float) availableWidth
                    + mTouchThumbOffset;
                progress = mTouchProgressOffset;
            }
        } else {
@@ -965,7 +975,7 @@ public abstract class AbsSeekBar extends ProgressBar {
            } else if (x > width - mPaddingRight) {
                scale = 1.0f;
            } else {
                scale = (x - mPaddingLeft) / (float) availableWidth;
                scale = (x - mPaddingLeft) / (float) availableWidth + mTouchThumbOffset;
                progress = mTouchProgressOffset;
            }
        }