diff options
| author | Adrian Roos <roosa@google.com> | 2019-08-07 10:08:42 -0700 |
|---|---|---|
| committer | android-build-merger <android-build-merger@google.com> | 2019-08-07 10:08:42 -0700 |
| commit | 47ede3f54a3292c650af9e9495adf3ac93672c49 (patch) | |
| tree | ed693d3ed465cd86cac26e6bbca549eff8889343 /core/java | |
| parent | 6c1f4b2dc2e62e56f0c8362a9ae6b2d71554e4cd (diff) | |
| parent | 9546c977095c6a6c5e85658cd7e2a29e2cd586b9 (diff) | |
Merge "GestureNav: Fix AbsSeekBar thumb exclusion" into qt-r1-dev am: 92f61f0323
am: 9546c97709
Change-Id: I51d7bd3847825c8653a08bc8e3421ace755dd1f9
Diffstat (limited to 'core/java')
| -rw-r--r-- | core/java/android/widget/AbsSeekBar.java | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/core/java/android/widget/AbsSeekBar.java b/core/java/android/widget/AbsSeekBar.java index c3e08fcf87d1..bbcba2e12a2c 100644 --- a/core/java/android/widget/AbsSeekBar.java +++ b/core/java/android/widget/AbsSeekBar.java @@ -91,6 +91,7 @@ public abstract class AbsSeekBar extends ProgressBar { @UnsupportedAppUsage private float mDisabledAlpha; + private int mThumbExclusionMaxSize; private int mScaledTouchSlop; private float mTouchDownX; @UnsupportedAppUsage @@ -171,6 +172,8 @@ public abstract class AbsSeekBar extends ProgressBar { applyTickMarkTint(); mScaledTouchSlop = ViewConfiguration.get(context).getScaledTouchSlop(); + mThumbExclusionMaxSize = getResources().getDimensionPixelSize( + com.android.internal.R.dimen.seekbar_thumb_exclusion_max_size); } /** @@ -763,12 +766,30 @@ public abstract class AbsSeekBar extends ProgressBar { } mGestureExclusionRects.clear(); thumb.copyBounds(mThumbRect); + mThumbRect.offset(mPaddingLeft - mThumbOffset, mPaddingTop); + growRectTo(mThumbRect, Math.min(getHeight(), mThumbExclusionMaxSize)); mGestureExclusionRects.add(mThumbRect); mGestureExclusionRects.addAll(mUserGestureExclusionRects); super.setSystemGestureExclusionRects(mGestureExclusionRects); } /** + * Grows {@code r} from its center such that each dimension is at least {@code minimumSize}. + */ + private void growRectTo(Rect r, int minimumSize) { + int dy = (minimumSize - r.height()) / 2; + if (dy > 0) { + r.top -= dy; + r.bottom += dy; + } + int dx = (minimumSize - r.width()) / 2; + if (dx > 0) { + r.left -= dx; + r.right += dx; + } + } + + /** * @hide */ @Override |
