diff options
| author | Adrian Roos <roosa@google.com> | 2019-08-07 09:56:48 -0700 |
|---|---|---|
| committer | android-build-merger <android-build-merger@google.com> | 2019-08-07 09:56:48 -0700 |
| commit | 4fd6bf01d34868aaed45ad3987e2613c6b69a3f6 (patch) | |
| tree | 6bc1bad1757c99d02c048416dce8320152c276f6 /core/java/android | |
| parent | fc798ad2e3bfdbf7b090f5092501d357518d853a (diff) | |
| parent | 92f61f0323b5082ee53dd8768ea14d798ddb31c6 (diff) | |
Merge "GestureNav: Fix AbsSeekBar thumb exclusion" into qt-r1-dev
am: 92f61f0323
Change-Id: If88cb2016add304bb4ac18c957abb71538329583
Diffstat (limited to 'core/java/android')
| -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 50bb6883b903..1db91233aefb 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 @@ -170,6 +171,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); } /** @@ -762,12 +765,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 |
