diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/AudioView.java b/app/src/main/java/org/thoughtcrime/securesms/components/AudioView.java index 889490ff6..6598c9aea 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/AudioView.java +++ b/app/src/main/java/org/thoughtcrime/securesms/components/AudioView.java @@ -7,6 +7,7 @@ import android.graphics.PorterDuff; import android.graphics.Rect; import android.net.Uri; import android.util.AttributeSet; +import android.view.GestureDetector; import android.view.MotionEvent; import android.view.View; import android.widget.FrameLayout; @@ -337,7 +338,7 @@ public final class AudioView extends FrameLayout { super.setClickable(clickable); this.playPauseButton.setClickable(clickable); this.seekBar.setClickable(clickable); - this.seekBar.setOnTouchListener(clickable ? null : new TouchIgnoringListener()); + this.seekBar.setOnTouchListener(clickable ? new LongTapAwareTouchListener() : new TouchIgnoringListener()); this.downloadButton.setClickable(clickable); } @@ -505,6 +506,20 @@ public final class AudioView extends FrameLayout { } } + private class LongTapAwareTouchListener implements OnTouchListener { + private final GestureDetector gestureDetector = new GestureDetector(AudioView.this.getContext(), new GestureDetector.SimpleOnGestureListener() { + @Override + public void onLongPress(MotionEvent e) { + performLongClick(); + } + }); + + @Override + public boolean onTouch(View v, MotionEvent event) { + return gestureDetector.onTouchEvent(event); + } + } + private static class TouchIgnoringListener implements OnTouchListener { @Override public boolean onTouch(View v, MotionEvent event) {