2.3.0:手表界面精简 + 播放器 + 鼠标重做

手表端
- 功能页从 10 个杂项精简到 7 个(屏幕/鼠标/媒体/文件/电脑/语音/电源)
- 删掉:游戏封锁、待办、掷骰子、抽奖、壁纸、显示器开关、定时关机、
  剪贴板历史、性能/磁盘/电量、文件夹浏览、教室限制等
- 改成显式列按钮,不再把电脑端所有功能组无脑铺到表盘
- 远程鼠标控制重做:滑动区 + 左键/滚轮/右键三按钮
  滚轮点按=中键、上下滑=滚动
- 新增视频/音乐播放器(手表本地播放):进度拖动、左右滑快进退10秒、
  点画面播放暂停、上一/下一、播完自动下一首

电脑端
- 新增 kill_all(结束所有进程),白名单保护系统关键进程和自身
- 新增 media_list / media_pull(播放器数据源)
  安全边界:只允许媒体目录,用 relative_to 判断,防同前缀兄弟目录绕过

中转站
- known_devices 从 ID 集合改成「设备ID -> 配对码」映射
- 修复:管理员改码后关机超过 6 小时,改码会被超时清理冲掉
- 老格式 state 文件平滑升级
This commit is contained in:
xmz7891
2026-10-18 11:39:14 +08:00
parent 1d368979aa
commit 2061f9525f
50 changed files with 13812 additions and 584 deletions
+40 -10
View File
@@ -170,21 +170,51 @@ def main() -> int:
# ---------------- 五、鼠标触摸板 ----------------
print()
print("五、鼠标触摸板")
print("五、鼠标触摸板(2.3.0 版:滑动区 + 左键/滚轮/右键)")
check("有 buildMousePanel", "private void buildMousePanel()" in main_java)
check("用 GestureDetector(单击/双击/拖动)",
"GestureDetector" in main_java
and "onSingleTapConfirmed" in main_java
and "onDoubleTap" in main_java
and "onScroll" in main_java)
check("单击 -> 左键", 'sendMouse("click", "left", 0)' in main_java)
check("双击 -> 右键", 'sendMouse("click", "right", 0)' in main_java)
check("滚轮上/下", 'sendMouse("scroll", "", 3)' in main_java
and 'sendMouse("scroll", "", -3)' in main_java)
# 2.3.0 用户明确要求:「中间是一个鼠标,可以上下左右滑动控制,
# 下面有三个按钮,左边是左键,中间是那个滑轮,右边是那个右键」。
# 所以**不再用单击/双击手势** —— 左键和右键各有专门按钮,
# 手势里只留"滑动 = 移动光标"。
check("滑动区用 GestureDetector 的 onScroll(移动光标)",
"GestureDetector" in main_java and "onScroll" in main_java)
check("左键按钮 -> sendMouse click left",
'sendMouse("click", "left", 0)' in main_java)
check("右键按钮 -> sendMouse click right",
'sendMouse("click", "right", 0)' in main_java)
check("滚轮按钮:点一下 = 中键", 'sendMouse("click", "middle", 0)' in main_java)
check("滚轮按钮:上下滑 = 滚动",
'sendMouse("scroll", "", dir)' in main_java)
check("滚轮按钮有独立的触摸处理(不是普通 OnClickListener)",
"wheel.setOnTouchListener" in main_java)
check("拖动 -> moveby", '"moveby"' in main_java)
check("isConnected() 存在(第一版漏了,编译才发现)",
"private boolean isConnected()" in main_java)
# ---------------- 五之一、播放器(2.3.0 新增)----------------
print()
print("五之一、播放器")
check("有 buildPlayerPanel", "private void buildPlayerPanel()" in main_java)
check("有 seekTo / seekBy(进度左右划)",
"private void seekTo(int ms)" in main_java
and "private void seekBy(int deltaMs)" in main_java)
check("有上一/下一(stepPlayer)",
"private void stepPlayer(int delta)" in main_java)
check("视频用 VideoView", "android.widget.VideoView" in main_java)
check("音频用 MediaPlayer", "android.media.MediaPlayer" in main_java)
check("画面区左右滑 = 快进/快退",
"seekBy(dx > 0 ? 10000 : -10000)" in main_java)
check("画面区点击 = 播放/暂停",
"public boolean onSingleTapConfirmed" in main_java)
check("★ 播放器面板登记进 showOnly 数组", "playerPanel" in main_java
and re.search(r"View\[\] all = \{[^}]*playerPanel", main_java) is not None,
"漏了的话它永远不隐藏")
check("★ 播放器面板挂到了 root 上",
"root.addView(playerPanel" in main_java,
"只建不挂 = 一片空白")
check("★ 播完自动下一首",
"onCompletion" in main_java and "stepPlayer(1)" in main_java)
# ---------------- 五之二、连接后的选择页 ----------------
print()
print("五之二、连接后的选择页(远控 / 静默更新被控端)")