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,57 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- QuTipDialog 布局:提示弹窗(成功/警告/错误)
结构:全屏遮罩 + 居中内容(图标 + 标题 + 描述 + 倒计时返回按钮) -->
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/background">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical"
android:padding="@dimen/spacing_lg">
<!-- 状态图标(成功✓ / 警告! / 错误×) -->
<TextView
android:id="@+id/tipIcon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="48sp"
android:layout_marginBottom="@dimen/spacing_md" />
<!-- 标题文字 -->
<TextView
android:id="@+id/tipTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/text_primary"
android:textSize="@dimen/text_title"
android:textStyle="bold"
android:layout_marginBottom="@dimen/spacing_sm" />
<!-- 描述文字(可选) -->
<TextView
android:id="@+id/tipDesc"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/text_secondary"
android:textSize="@dimen/text_caption"
android:gravity="center"
android:visibility="gone"
android:layout_marginBottom="@dimen/spacing_lg" />
<!-- 倒计时返回按钮(显示"返回 3s" -->
<TextView
android:id="@+id/tipBackBtn"
android:layout_width="@dimen/touch_min_size"
android:layout_height="@dimen/touch_min_size"
android:gravity="center"
android:textColor="@color/text_secondary"
android:textSize="@dimen/text_caption"
android:visibility="gone" />
</LinearLayout>
</FrameLayout>