# Device List Compose UI Change Log Branch: `feature/device-control-compose-ui` ## Summary This branch adds only the Kotlin Jetpack Compose device list page owned by this feature area. The implementation provides a reusable Compose screen that displays the ABox terminal device categories: - Smart socket - Temperature/humidity sensor - Infrared controller This branch intentionally does not modify the app entry point or app shell routing. The app shell, login flow, and detail-feature routing are owned by other feature branches. ## Added Files ### `android/app/src/main/kotlin/com/flagship/abox/manager/ui/devicecontrollist/DeviceListScreen.kt` Adds the device list page. The page displays entries for: - Smart socket - Temperature/humidity sensor - Infrared controller Current scope: - Display the device categories as list entry UI. - Keep the UI in Kotlin Compose. - Expose click callbacks for each device category. - Avoid adding app-shell routing, detail routes, or detail control pages in this branch. Integration API: ```kotlin DeviceListScreen( onSocketClick = { /* route to socket module later */ }, onTemperatureHumidityClick = { /* route to temperature/humidity module later */ }, onInfraredClick = { /* route to infrared controller module later */ }, ) ``` Future integration point: - The app shell or feature owner responsible for routing can host this screen and connect these callbacks to their own routes/modules later. ## Architecture Notes This branch follows the current repository direction: - Kotlin instead of Java - Jetpack Compose instead of XML layouts - Single-Activity UI instead of multiple Activities - Navigation Compose compatibility through external callbacks - Existing design-system wrappers where practical This branch intentionally does not copy the previous Java/XML experiment module into the team repository. ## Scope Intentionally Not Included This branch does not include: - App entry point changes - App shell or login routing changes - A device-control navigation graph file - Socket control screen implementation - Temperature/humidity status screen implementation - Infrared controller screen implementation - Shared detail-control component scaffolding - Direct ABSDK calls from Compose UI - New Java Activity classes - XML layout files - A separate Android module copied from the experiment project - Full session/login integration for device gateway calls - Persistent infrared key storage These should be added by the corresponding feature owners in later branches or follow-up commits after team architecture review. ## Verification - Built and ran `android.app` from Android Studio successfully during local validation. - `:android:app:assembleDebug` completed successfully after trimming the feature scope. ## Files Intended for Commit The intended commit scope is limited to: ```text android/app/src/main/kotlin/com/flagship/abox/manager/ui/devicecontrollist/DeviceListScreen.kt docs/device-control-compose-ui-change-log.md ``` `settings.gradle.kts` is intentionally excluded from this feature commit. Local Gradle/JDK/toolchain setup should be handled on the developer machine and should not modify the team-provided project configuration in this branch. --- # 设备列表 Compose UI 修改说明(中文) 分支:`feature/device-control-compose-ui` ## 概要 本分支只新增当前分工负责的 Kotlin Jetpack Compose 设备列表页面。 设备列表展示的设备类别包括: - 智能插座 - 温湿度传感器 - 红外控制器 本分支故意不修改 App 入口或应用壳路由。程序入口、登录流程和各设备详情模块路由由其他功能分支负责。 ## 新增文件 ### `android/app/src/main/kotlin/com/flagship/abox/manager/ui/devicecontrollist/DeviceListScreen.kt` 新增设备列表页面。 页面展示三个设备入口: - 智能插座 - 温湿度传感器 - 红外控制器 当前实现范围: - 展示设备类别入口 UI。 - 保持 Kotlin Compose 实现。 - 为每个设备类别暴露点击回调。 - 不在本分支实现 App 入口接入、设备详情 route 或设备控制页面。 对接 API: ```kotlin DeviceListScreen( onSocketClick = { /* 后续跳转到智能插座模块 */ }, onTemperatureHumidityClick = { /* 后续跳转到温湿度模块 */ }, onInfraredClick = { /* 后续跳转到红外控制器模块 */ }, ) ``` 后续接入点: - 由负责 App shell 或对应设备模块的同学,在各自分支中挂载这个页面,并把这些回调连接到他们自己的详情路由或功能模块。 ## 架构说明 本分支遵循当前小组仓库的技术方向: - 使用 Kotlin,而不是 Java。 - 使用 Jetpack Compose,而不是 XML layout。 - 使用单 Activity 架构,而不是多个 Activity 跳转。 - 通过外部回调保持与 Navigation Compose 的兼容性。 - 尽量复用已有 design system 中的组件封装。 本分支没有把之前个人实验项目中的 Java/XML 模块直接复制进团队仓库。 ## 本分支未包含的内容 本分支暂不包含: - App 入口修改。 - App shell 或登录路由修改。 - 设备控制 navigation graph 文件。 - 智能插座控制页面。 - 温湿度状态页面。 - 红外控制器操作页面。 - 设备详情控制页面共用组件。 - Compose UI 中直接调用 ABSDK。 - 新增 Java Activity。 - 新增 XML layout。 - 从个人实验项目复制独立 Android 模块。 - 完整登录/session 与设备 gateway 的联动。 - 红外学习按键的持久化存储。 这些内容建议由对应模块负责人在后续 branch 或后续 commit 中继续实现。 ## 验证 - 本地验证过程中已从 Android Studio 成功 build/run `android.app`。 - 修剪职责范围后,`:android:app:assembleDebug` 构建成功。 ## 预期提交范围 本次提交范围应限制在: ```text android/app/src/main/kotlin/com/flagship/abox/manager/ui/devicecontrollist/DeviceListScreen.kt docs/device-control-compose-ui-change-log.md ``` `settings.gradle.kts` 当前不属于本次设备列表 UI 功能提交范围。本地 Gradle/JDK/toolchain 配置应在开发者本机处理,不应修改团队提供的项目配置文件。