Make voice messages long-clickable.

Fixes #12658
This commit is contained in:
fm-sys
2022-12-07 02:11:08 +01:00
committed by Alex Hart
parent 48c887ac03
commit 4c5db983e3

View File

@@ -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) {