diff options
| -rw-r--r-- | core/java/android/widget/AbsSeekBar.java | 30 | ||||
| -rw-r--r-- | core/java/android/widget/Editor.java | 7 |
2 files changed, 37 insertions, 0 deletions
diff --git a/core/java/android/widget/AbsSeekBar.java b/core/java/android/widget/AbsSeekBar.java index 18c6abb3f5f1..50bb6883b903 100644 --- a/core/java/android/widget/AbsSeekBar.java +++ b/core/java/android/widget/AbsSeekBar.java @@ -38,6 +38,11 @@ import android.view.accessibility.AccessibilityNodeInfo; import android.view.inspector.InspectableProperty; import com.android.internal.R; +import com.android.internal.util.Preconditions; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; /** @@ -91,6 +96,10 @@ public abstract class AbsSeekBar extends ProgressBar { @UnsupportedAppUsage private boolean mIsDragging; + private List<Rect> mUserGestureExclusionRects = Collections.emptyList(); + private final List<Rect> mGestureExclusionRects = new ArrayList<>(); + private final Rect mThumbRect = new Rect(); + public AbsSeekBar(Context context) { super(context); } @@ -735,6 +744,27 @@ public abstract class AbsSeekBar extends ProgressBar { // Canvas will be translated, so 0,0 is where we start drawing thumb.setBounds(left, top, right, bottom); + updateGestureExclusionRects(); + } + + @Override + public void setSystemGestureExclusionRects(@NonNull List<Rect> rects) { + Preconditions.checkNotNull(rects, "rects must not be null"); + mUserGestureExclusionRects = rects; + updateGestureExclusionRects(); + } + + private void updateGestureExclusionRects() { + final Drawable thumb = mThumb; + if (thumb == null) { + super.setSystemGestureExclusionRects(mUserGestureExclusionRects); + return; + } + mGestureExclusionRects.clear(); + thumb.copyBounds(mThumbRect); + mGestureExclusionRects.add(mThumbRect); + mGestureExclusionRects.addAll(mUserGestureExclusionRects); + super.setSystemGestureExclusionRects(mGestureExclusionRects); } /** diff --git a/core/java/android/widget/Editor.java b/core/java/android/widget/Editor.java index c9ef038b78de..cac75cfd8432 100644 --- a/core/java/android/widget/Editor.java +++ b/core/java/android/widget/Editor.java @@ -134,6 +134,7 @@ import java.lang.annotation.RetentionPolicy; import java.text.BreakIterator; import java.util.ArrayList; import java.util.Arrays; +import java.util.Collections; import java.util.Comparator; import java.util.HashMap; import java.util.List; @@ -5097,6 +5098,12 @@ public class Editor { void onHandleMoved() {} public void onDetached() {} + + @Override + protected void onSizeChanged(int w, int h, int oldw, int oldh) { + super.onSizeChanged(w, h, oldw, oldh); + setSystemGestureExclusionRects(Collections.singletonList(new Rect(0, 0, w, h))); + } } private class InsertionHandleView extends HandleView { |