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

@@ -2,19 +2,56 @@
<navigation xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/nav_main"
app:startDestination="@id/homeFragment">
app:startDestination="@id/splashFragment">
<!-- 启动分发页(检查绑定状态 → Home 或 Bind -->
<fragment
android:id="@+id/splashFragment"
android:name="com.xiaoqu.watch.ui.common.SplashFragment"
android:label="启动">
<!-- splash → home已绑定 -->
<action
android:id="@+id/action_splash_to_home"
app:destination="@id/homeFragment"
app:popUpTo="@id/splashFragment"
app:popUpToInclusive="true" />
<!-- splash → bind未绑定 -->
<action
android:id="@+id/action_splash_to_bind"
app:destination="@id/bindFragment"
app:popUpTo="@id/splashFragment"
app:popUpToInclusive="true" />
</fragment>
<!-- 首页(含 ViewPager2 左右滑动:设置页 / 主页) -->
<fragment
android:id="@+id/homeFragment"
android:name="com.xiaoqu.watch.ui.home.HomeFragment"
android:label="首页" />
android:label="首页">
<!-- home → bind解绑后 -->
<action
android:id="@+id/action_home_to_bind"
app:destination="@id/bindFragment"
app:popUpTo="@id/homeFragment"
app:popUpToInclusive="true" />
</fragment>
<!-- 设备绑定页(全屏二维码) -->
<fragment
android:id="@+id/bindFragment"
android:name="com.xiaoqu.watch.ui.bind.BindFragment"
android:label="设备绑定" />
android:label="设备绑定">
<!-- bind → home绑定成功后 -->
<action
android:id="@+id/action_bind_to_home"
app:destination="@id/homeFragment"
app:popUpTo="@id/bindFragment"
app:popUpToInclusive="true" />
</fragment>
<!-- 任务列表 -->
<fragment