69 lines
1.6 KiB
Markdown
69 lines
1.6 KiB
Markdown
---
|
|
ui_doc_type: component
|
|
component_id: install-cta
|
|
status: 구현됨
|
|
source_evidence:
|
|
- type: code
|
|
path: lib/src/features/builds/builds_page.dart
|
|
notes: "_InstallCta와 _DownloadState"
|
|
- type: docs
|
|
path: README.md
|
|
notes: "APK 다운로드 및 adb install handoff scope"
|
|
- type: user
|
|
path: null
|
|
notes: "agent-ui 생성 요청"
|
|
---
|
|
|
|
# Install CTA
|
|
|
|
Component ID: `install-cta`
|
|
|
|
Status: `구현됨`
|
|
|
|
## Source Evidence
|
|
|
|
| Type | Path | Notes |
|
|
|------|------|-------|
|
|
| code | `lib/src/features/builds/builds_page.dart` | `_InstallCta`와 `_DownloadState` |
|
|
| docs | `README.md` | APK 다운로드 및 `adb install` handoff scope |
|
|
| user | 없음 | agent-ui 생성 요청 |
|
|
|
|
## Purpose
|
|
|
|
선택한 APK artifact를 다운로드/stage하고 디바이스 설치 흐름으로 넘긴다.
|
|
|
|
## Used By
|
|
|
|
- `builds`: `builds.install-cta`
|
|
|
|
## Anatomy
|
|
|
|
- state icon
|
|
- title/status label
|
|
- artifact/build metadata
|
|
- download progress label and linear progress
|
|
- cancel/retry/install button
|
|
|
|
## Variants
|
|
|
|
- idle: 설치 준비 또는 다운로드 취소됨
|
|
- downloading: received/total bytes와 cancel action
|
|
- verified: staged APK path와 install action
|
|
- failed: error message와 retry action
|
|
|
|
## States
|
|
|
|
- default
|
|
- loading
|
|
- empty: 해당 없음
|
|
- error
|
|
- disabled
|
|
|
|
## Rules
|
|
|
|
- downloader/stager가 있으면 먼저 다운로드를 수행하고, 검증된 staged APK만 install handoff에 넘긴다.
|
|
- 다운로드 실패 메시지는 한 줄로 줄이고 retry action을 유지한다.
|
|
|
|
## Decision History
|
|
|
|
- 2026-06-25: APK download/install handoff CTA를 component로 기록했다.
|