feat: 小趣手表APP Android原生重构 - 基础框架搭建

已完成的模块:
1. 项目脚手架 - Gradle配置、28个包目录、核心基类
2. 权限管理 - 确认定制ROM已预授权所有权限
3. 工具类 - DateUtil/DeviceUtil/NetworkUtil/Md5Util
4. 设备信息 - DevicePrefs/UserPrefs (SharedPreferences)
5. 网络层 - OkHttp+Retrofit+MD5签名拦截器+解绑拦截器
6. 基础UI组件 - NavBarView/QuTipDialog/QuConfirmDialog/ActionButton/iconfont

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
dongliang
2026-04-27 11:26:50 +09:30
commit a397985954
89 changed files with 3211 additions and 0 deletions

View File

@@ -0,0 +1,36 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="black">#FF000000</color>
<color name="white">#FFFFFFFF</color>
<!-- 全局背景 -->
<color name="background">#FF000000</color>
<!-- 主题色 -->
<color name="primary">#FF007AFF</color>
<color name="action_primary">#FF339AFB</color>
<!-- 状态色 -->
<color name="success">#FF1CC46B</color>
<color name="warning">#FFEB9A26</color>
<color name="error">#FFDA5050</color>
<!-- 按钮色 -->
<color name="grey_button">#FF666666</color>
<!-- 文字色 -->
<color name="text_primary">#FFFFFFFF</color>
<color name="text_secondary">#FF999999</color>
<color name="text_placeholder">#FF808080</color>
<color name="text_disabled">#FFC0C0C0</color>
<!-- 界面元素 -->
<color name="overlay">#66000000</color>
<color name="border">#FFC8C7CC</color>
<color name="card_background">#FF1A1A1A</color>
<color name="pressed">#FFF1F1F1</color>
<!-- 状态图标 -->
<color name="charge_green">#FF00FF00</color>
<color name="disconnect_red">#FF8B0000</color>
</resources>

View File

@@ -0,0 +1,44 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- SafeArea 内边距(圆角屏防裁切) -->
<dimen name="safe_area_left">12dp</dimen>
<dimen name="safe_area_top">16dp</dimen>
<dimen name="safe_area_right">12dp</dimen>
<dimen name="safe_area_bottom">16dp</dimen>
<!-- NavBar -->
<dimen name="nav_bar_height">60dp</dimen>
<!-- 字体大小 -->
<dimen name="text_title">18sp</dimen>
<dimen name="text_body">15sp</dimen>
<dimen name="text_caption">13sp</dimen>
<dimen name="text_small">11sp</dimen>
<dimen name="text_button">15sp</dimen>
<dimen name="text_button_small">13sp</dimen>
<!-- 间距 -->
<dimen name="spacing_xs">4dp</dimen>
<dimen name="spacing_sm">8dp</dimen>
<dimen name="spacing_md">12dp</dimen>
<dimen name="spacing_lg">16dp</dimen>
<dimen name="spacing_xl">24dp</dimen>
<!-- 圆角 -->
<dimen name="corner_radius_sm">4dp</dimen>
<dimen name="corner_radius_md">8dp</dimen>
<dimen name="corner_radius_lg">16dp</dimen>
<dimen name="corner_radius_button">8dp</dimen>
<!-- 按钮 -->
<dimen name="button_height">40dp</dimen>
<dimen name="button_half_width">120dp</dimen>
<!-- 触摸区域最小尺寸 -->
<dimen name="touch_min_size">40dp</dimen>
<!-- 图标 -->
<dimen name="icon_sm">16dp</dimen>
<dimen name="icon_md">24dp</dimen>
<dimen name="icon_lg">32dp</dimen>
</resources>

View File

@@ -0,0 +1,3 @@
<resources>
<string name="app_name">XqWatch</string>
</resources>

View File

@@ -0,0 +1,42 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- ===== ActionButton 基础样式 ===== -->
<style name="ActionButton">
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">@dimen/button_height</item>
<item name="android:gravity">center</item>
<item name="android:textColor">@color/white</item>
<item name="android:textSize">@dimen/text_button</item>
<item name="android:textStyle">bold</item>
</style>
<!-- 主色按钮(默认) -->
<style name="ActionButton.Primary">
<item name="android:background">@color/action_primary</item>
</style>
<!-- 成功按钮(确认/完成) -->
<style name="ActionButton.Success">
<item name="android:background">@color/success</item>
</style>
<!-- 危险按钮(取消/撤销) -->
<style name="ActionButton.Danger">
<item name="android:background">@color/error</item>
</style>
<!-- 警告按钮(抢单) -->
<style name="ActionButton.Warning">
<item name="android:background">@color/warning</item>
</style>
<!-- 灰色按钮(返回/次要操作) -->
<style name="ActionButton.Grey">
<item name="android:background">@color/grey_button</item>
</style>
<!-- 半宽按钮(两个并排时使用) -->
<style name="ActionButton.Half">
<item name="android:layout_width">@dimen/button_half_width</item>
</style>
</resources>

View File

@@ -0,0 +1,29 @@
<resources xmlns:tools="http://schemas.android.com/tools">
<!-- 应用主题:黑底全屏、无 ActionBar、无窗口动画 -->
<style name="Base.Theme.XqWatch" parent="Theme.Material3.DayNight.NoActionBar">
<!-- 背景色 -->
<item name="android:windowBackground">@color/background</item>
<item name="android:colorBackground">@color/background</item>
<!-- 主题色 -->
<item name="colorPrimary">@color/primary</item>
<item name="colorOnPrimary">@color/white</item>
<!-- 全屏(隐藏状态栏/导航栏) -->
<item name="android:windowFullscreen">true</item>
<item name="windowNoTitle">true</item>
<!-- 禁用窗口动画(手表性能优先) -->
<item name="android:windowAnimationStyle">@null</item>
<!-- 文字颜色 -->
<item name="android:textColorPrimary">@color/text_primary</item>
<item name="android:textColorSecondary">@color/text_secondary</item>
<item name="android:textColorHint">@color/text_placeholder</item>
<!-- 固定竖屏 -->
<item name="android:screenOrientation">portrait</item>
</style>
<style name="Theme.XqWatch" parent="Base.Theme.XqWatch" />
</resources>