From f17bb85cf2b5ffd44fcfb52dd95f4913ebf6ee37 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Sat, 2 May 2026 07:50:52 +0000 Subject: [PATCH 1/3] Add left/right playback menu shortcuts MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: 白一梓 --- .../java/com/whyun/witv/ui/PlayerActivity.java | 14 ++++++++++++++ app/src/main/res/values/strings.xml | 2 +- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/whyun/witv/ui/PlayerActivity.java b/app/src/main/java/com/whyun/witv/ui/PlayerActivity.java index 8a85f0b..d2ff82b 100644 --- a/app/src/main/java/com/whyun/witv/ui/PlayerActivity.java +++ b/app/src/main/java/com/whyun/witv/ui/PlayerActivity.java @@ -1197,6 +1197,13 @@ && isDescendantOf(focused, channelGroupListOverlay)) { return true; } } + if (emptyState != null && emptyState.getVisibility() == View.VISIBLE) { + break; + } + if (!isSettingsPanelVisible() && !isChannelListPanelVisible()) { + showSettingsPanel(); + return true; + } break; case KeyEvent.KEYCODE_DPAD_LEFT: if (isChannelListPanelVisible()) { @@ -1207,6 +1214,13 @@ && isDescendantOf(focused, channelListOverlay)) { return true; } } + if (emptyState != null && emptyState.getVisibility() == View.VISIBLE) { + break; + } + if (!isSettingsPanelVisible() && !isChannelListPanelVisible()) { + showChannelList(); + return true; + } break; case KeyEvent.KEYCODE_BACK: if (isChannelListPanelVisible()) { diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 8de4613..6243d3b 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -23,7 +23,7 @@ 关于 WiTV 版本:%1$s\n构建时间:%2$s\n\n应用 ID:%3$s 当前无正在播放的频道 - • 使用浏览器访问管理地址添加/管理 M3U 地址\n• 上/下键:切换频道(可在设置中反转)\n• 确认键:显示频道列表\n• 信息键 / 空格:显示/隐藏 EPG 与信号信息面板\n• 菜单键 / F6:打开设置;首页左侧选中「设置」分类即打开设置层\n• 「帮助与说明」内可查看媒体信息(仅播放页)、本说明与关于 APP\n• 收藏键 / F 键:收藏/取消收藏当前频道;频道列表中长按确认键可收藏/取消当前焦点行\n• 启动时自动播放上次观看的频道\n• 可在设置中开启「播放页显示视频加载速度」\n• 「切换源」用于在同一频道多条播放地址间手动切换 + • 使用浏览器访问管理地址添加/管理 M3U 地址\n• 上/下键:切换频道(可在设置中反转)\n• 左键:显示频道菜单;右键:显示设置菜单;确认键:显示频道列表\n• 信息键 / 空格:显示/隐藏 EPG 与信号信息面板\n• 菜单键 / F6:打开设置;首页左侧选中「设置」分类即打开设置层\n• 「帮助与说明」内可查看媒体信息(仅播放页)、本说明与关于 APP\n• 收藏键 / F 键:收藏/取消收藏当前频道;频道列表中长按确认键可收藏/取消当前焦点行\n• 启动时自动播放上次观看的频道\n• 可在设置中开启「播放页显示视频加载速度」\n• 「切换源」用于在同一频道多条播放地址间手动切换 保存 EPG 设置 刷新 EPG 数据 当前频道仅有一个播放地址 From 05a50ce793208df0ec6c77ce3ac749b65e1cf003 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Sat, 2 May 2026 08:53:09 +0000 Subject: [PATCH 2/3] Switch menu shortcuts to screen tap zones MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: 白一梓 --- .../com/whyun/witv/ui/PlayerActivity.java | 34 +++++++++++-------- app/src/main/res/values/strings.xml | 2 +- 2 files changed, 21 insertions(+), 15 deletions(-) diff --git a/app/src/main/java/com/whyun/witv/ui/PlayerActivity.java b/app/src/main/java/com/whyun/witv/ui/PlayerActivity.java index d2ff82b..084c491 100644 --- a/app/src/main/java/com/whyun/witv/ui/PlayerActivity.java +++ b/app/src/main/java/com/whyun/witv/ui/PlayerActivity.java @@ -8,6 +8,7 @@ import android.os.Handler; import android.os.Looper; import android.view.KeyEvent; +import android.view.MotionEvent; import android.view.View; import android.widget.ImageView; import android.widget.LinearLayout; @@ -213,6 +214,25 @@ private void initViews() { private void initPlayer() { playerView = findViewById(R.id.player_view); playerView.setUseController(false); + playerView.setOnTouchListener((v, event) -> { + if (event.getAction() != MotionEvent.ACTION_UP) { + return false; + } + if (emptyState != null && emptyState.getVisibility() == View.VISIBLE) { + return false; + } + if (isSettingsPanelVisible() || isChannelListPanelVisible()) { + return false; + } + float touchX = event.getX(); + if (touchX < v.getWidth() / 2f) { + showChannelList(); + } else { + showSettingsPanel(); + } + v.performClick(); + return true; + }); playerManager = new PlayerManager(this); playerManager.initialize(playerView); @@ -1197,13 +1217,6 @@ && isDescendantOf(focused, channelGroupListOverlay)) { return true; } } - if (emptyState != null && emptyState.getVisibility() == View.VISIBLE) { - break; - } - if (!isSettingsPanelVisible() && !isChannelListPanelVisible()) { - showSettingsPanel(); - return true; - } break; case KeyEvent.KEYCODE_DPAD_LEFT: if (isChannelListPanelVisible()) { @@ -1214,13 +1227,6 @@ && isDescendantOf(focused, channelListOverlay)) { return true; } } - if (emptyState != null && emptyState.getVisibility() == View.VISIBLE) { - break; - } - if (!isSettingsPanelVisible() && !isChannelListPanelVisible()) { - showChannelList(); - return true; - } break; case KeyEvent.KEYCODE_BACK: if (isChannelListPanelVisible()) { diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 6243d3b..01a082c 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -23,7 +23,7 @@ 关于 WiTV 版本:%1$s\n构建时间:%2$s\n\n应用 ID:%3$s 当前无正在播放的频道 - • 使用浏览器访问管理地址添加/管理 M3U 地址\n• 上/下键:切换频道(可在设置中反转)\n• 左键:显示频道菜单;右键:显示设置菜单;确认键:显示频道列表\n• 信息键 / 空格:显示/隐藏 EPG 与信号信息面板\n• 菜单键 / F6:打开设置;首页左侧选中「设置」分类即打开设置层\n• 「帮助与说明」内可查看媒体信息(仅播放页)、本说明与关于 APP\n• 收藏键 / F 键:收藏/取消收藏当前频道;频道列表中长按确认键可收藏/取消当前焦点行\n• 启动时自动播放上次观看的频道\n• 可在设置中开启「播放页显示视频加载速度」\n• 「切换源」用于在同一频道多条播放地址间手动切换 + • 使用浏览器访问管理地址添加/管理 M3U 地址\n• 上/下键:切换频道(可在设置中反转)\n• 点击屏幕左侧:显示频道菜单;点击屏幕右侧:显示设置菜单;确认键:显示频道列表\n• 信息键 / 空格:显示/隐藏 EPG 与信号信息面板\n• 菜单键 / F6:打开设置;首页左侧选中「设置」分类即打开设置层\n• 「帮助与说明」内可查看媒体信息(仅播放页)、本说明与关于 APP\n• 收藏键 / F 键:收藏/取消收藏当前频道;频道列表中长按确认键可收藏/取消当前焦点行\n• 启动时自动播放上次观看的频道\n• 可在设置中开启「播放页显示视频加载速度」\n• 「切换源」用于在同一频道多条播放地址间手动切换 保存 EPG 设置 刷新 EPG 数据 当前频道仅有一个播放地址 From 2b5770802a87fabfd537edb3b98dd1552633edd3 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Sat, 2 May 2026 10:22:50 +0000 Subject: [PATCH 3/3] Fix player tap zones receiving touch up MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: 白一梓 --- app/src/main/java/com/whyun/witv/ui/PlayerActivity.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/whyun/witv/ui/PlayerActivity.java b/app/src/main/java/com/whyun/witv/ui/PlayerActivity.java index 084c491..cbab0e5 100644 --- a/app/src/main/java/com/whyun/witv/ui/PlayerActivity.java +++ b/app/src/main/java/com/whyun/witv/ui/PlayerActivity.java @@ -215,7 +215,12 @@ private void initPlayer() { playerView = findViewById(R.id.player_view); playerView.setUseController(false); playerView.setOnTouchListener((v, event) -> { - if (event.getAction() != MotionEvent.ACTION_UP) { + int action = event.getActionMasked(); + // PlayerView does not claim touches when its controller is disabled, so claim the sequence here. + if (action == MotionEvent.ACTION_DOWN) { + return true; + } + if (action != MotionEvent.ACTION_UP) { return false; } if (emptyState != null && emptyState.getVisibility() == View.VISIBLE) {