diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/CastActivity.java b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/CastActivity.java index aa0154854..72e95ddef 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/CastActivity.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/CastActivity.java @@ -36,7 +36,7 @@ import com.fongmi.android.tv.player.Players; import com.fongmi.android.tv.player.exo.ExoUtil; import com.fongmi.android.tv.service.PlaybackService; import com.fongmi.android.tv.ui.base.BaseActivity; -import com.fongmi.android.tv.ui.custom.CustomKeyDownCast; +import com.fongmi.android.tv.ui.custom.CustomKeyDownVod; import com.fongmi.android.tv.ui.dialog.SubtitleDialog; import com.fongmi.android.tv.ui.dialog.TrackDialog; import com.fongmi.android.tv.utils.Clock; @@ -50,11 +50,11 @@ import org.greenrobot.eventbus.ThreadMode; import java.util.UUID; -public class CastActivity extends BaseActivity implements CustomKeyDownCast.Listener, TrackDialog.Listener, RenderControl, ServiceConnection, Clock.Callback { +public class CastActivity extends BaseActivity implements CustomKeyDownVod.Listener, TrackDialog.Listener, RenderControl, ServiceConnection, Clock.Callback { private ActivityCastBinding mBinding; private DLNARendererService mService; - private CustomKeyDownCast mKeyDown; + private CustomKeyDownVod mKeyDown; private RenderState mState; private CastAction mAction; private Players mPlayers; @@ -87,10 +87,11 @@ public class CastActivity extends BaseActivity implements CustomKeyDownCast.List protected void initView() { bindService(new Intent(this, DLNARendererService.class), this, Context.BIND_AUTO_CREATE); mClock = Clock.create(mBinding.widget.clock); - mKeyDown = CustomKeyDownCast.create(this); + mKeyDown = CustomKeyDownVod.create(this); mPlayers = Players.create(this); mR1 = this::hideControl; mR2 = this::setTraffic; + mKeyDown.setFull(true); setVideoView(); } diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/custom/CustomKeyDownCast.java b/app/src/leanback/java/com/fongmi/android/tv/ui/custom/CustomKeyDownCast.java deleted file mode 100644 index f4514298e..000000000 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/custom/CustomKeyDownCast.java +++ /dev/null @@ -1,113 +0,0 @@ -package com.fongmi.android.tv.ui.custom; - -import android.app.Activity; -import android.view.GestureDetector; -import android.view.KeyEvent; -import android.view.MotionEvent; - -import androidx.annotation.NonNull; - -import com.fongmi.android.tv.App; -import com.fongmi.android.tv.Constant; -import com.fongmi.android.tv.utils.KeyUtil; - -public class CustomKeyDownCast extends GestureDetector.SimpleOnGestureListener { - - private final GestureDetector detector; - private final Listener listener; - private boolean changeSpeed; - private long holdTime; - - public static CustomKeyDownCast create(Activity activity) { - return new CustomKeyDownCast(activity); - } - - private CustomKeyDownCast(Activity activity) { - this.detector = new GestureDetector(activity, this); - this.listener = (Listener) activity; - } - - public boolean onTouchEvent(MotionEvent e) { - return detector.onTouchEvent(e); - } - - public boolean hasEvent(KeyEvent event) { - return KeyUtil.isEnterKey(event) || KeyUtil.isUpKey(event) || KeyUtil.isDownKey(event) || KeyUtil.isLeftKey(event) || KeyUtil.isRightKey(event); - } - - public boolean onKeyDown(KeyEvent event) { - check(event); - return true; - } - - private void check(KeyEvent event) { - if (event.getAction() == KeyEvent.ACTION_DOWN && KeyUtil.isLeftKey(event)) { - listener.onSeeking(subTime()); - } else if (event.getAction() == KeyEvent.ACTION_DOWN && KeyUtil.isRightKey(event)) { - listener.onSeeking(addTime()); - } else if (event.getAction() == KeyEvent.ACTION_UP && (KeyUtil.isLeftKey(event) || KeyUtil.isRightKey(event))) { - App.post(() -> listener.onSeekTo(holdTime), 250); - } else if (event.getAction() == KeyEvent.ACTION_UP && KeyUtil.isUpKey(event)) { - if (changeSpeed) listener.onSpeedEnd(); - else listener.onKeyUp(); - changeSpeed = false; - } else if (event.getAction() == KeyEvent.ACTION_UP && KeyUtil.isDownKey(event)) { - listener.onKeyDown(); - } else if (event.getAction() == KeyEvent.ACTION_UP && KeyUtil.isEnterKey(event)) { - listener.onKeyCenter(); - } else if (event.isLongPress() && KeyUtil.isUpKey(event)) { - listener.onSpeedUp(); - changeSpeed = true; - } - } - - @Override - public boolean onDown(@NonNull MotionEvent e) { - return true; - } - - @Override - public boolean onDoubleTap(@NonNull MotionEvent e) { - listener.onDoubleTap(); - return true; - } - - @Override - public boolean onSingleTapConfirmed(@NonNull MotionEvent e) { - listener.onSingleTap(); - return true; - } - - private long addTime() { - return holdTime = holdTime + Constant.INTERVAL_SEEK; - } - - private long subTime() { - return holdTime = holdTime - Constant.INTERVAL_SEEK; - } - - public void resetTime() { - holdTime = 0; - } - - public interface Listener { - - void onSeeking(long time); - - void onSeekTo(long time); - - void onSpeedUp(); - - void onSpeedEnd(); - - void onKeyUp(); - - void onKeyDown(); - - void onKeyCenter(); - - void onSingleTap(); - - void onDoubleTap(); - } -}