feat: 设备绑定与配对模块

新增:
- SplashFragment 启动分发(初始化+绑定检查+导航到Home或Bind)
- BindFragment 二维码配对页面(ZXing生成QR码+MQTT绑定监听)
- WatchBindInfo 绑定信息数据类

修改:
- nav_main.xml startDestination改为SplashFragment,添加导航action
- HomeFragment 移除初始化逻辑到Splash,添加MQTT解绑处理
- CommonApi getWatchByImei返回类型改为WatchBindInfo

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
dongliang
2026-04-27 16:23:37 +09:30
parent a3c1f1d632
commit 1b61abb380
8 changed files with 389 additions and 32 deletions

View File

@@ -1,9 +1,45 @@
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
<!-- BindFragment二维码配对页面全屏无 NavBar -->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/background">
android:background="@color/background"
android:gravity="center"
android:orientation="vertical"
android:padding="@dimen/safe_area_left">
<!-- TODO: 二维码 + 设备信息 -->
<!-- 二维码图片 -->
<ImageView
android:id="@+id/ivQrCode"
android:layout_width="160dp"
android:layout_height="160dp"
android:layout_marginBottom="@dimen/spacing_lg"
android:contentDescription="配对二维码" />
</FrameLayout>
<!-- 标题 -->
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="扫码绑定手表"
android:textColor="@color/text_primary"
android:textSize="@dimen/text_title"
android:textStyle="bold"
android:layout_marginBottom="@dimen/spacing_md" />
<!-- 说明文字 -->
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="1. 下载小趣智品APP"
android:textColor="@color/text_secondary"
android:textSize="@dimen/text_caption"
android:layout_marginBottom="@dimen/spacing_xs" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="2. 在APP中扫此码添加手表"
android:textColor="@color/text_secondary"
android:textSize="@dimen/text_caption" />
</LinearLayout>

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- SplashFragment启动分发页纯逻辑无 UI黑色背景 -->
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/background" />