summaryrefslogtreecommitdiff
path: root/core/java
diff options
context:
space:
mode:
authorAdrian Roos <roosa@google.com>2019-08-07 10:08:42 -0700
committerandroid-build-merger <android-build-merger@google.com>2019-08-07 10:08:42 -0700
commit47ede3f54a3292c650af9e9495adf3ac93672c49 (patch)
treeed693d3ed465cd86cac26e6bbca549eff8889343 /core/java
parent6c1f4b2dc2e62e56f0c8362a9ae6b2d71554e4cd (diff)
parent9546c977095c6a6c5e85658cd7e2a29e2cd586b9 (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.java21
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