[mobile] support double tap to forward and rewind

pull/123/head
FongMi 3 years ago
parent 25992c1553
commit d0d81c3df4
  1. 30
      app/src/mobile/java/com/fongmi/android/tv/ui/activity/DetailActivity.java
  2. 29
      app/src/mobile/java/com/fongmi/android/tv/ui/custom/CustomKeyDownVod.java

@ -559,13 +559,13 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis
if (mPlayers.haveTrack(C.TRACK_TYPE_TEXT)) popup.getMenu().add(0, C.TRACK_TYPE_TEXT, 0, R.string.play_track_text);
if (mPlayers.haveTrack(C.TRACK_TYPE_AUDIO)) popup.getMenu().add(0, C.TRACK_TYPE_AUDIO, 1, R.string.play_track_audio);
if (mPlayers.haveTrack(C.TRACK_TYPE_VIDEO)) popup.getMenu().add(0, C.TRACK_TYPE_VIDEO, 2, R.string.play_track_video);
popup.setOnMenuItemClickListener(item -> {
TrackDialog.create().player(mPlayers).type(item.getItemId()).listener(this).show(getSupportFragmentManager(), null);
return true;
});
if (popup.getMenu().size() > 0) {
popup.show();
}
popup.setOnMenuItemClickListener(item -> onTrack(item.getItemId()));
popup.show();
}
private boolean onTrack(int type) {
TrackDialog.create().player(mPlayers).type(type).listener(this).show(getSupportFragmentManager(), null);
return true;
}
private void toggleFullscreen() {
@ -869,7 +869,21 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis
}
@Override
public void onDoubleTap() {
public void onDoubleTapLeft() {
mPlayers.seekTo(-15 * 1000);
showProgress();
onPlay();
}
@Override
public void onDoubleTapRight() {
mPlayers.seekTo(15 * 1000);
showProgress();
onPlay();
}
@Override
public void onDoubleTapCenter() {
if (mPlayers.isPlaying()) onPause(true);
else onPlay();
hideControl();

@ -6,13 +6,12 @@ import android.view.MotionEvent;
import androidx.annotation.NonNull;
import com.fongmi.android.tv.Constant;
import com.fongmi.android.tv.utils.ResUtil;
public class CustomKeyDownVod extends GestureDetector.SimpleOnGestureListener {
private final GestureDetector detector;
private final Listener listener;
private int holdTime;
public static CustomKeyDownVod create(Context context) {
return new CustomKeyDownVod(context);
@ -29,7 +28,13 @@ public class CustomKeyDownVod extends GestureDetector.SimpleOnGestureListener {
@Override
public boolean onDoubleTap(@NonNull MotionEvent e) {
listener.onDoubleTap();
int base = ResUtil.getScreenWidthPx() / 3;
boolean left = e.getX() > 0 && e.getX() < base;
boolean center = e.getX() > base && e.getX() < base * 2;
boolean right = e.getX() > base * 2 && e.getX() < base * 3;
if (left) listener.onDoubleTapLeft();
if (right) listener.onDoubleTapRight();
if (center) listener.onDoubleTapCenter();
return true;
}
@ -39,22 +44,14 @@ public class CustomKeyDownVod extends GestureDetector.SimpleOnGestureListener {
return true;
}
private int addTime() {
return holdTime = holdTime + Constant.INTERVAL_SEEK;
}
private int subTime() {
return holdTime = holdTime - Constant.INTERVAL_SEEK;
}
public void resetTime() {
holdTime = 0;
}
public interface Listener {
void onSingleTap();
void onDoubleTap();
void onDoubleTapLeft();
void onDoubleTapRight();
void onDoubleTapCenter();
}
}
Loading…
Cancel
Save