🚀 OShin New CI Build!
📦 版本:
📝 更新说明:
🔗 查阅本次提交
📦 版本:
v16.6.1202(1202)📝 更新说明:
fix(Notify): 更新通知小图标并移除分组设置
主要变更:
- 将通知小图标更改为 `ic_launcher_monochrome`
- 移除 `setGroup` 调用,取消通知分组逻辑
🔗 查阅本次提交
🚀 OShin New CI Build!
📦 版本:
📝 更新说明:
🔗 查阅本次提交
📦 版本:
v16.6.1203(1203)📝 更新说明:
refactor: 全局性能优化、主页UI解耦与共享元素过渡动画修复
本次提交对项目架构、线程调度和 Compose UI 进行了大规模重构与优化,显著提升了应用的启动速度与长列表滑动时的丝滑度。
🚀 性能与线程调度优化 (Performance)
- ModuleViewModel: 将 `Pinyin.init`、`buildSearchIndex`、列表排序以及应用图标提取主题色 (dominantColor) 的高耗时操作全部迁移至 `Dispatchers.IO` / `Dispatchers.Default`,彻底消除对主线程的阻塞。同时引入了颜色缓存复用机制。
- Main_About & MainScreen: 剥离获取应用版本号、计算物理存储空间与已用空间等系统级 I/O 操作,改用 `LaunchedEffect` 配合异步协程加载。
- featureScreen: 重写 `getAppName` 逻辑,采用 `produceState` 结合 `Dispatchers.IO` 异步查询 PackageManager,解决复杂列表滚动时的掉帧问题。
🏗️ UI 解耦与架构调整 (Architecture)
- 新增 `ModernHome.kt`:将原 `MainHome.kt` 中极其臃肿的 Modern 风格仪表盘、设备信息、根目录状态、高亮卡片等 UI 组件完全抽离成独立文件,大幅降低单一文件复杂度。
- 状态提升 (State Hoisting):在 `MainScreen` 和 `AppNavHost` 层统一注入 `HomeViewModel`, `ModuleViewModel`, `MainAboutViewModel`,通过参数向下传递,避免子组件内重复实例化。
- featureScreen 改造:将 `RenderScreenItem` 彻底组件化,移除其对 `viewModel` 的强依赖,改为通过 `value`、`onValueChange` 和 `onImageSelected` 回调向上传递状态。
✨ 动画与过渡效果修复 (Animations)
- AppList 过渡动画修复:引入 `clickedPackageName` 状态,确保在列表跳转时,只有当前被点击的卡片才会应用 `sharedBounds` 和 `sharedElement` 修饰符。完美解决了懒加载列表中共享元素过渡时由于复用导致的卡顿、错位与闪烁 bug。
- featureScreen: 优化了功能高亮的闪烁动画效果,弃用 `Animatable` 的循环写法,改为基于 `animateColorAsState` 与标志位的协程延迟控制,动画更平滑。
🧩 友盟原生广告组件重构 (Ad Integration)
- 彻底重写了 `UMNativeLayout` 结合 Compose 的渲染逻辑。移除了此前在原生 View 层内部又嵌套一层 ComposeView 的低效做法。现在使用原生层加载底层图像/视频,在 Compose 层利用 `Box` 直接覆盖渐变遮罩和文字信息,大幅提高了混合渲染的性能与灵活性。
🐛 杂项与 Bug 修复 (Misc)
- 修复 `MainScreen` 中开启“隐藏主页”后 HorizontalPager 的目标索引 (`targetIndex`) 偏移错位问题。
- `Main_About.kt`: 修正背景偏移量修饰符,使用 `IntOffset` 避免子像素渲染导致的问题。
- 将旧版 Java Math 的 `.pow` 和 `.log10` 替换为 Kotlin 官方 `kotlin.math` 库函数。
🔗 查阅本次提交
🚀 OShin New CI Build!
📦 版本:
📝 更新说明:
🔗 查阅本次提交
📦 版本:
v16.6.1204(1204)📝 更新说明:
refactor(Res): 清理冗余字符串资源并更新电池信息显示
主要变更:
- **UI 调整**:在 `ModernHome` 页面中,将芯片电量(Chip SoC)的显示标签由“电池状态”修正为“真实电量” (`real_battery_level`)。
- **配置更新**:在 `array.xml` 的应用包名列表中新增 `com.coloros.sceneservice`。
- **资源清理**:从所有语言版本(en, ja, zh, ru, ko 等)的 `strings.xml` 中移除了大量不再使用的字符串资源,主要包括:
- 系统状态与设备信息相关文案(如 `section_title_status`, `info_system` 等)
- 电池健康与循环次数相关指标(如 `battery_metric_cycle_count`, `gauge_title_health` 等)
- 首页“今日亮点”相关文案(`section_title_highlights`)
- 模块状态与 Root 状态标题
🔗 查阅本次提交
🚀 OShin New CI Build!
📦 版本:
📝 更新说明:
🔗 查阅本次提交
📦 版本:
v16.6.1205(1205)📝 更新说明:
refactor(UI): 优化 FunDropdown 组件颜色配置并移除冗余代码
🔗 查阅本次提交
👍1
🚀 OShin New CI Build!
📦 版本:
📝 更新说明:
🔗 查阅本次提交
📦 版本:
v16.6.1206(1206)📝 更新说明:
refactor(FunDropdown): 优化下拉菜单逻辑与样式
重构了 `FunDropdown` 组件的内部实现,主要变更如下:
- 逻辑:提取 `popupContent` 闭包以复用代码,并将 `alignLeft` 的持久化由 `rememberSaveable` 改为 `remember`。
- 交互:移除了悬停时的勾选框显示逻辑,仅在选中时显示。
- 样式:调整了按压状态下的背景透明度(0.12f -> 0.10f),并大幅增加 `shadowElevation` (24.dp -> 82.dp) 以增强阴影效果。
- 扩展性:为 `ListPopupColumn` 添加了 `minWidth` 和 `maxWidth` 参数支持,并将 `DropdownColors` 改为 `data class`。
- 清理:移除了 `DropdownItem` 中未使用的回调参数。
🔗 查阅本次提交
👍1
🚀 OShin New CI Build!
📦 版本:
📝 更新说明:
🔗 查阅本次提交
📦 版本:
v16.6.1207(1207)📝 更新说明:
refactor(MainHome): 移除首页精选版块标题
- 移除非精简模式下的 `ModernSectionTitle` (Featured) 及对应间距
- 清理未使用的 `hiltViewModel` 引用
🔗 查阅本次提交
🚀 OShin New CI Build!
📦 版本:
📝 更新说明:
🔗 查阅本次提交
📦 版本:
v16.6.1208(1208)📝 更新说明:
feat(UI): 更新应用启动图标及背景资源
- 重绘 `ic_launcher_foreground` 矢量图形,采用新版设计风格
- 将图标背景修改为纯白颜色定义 (`@color/ic_launcher_background`)
- 同步更新 Play Store 商店图标文件
🔗 查阅本次提交
❤1
🚀 OShin New CI Build!
📦 版本:
📝 更新说明:
🔗 查阅本次提交
📦 版本:
v16.6.1209(1209)📝 更新说明:
feat(Icon): 更新应用启动图标配色
主要变更:
- 资源更新:调整 `ic_launcher_foreground` 矢量图,将填充色系修改为紫色渐变。
- 资产同步:更新 Play Store 展示图标 (`ic_launcher-playstore.png`)。
🔗 查阅本次提交
🚀 OShin New CI Build!
📦 版本:
📝 更新说明:
🔗 查阅本次提交
📦 版本:
v16.6.1210(1210)📝 更新说明:
refactor(Settings): 在设置备份中保留数据类型以提高恢复准确性
引入 `PrefEntry` 数据类,用于在备份时显式存储每个偏好设置的原始数据类型(如 Int, Long, Boolean, StringSet 等)。
主要变更:
- **数据结构**: 新增 `PrefEntry` 数据类以封装值及其类型。
- **备份逻辑**: `collectAllSettings` 现在会检测每个偏好值的具体类型,并与值一同存储。
- **恢复逻辑**: `applySettings` 根据 `PrefEntry` 中保存的类型信息,调用对应的 `SharedPreferences.Editor` 方法(如 `putInt`, `putLong`),确保数据被准确无误地恢复。
此重构解决了原先实现中因类型推断(特别是 Gson 将数字统一处理为 Double)可能导致的数据类型不匹配和精度丢失问题。
🔗 查阅本次提交
