feat!: v2.0 完整重写 — Material 3 + Compose + libsu + AGP 9
🎉 v2.0 完整重构
感谢 @1orz 的完整重构!
Why(为什么要重构)
- 旧实现 1455 行 MainActivity 把 UI/IO/状态机混在一起,5 秒 polling 写在 Composable 里
- hex 颜色字面量遍布,windowBackground 写死白色导致暗色主题失效
- 使用了多个 deprecated API(rememberRipple、PullToRefreshContainer 等)
- tailscale 1.90+ 已删除 file 子命令,旧版 Drop 功能完全失效
构建升级
- AGP 9.2.0 + Kotlin 2.3.21 + Gradle 9.5 + KSP 2.3.7
- compileSdk 36 / minSdk 29 / targetSdk 36
架构改进
- Hilt 依赖注入 + ViewModel + StateFlow
- libsu 双 Shell 替换 Runtime.exec("su -c")
- DataStore Preferences 替换 SharedPreferences
- kotlinx.serialization 替换 org.json
UI 全新设计
- Material 3 + Material You 动态配色
- NavigationSuiteScaffold 自适应导航
- 单 Activity,支持预测性返回
- Android 13+ 单色图标
新增功能
- 节点列表手动刷新、复制 IP 按钮
- PeerDetail:whois 查询 + 实时 Ping 折线图 + SSH 命令复制
- ExitNodePicker:智能建议
- SubnetEditor:CIDR 增删改
- LogScreen:日志实时尾随
- Netcheck:诊断 + 历史记录
- Traffic:实时流量折线图
- Settings:Material You 开关、SSH 开关、DNS 状态
兼容性修复
- 适配 tailscale 1.90+ 移除 file 命令
- 修复 netcheck 按钮卡 loading 问题
- 修复日志清空兼容性问题
再次感谢 @1orz 的完整重构! 🙏