From 11a776a9083a81a3bf43120859ab6fc80ed9461f Mon Sep 17 00:00:00 2001 From: shaoweishen Date: Mon, 11 Apr 2022 08:12:36 +0000 Subject: DO NOT MERGE: Downbranch merge conflict [Output Switcher] Refine seekbar control Adjust seekbar behavior to make it more adjustable for volume and override click action. Test: verified on device Bug: 228606252 Change-Id: Ide8a7dc53d716a16b19ab1a626f87003a3071ac2 --- .../systemui/media/dialog/MediaOutputSeekbar.java | 31 +++++++--------------- 1 file changed, 10 insertions(+), 21 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputSeekbar.java b/packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputSeekbar.java index 0a3c5bf24b8b..72f308e4f6b1 100644 --- a/packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputSeekbar.java +++ b/packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputSeekbar.java @@ -26,8 +26,7 @@ import android.widget.SeekBar; * otherwise performs click. */ public class MediaOutputSeekbar extends SeekBar { - private static final int DRAGGING_THRESHOLD = 20; - private boolean mIsDragging = false; + private int mLastDownPosition = -1; public MediaOutputSeekbar(Context context) { super(context); @@ -39,26 +38,16 @@ public class MediaOutputSeekbar extends SeekBar { @Override public boolean onTouchEvent(MotionEvent event) { - int width = getWidth() - - getPaddingLeft() - - getPaddingRight(); - int thumbPos = getPaddingLeft() - + width - * getProgress() - / getMax(); - if (event.getAction() == MotionEvent.ACTION_DOWN - && Math.abs(event.getX() - thumbPos) < DRAGGING_THRESHOLD) { - mIsDragging = true; - super.onTouchEvent(event); - } else if (event.getAction() == MotionEvent.ACTION_MOVE && mIsDragging) { - super.onTouchEvent(event); - } else if (event.getAction() == MotionEvent.ACTION_UP && mIsDragging) { - mIsDragging = false; - super.onTouchEvent(event); - } else if (event.getAction() == MotionEvent.ACTION_UP && !mIsDragging) { - performClick(); + if (event.getAction() == MotionEvent.ACTION_DOWN) { + mLastDownPosition = Math.round(event.getX()); + } else if (event.getAction() == MotionEvent.ACTION_UP) { + if (mLastDownPosition == event.getX()) { + performClick(); + return true; + } + mLastDownPosition = -1; } - return true; + return super.onTouchEvent(event); } @Override -- cgit v1.2.3-59-g8ed1b