From b8018ab6631e6dd0057e823b9460587b31b22b87 Mon Sep 17 00:00:00 2001 From: DreamDSTR <> Date: Tue, 28 Jun 2022 17:39:02 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BC=80=E5=A7=8B=E6=92=AD=E6=94=BE=E7=95=8C?= =?UTF-8?q?=E9=9D=A2=E7=9B=B8=E5=85=B3UI=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../osc/player/controller/BaseController.java | 4 -- .../osc/player/controller/VodController.java | 60 ++++++++++++++----- .../res/layout/player_vod_control_view.xml | 9 +++ 3 files changed, 53 insertions(+), 20 deletions(-) diff --git a/app/src/main/java/com/github/tvbox/osc/player/controller/BaseController.java b/app/src/main/java/com/github/tvbox/osc/player/controller/BaseController.java index 0c422dce..45094c4e 100644 --- a/app/src/main/java/com/github/tvbox/osc/player/controller/BaseController.java +++ b/app/src/main/java/com/github/tvbox/osc/player/controller/BaseController.java @@ -428,10 +428,6 @@ public abstract class BaseController extends BaseVideoController implements Gest } public boolean onKeyEvent(KeyEvent event) { - if (!isInPlaybackState() //不处于播放状态 - || isLocked() //锁住了屏幕 - ) - return false; return false; } } diff --git a/app/src/main/java/com/github/tvbox/osc/player/controller/VodController.java b/app/src/main/java/com/github/tvbox/osc/player/controller/VodController.java index dc866a18..24a13af7 100644 --- a/app/src/main/java/com/github/tvbox/osc/player/controller/VodController.java +++ b/app/src/main/java/com/github/tvbox/osc/player/controller/VodController.java @@ -191,35 +191,63 @@ public class VodController extends BaseController { if (super.onKeyEvent(event)) { return true; } - if (isInPlaybackState()) { - int keyCode = event.getKeyCode(); - int action = event.getAction(); - if (action == KeyEvent.ACTION_DOWN) { - if (keyCode == KeyEvent.KEYCODE_DPAD_RIGHT || keyCode == KeyEvent.KEYCODE_DPAD_LEFT) { + if (mBottomRoot.getVisibility() == VISIBLE) { + return super.dispatchKeyEvent(event); + } + boolean isInPlayback = isInPlaybackState(); + int keyCode = event.getKeyCode(); + int action = event.getAction(); + if (action == KeyEvent.ACTION_DOWN) { + if (keyCode == KeyEvent.KEYCODE_DPAD_RIGHT || keyCode == KeyEvent.KEYCODE_DPAD_LEFT) { + if (isInPlayback) { tvSlideStart(keyCode == KeyEvent.KEYCODE_DPAD_RIGHT ? 1 : -1); - } else if (keyCode == KeyEvent.KEYCODE_DPAD_CENTER || keyCode == KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE) { + return true; + } + } else if (keyCode == KeyEvent.KEYCODE_DPAD_CENTER || keyCode == KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE) { + if (isInPlayback) { togglePlay(); - } else if (keyCode == KeyEvent.KEYCODE_DPAD_UP) { - } else if (keyCode == KeyEvent.KEYCODE_DPAD_DOWN) { + return true; + } + } else if (keyCode == KeyEvent.KEYCODE_DPAD_UP) { + } else if (keyCode == KeyEvent.KEYCODE_DPAD_DOWN) { + if (mBottomRoot.getVisibility() == GONE) { + mHandler.removeMessages(1003); + mHandler.sendEmptyMessage(1002); } - } else if (action == KeyEvent.ACTION_UP) { - if (keyCode == KeyEvent.KEYCODE_DPAD_RIGHT || keyCode == KeyEvent.KEYCODE_DPAD_LEFT) { + } + } else if (action == KeyEvent.ACTION_UP) { + if (keyCode == KeyEvent.KEYCODE_DPAD_RIGHT || keyCode == KeyEvent.KEYCODE_DPAD_LEFT) { + if (isInPlayback) { tvSlideStop(); + return true; } } - return super.dispatchKeyEvent(event); } - return false; + return super.dispatchKeyEvent(event); } @Override public boolean onSingleTapConfirmed(MotionEvent e) { - if (isInPlaybackState()) { + if (mBottomRoot.getVisibility() == GONE) { + mHandler.removeMessages(1003); + mHandler.sendEmptyMessage(1002); + } else { + mHandler.removeMessages(1002); mHandler.sendEmptyMessage(1003); - mHandler.removeMessages(1004); - mHandler.sendEmptyMessageDelayed(1004, 3000); + } + return true; + } + + @Override + public boolean onBackPressed() { + if (super.onBackPressed()) { return true; } - return super.onSingleTapConfirmed(e); + if (mBottomRoot.getVisibility() == VISIBLE) { + mHandler.removeMessages(1002); + mHandler.sendEmptyMessage(1003); + return true; + } + return false; } } diff --git a/app/src/main/res/layout/player_vod_control_view.xml b/app/src/main/res/layout/player_vod_control_view.xml index 8af116c7..321f0106 100644 --- a/app/src/main/res/layout/player_vod_control_view.xml +++ b/app/src/main/res/layout/player_vod_control_view.xml @@ -32,6 +32,7 @@ android:layout_marginEnd="@dimen/vs_10" android:layout_marginRight="@dimen/vs_10" android:background="@drawable/button_dialog_main" + android:focusable="true" android:padding="@dimen/vs_10" android:text="上一集" android:textColor="@android:color/white" @@ -44,6 +45,7 @@ android:layout_marginEnd="@dimen/vs_10" android:layout_marginRight="@dimen/vs_10" android:background="@drawable/button_dialog_main" + android:focusable="true" android:padding="@dimen/vs_10" android:text="下一集" android:textColor="@android:color/white" @@ -56,6 +58,7 @@ android:layout_marginEnd="@dimen/vs_10" android:layout_marginRight="@dimen/vs_10" android:background="@drawable/button_dialog_main" + android:focusable="true" android:padding="@dimen/vs_10" android:text="系统播放器" android:textColor="@android:color/white" @@ -68,6 +71,7 @@ android:layout_marginEnd="@dimen/vs_10" android:layout_marginRight="@dimen/vs_10" android:background="@drawable/button_dialog_main" + android:focusable="true" android:padding="@dimen/vs_10" android:text="硬解码" android:textColor="@android:color/white" @@ -80,6 +84,7 @@ android:layout_marginEnd="@dimen/vs_10" android:layout_marginRight="@dimen/vs_10" android:background="@drawable/button_dialog_main" + android:focusable="true" android:padding="@dimen/vs_10" android:text="16:9" android:textColor="@android:color/white" @@ -92,6 +97,7 @@ android:layout_marginEnd="@dimen/vs_10" android:layout_marginRight="@dimen/vs_10" android:background="@drawable/button_dialog_main" + android:focusable="true" android:padding="@dimen/vs_10" android:text="x1.0" android:textColor="@android:color/white" @@ -115,6 +121,7 @@ android:layout_marginEnd="@dimen/vs_10" android:layout_marginRight="@dimen/vs_10" android:background="@drawable/button_dialog_main" + android:focusable="true" android:padding="@dimen/vs_10" android:text="01:00" android:textColor="@android:color/white" @@ -127,6 +134,7 @@ android:layout_marginEnd="@dimen/vs_10" android:layout_marginRight="@dimen/vs_10" android:background="@drawable/button_dialog_main" + android:focusable="true" android:padding="@dimen/vs_10" android:text="01:00" android:textColor="@android:color/white" @@ -139,6 +147,7 @@ android:layout_marginEnd="@dimen/vs_10" android:layout_marginRight="@dimen/vs_10" android:background="@drawable/button_dialog_main" + android:focusable="true" android:padding="@dimen/vs_10" android:text="1S" android:textColor="@android:color/white"