Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 9d6d531ffe | |||
| 0c60ddf63d | |||
| 928a0e9807 |
@@ -2,14 +2,14 @@
|
||||
</h1>
|
||||
<div align="center">
|
||||
|
||||

|
||||

|
||||

|
||||

|
||||

|
||||
|
||||
一个操作方便、界面简洁的Android视频播放器盒子,需自行添源,支持TV和手机双平台。
|
||||
|
||||
[下载APK](../../releases) • [功能特性](#-功能特性) • [构建指南](#-构建指南) • [API文档](#-api文档)
|
||||
[下载APK](https://github.com/Tosencen/XMBOX-Release/tree/main/apk/release) • [功能特性](#-功能特性) • [构建指南](#-构建指南) • [API文档](#-api文档)
|
||||
|
||||
</div>
|
||||
|
||||
@@ -36,12 +36,22 @@
|
||||
|
||||
## 📥 下载安装
|
||||
|
||||
### 最新版本: v3.0.7
|
||||
### 最新版本: v3.0.8
|
||||
|
||||
| 平台 | ARM64-V8A | ARM V7A |
|
||||
|------|-----------|---------|
|
||||
| **📱 手机版** | [下载 (37MB)](../../releases/download/v3.0.7/mobile-arm64_v8a.apk) | [下载 (35MB)](../../releases/download/v3.0.7/mobile-armeabi_v7a.apk) |
|
||||
| **📺 TV版** | [下载 (35MB)](../../releases/download/v3.0.7/leanback-arm64_v8a.apk) | [下载 (36MB)](../../releases/download/v3.0.7/leanback-armeabi_v7a.apk) |
|
||||
| **📱 手机版** | [下载 (34MB)](https://github.com/Tosencen/XMBOX-Release/raw/main/apk/release/v3.0.8/mobile-arm64_v8a-v3.0.8.apk) | [下载 (30MB)](https://github.com/Tosencen/XMBOX-Release/raw/main/apk/release/v3.0.8/mobile-armeabi_v7a-v3.0.8.apk) |
|
||||
| **📺 TV版** | [下载 (34MB)](https://github.com/Tosencen/XMBOX-Release/raw/main/apk/release/v3.0.8/leanback-arm64_v8a-v3.0.8.apk) | [下载 (30MB)](https://github.com/Tosencen/XMBOX-Release/raw/main/apk/release/v3.0.8/leanback-armeabi_v7a-v3.0.8.apk) |
|
||||
|
||||
### 📁 版本历史
|
||||
- **v3.0.8**: [查看v3.0.8版本](https://github.com/Tosencen/XMBOX-Release/tree/main/apk/release/v3.0.8) - UI交互体验全面优化
|
||||
- **v3.0.7**: [查看v3.0.7版本](https://github.com/Tosencen/XMBOX-Release/tree/main/apk/release/v3.0.7) - 全面优化稳定性和用户体验
|
||||
|
||||
### 📦 下载说明
|
||||
- **最新版本**: 根目录的 `mobile.json` 和 `leanback.json` 包含最新版本信息
|
||||
- **历史版本**: 每个版本都有独立的文件夹,包含完整的APK文件和版本信息
|
||||
- **文件结构**: 按版本号组织,便于管理和下载
|
||||
- **签名保护**: 所有APK均使用v1/v2/v3/v4多重签名保护
|
||||
|
||||
TV版基于 [FongMi/TV](https://github.com/FongMi/TV) 原项目就改了些配色,想要嘿稳定的可去原项目体验
|
||||
### 📋 系统要求
|
||||
@@ -122,28 +132,21 @@ XMBOX/
|
||||
|
||||
## 📝 更新日志
|
||||
|
||||
### v3.0.7 (2025-09-26)
|
||||
### v3.0.8 (2025-10-14)
|
||||
|
||||
#### 🐛 核心修复
|
||||
* **修复关键崩溃问题** - 解决 VodConfig/LiveConfig 空指针异常
|
||||
* **增强构造函数初始化** - 防止 clear() 方法调用时出现空指针
|
||||
* **优化生命周期管理** - 改进 Activity 销毁时的资源清理
|
||||
#### 🎨 UI交互体验全面优化
|
||||
* **修复按钮点击效果** - 解决按钮点击效果过于明显的问题
|
||||
* **统一自定义背景** - 使用自定义背景替代系统selectableItemBackgroundBorderless
|
||||
* **移除文字阴影** - 清理Control.Action样式中的文字阴影效果
|
||||
* **优化直播页面** - 选择按钮颜色统一为主题黄色
|
||||
* **调整页面布局** - 许可协议页面按钮区域上间距调整为8dp
|
||||
* **修复文字重叠** - 解决跨类和换源按钮的文字重叠问题
|
||||
* **提升视觉一致性** - 整体UI视觉一致性和用户体验优化
|
||||
|
||||
#### 🎨 UI/UX 全面升级
|
||||
* **新增隐私协议页面** - 符合应用商店规范的隐私政策
|
||||
* **修复按钮文字显示** - 解决长文本显示不完整问题
|
||||
* **空状态动画优化** - 恢复完整 Lottie 动画,位置向上调整40dp
|
||||
* **川渝方言文案** - 空状态文案改为"这里撒子内容都没得~"
|
||||
|
||||
#### 📺 TV版本专项优化
|
||||
* **选集按钮高亮** - 选中状态文字改为黄色显示 (#FFEB3B)
|
||||
* **专用颜色方案** - 新增 episode_text.xml 选择器
|
||||
* **精准影响范围** - 仅修改视频详情页,不干扰其他界面
|
||||
|
||||
#### ⚡ 技术改进
|
||||
* **任务栈管理** - 防止用户通过任务管理器返回协议页面
|
||||
* **空值安全检查** - 全面增强空指针保护
|
||||
* **错误处理机制** - 改进异常捕获和处理逻辑
|
||||
#### 🔧 技术改进
|
||||
* **优化内存使用** - 改进内存管理机制
|
||||
* **提升播放稳定性** - 增强播放器稳定性
|
||||
* **文件结构重组** - 按版本号重新组织发布文件结构
|
||||
|
||||
### v3.0.5 (2025-08-20)
|
||||
#### 🎨 界面优化
|
||||
|
||||
Submodule
+1
Submodule XMBOX-Release added at 75991c52f1
+2
-2
@@ -27,8 +27,8 @@ android {
|
||||
minSdk 24
|
||||
//noinspection ExpiredTargetSdkVersion
|
||||
targetSdk 28
|
||||
versionCode 307
|
||||
versionName "3.0.7"
|
||||
versionCode 308
|
||||
versionName "3.0.8"
|
||||
javaCompileOptions {
|
||||
annotationProcessorOptions {
|
||||
arguments = ["room.schemaLocation": "$projectDir/schemas".toString(), "eventBusIndex": "com.fongmi.android.tv.event.EventIndex"]
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:color="@color/white" android:state_focused="true" android:state_selected="true" />
|
||||
<item android:color="@color/green_400" android:state_selected="true" />
|
||||
<item android:color="@color/primary" android:state_selected="true" />
|
||||
<item android:color="@color/white" />
|
||||
</selector>
|
||||
@@ -2,6 +2,6 @@
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
|
||||
<solid android:color="@color/green_400" />
|
||||
<solid android:color="@color/primary" />
|
||||
|
||||
</shape>
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
<solid android:color="@color/black_20" />
|
||||
|
||||
<corners android:radius="4dp" />
|
||||
<corners android:radius="12dp" />
|
||||
|
||||
<padding
|
||||
android:bottom="8dp"
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
|
||||
<solid android:color="@color/black_60" />
|
||||
<solid android:color="@color/primary" />
|
||||
|
||||
<corners android:radius="4dp" />
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="2dp"
|
||||
android:singleLine="true"
|
||||
android:textColor="@color/green_a_400"
|
||||
android:textColor="@color/primary"
|
||||
android:textSize="14sp"
|
||||
tools:text="泥巴"
|
||||
tools:visibility="visible" />
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
<item name="colorPrimary">@color/primary</item>
|
||||
<item name="colorPrimaryDark">@color/primaryDark</item>
|
||||
<item name="colorAccent">@color/accent</item>
|
||||
<item name="colorControlHighlight">@color/primary</item>
|
||||
<item name="android:windowFullscreen">true</item>
|
||||
<item name="android:windowBackground">@null</item>
|
||||
<item name="android:windowDisablePreview">true</item>
|
||||
|
||||
@@ -63,7 +63,10 @@
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal"
|
||||
android:padding="24dp">
|
||||
android:paddingTop="8dp"
|
||||
android:paddingBottom="24dp"
|
||||
android:paddingStart="24dp"
|
||||
android:paddingEnd="24dp">
|
||||
|
||||
<Button
|
||||
android:id="@+id/disagreeButton"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:color="@color/white" android:state_focused="true" android:state_selected="true" />
|
||||
<item android:color="@color/green_400" android:state_selected="true" />
|
||||
<item android:color="@color/primary" android:state_selected="true" />
|
||||
<item android:color="@color/white" />
|
||||
</selector>
|
||||
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:color="?attr/colorControlHighlight">
|
||||
<item android:id="@android:id/background">
|
||||
<shape android:shape="rectangle">
|
||||
<solid android:color="@android:color/transparent" />
|
||||
</shape>
|
||||
</item>
|
||||
</ripple>
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:color="#802196F3">
|
||||
android:color="#80FFEB3B">
|
||||
<item android:id="@android:id/mask">
|
||||
<shape android:shape="rectangle">
|
||||
<solid android:color="#f5f5f5" />
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:color="#8066BB6A">
|
||||
android:color="#80FFEB3B">
|
||||
<item android:id="@android:id/mask">
|
||||
<shape android:shape="rectangle">
|
||||
<solid android:color="#f5f5f5" />
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<item android:id="@android:id/background">
|
||||
<shape android:shape="rectangle">
|
||||
<solid android:color="@color/black_20" />
|
||||
<corners android:radius="8dp" />
|
||||
<corners android:radius="12dp" />
|
||||
<padding
|
||||
android:bottom="14dp"
|
||||
android:left="16dp"
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
android:layout_width="24dp"
|
||||
android:layout_height="24dp"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:background="?attr/selectableItemBackgroundBorderless"
|
||||
android:background="@drawable/shape_action_background"
|
||||
android:src="@drawable/ic_back" />
|
||||
|
||||
<TextView
|
||||
@@ -35,7 +35,7 @@
|
||||
android:layout_width="24dp"
|
||||
android:layout_height="24dp"
|
||||
android:layout_marginStart="16dp"
|
||||
android:background="?attr/selectableItemBackgroundBorderless"
|
||||
android:background="@drawable/shape_action_background"
|
||||
android:src="@drawable/ic_action_sync" />
|
||||
|
||||
<ImageView
|
||||
@@ -43,7 +43,7 @@
|
||||
android:layout_width="24dp"
|
||||
android:layout_height="24dp"
|
||||
android:layout_marginStart="16dp"
|
||||
android:background="?attr/selectableItemBackgroundBorderless"
|
||||
android:background="@drawable/shape_action_background"
|
||||
android:src="@drawable/ic_action_delete"
|
||||
android:visibility="gone"
|
||||
tools:visibility="visible" />
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
android:layout_width="24dp"
|
||||
android:layout_height="24dp"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:background="?attr/selectableItemBackgroundBorderless"
|
||||
android:background="@drawable/shape_action_background"
|
||||
android:src="@drawable/ic_back" />
|
||||
|
||||
<TextView
|
||||
@@ -35,7 +35,7 @@
|
||||
android:layout_width="24dp"
|
||||
android:layout_height="24dp"
|
||||
android:layout_marginStart="16dp"
|
||||
android:background="?attr/selectableItemBackgroundBorderless"
|
||||
android:background="@drawable/shape_action_background"
|
||||
android:src="@drawable/ic_action_sync" />
|
||||
|
||||
<ImageView
|
||||
@@ -43,7 +43,7 @@
|
||||
android:layout_width="24dp"
|
||||
android:layout_height="24dp"
|
||||
android:layout_marginStart="16dp"
|
||||
android:background="?attr/selectableItemBackgroundBorderless"
|
||||
android:background="@drawable/shape_action_background"
|
||||
android:src="@drawable/ic_action_delete"
|
||||
android:visibility="gone"
|
||||
tools:visibility="visible" />
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
android:layout_width="24dp"
|
||||
android:layout_height="24dp"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:background="?attr/selectableItemBackgroundBorderless"
|
||||
android:background="@drawable/shape_action_background"
|
||||
android:src="@drawable/ic_back" />
|
||||
|
||||
<TextView
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
android:id="@+id/logo"
|
||||
android:layout_width="24dp"
|
||||
android:layout_height="24dp"
|
||||
android:background="?attr/selectableItemBackgroundBorderless"
|
||||
android:background="@drawable/shape_action_background"
|
||||
android:src="@drawable/ic_logo" />
|
||||
|
||||
<LinearLayout
|
||||
@@ -66,14 +66,14 @@
|
||||
android:layout_width="24dp"
|
||||
android:layout_height="24dp"
|
||||
android:layout_marginEnd="12dp"
|
||||
android:background="?attr/selectableItemBackgroundBorderless"
|
||||
android:background="@drawable/shape_action_background"
|
||||
android:src="@drawable/ic_action_keep" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/history"
|
||||
android:layout_width="24dp"
|
||||
android:layout_height="24dp"
|
||||
android:background="?attr/selectableItemBackgroundBorderless"
|
||||
android:background="@drawable/shape_action_background"
|
||||
android:src="@drawable/ic_action_history" />
|
||||
|
||||
</LinearLayout>
|
||||
@@ -144,7 +144,7 @@
|
||||
android:layout_width="56dp"
|
||||
android:layout_height="56dp"
|
||||
android:layout_gravity="center"
|
||||
android:background="?attr/selectableItemBackgroundBorderless"
|
||||
android:background="@drawable/shape_action_background"
|
||||
android:src="@drawable/ic_action_retry"
|
||||
android:visibility="gone" />
|
||||
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
<item name="colorPrimary">@color/primary</item>
|
||||
<item name="colorPrimaryDark">@color/primaryDark</item>
|
||||
<item name="colorAccent">@color/accent</item>
|
||||
<item name="colorControlHighlight">@color/primary</item>
|
||||
<item name="android:windowBackground">@null</item>
|
||||
<item name="android:windowDisablePreview">true</item>
|
||||
<item name="android:navigationBarColor">@color/transparent</item>
|
||||
@@ -30,12 +31,8 @@
|
||||
<style name="Control.Action">
|
||||
<item name="android:layout_width">wrap_content</item>
|
||||
<item name="android:layout_height">wrap_content</item>
|
||||
<item name="android:background">?attr/selectableItemBackgroundBorderless</item>
|
||||
<item name="android:background">@drawable/shape_action_background</item>
|
||||
<item name="android:padding">8dp</item>
|
||||
<item name="android:shadowColor">@color/grey_200</item>
|
||||
<item name="android:shadowDx">1</item>
|
||||
<item name="android:shadowDy">1</item>
|
||||
<item name="android:shadowRadius">0.5</item>
|
||||
<item name="android:textColor">@color/white</item>
|
||||
<item name="android:textSize">14sp</item>
|
||||
</style>
|
||||
|
||||
+8
-8
@@ -3,16 +3,16 @@
|
||||
# GitHub CLI 创建 Release 脚本
|
||||
# 使用前请先运行: gh auth login
|
||||
|
||||
echo "创建 XMBOX v3.0.7 Release..."
|
||||
echo "创建 XMBOX v3.0.8 Release..."
|
||||
|
||||
gh release create v3.0.7 \
|
||||
--title "XMBOX v3.0.7 - 全面优化稳定性和用户体验" \
|
||||
--notes-file RELEASE_NOTES_v3.0.7.md \
|
||||
gh release create v3.0.8 \
|
||||
--title "XMBOX v3.0.8 - UI交互体验全面优化" \
|
||||
--notes-file RELEASE_NOTES_v3.0.8.md \
|
||||
--draft \
|
||||
~/Desktop/mobile-arm64_v8a-v3.0.7.apk \
|
||||
~/Desktop/mobile-armeabi_v7a-v3.0.7.apk \
|
||||
~/Desktop/leanback-arm64_v8a-v3.0.7.apk \
|
||||
~/Desktop/leanback-armeabi_v7a-v3.0.7.apk
|
||||
~/Desktop/mobile-arm64_v8a-v3.0.8.apk \
|
||||
~/Desktop/mobile-armeabi_v7a-v3.0.8.apk \
|
||||
~/Desktop/leanback-arm64_v8a-v3.0.8.apk \
|
||||
~/Desktop/leanback-armeabi_v7a-v3.0.8.apk
|
||||
|
||||
echo "Release 创建完成(草稿状态)"
|
||||
echo "请在 GitHub 上检查并发布"
|
||||
|
||||
Reference in New Issue
Block a user