docs(chat): 타이틀바 액션 간격 검증을 기록한다
This commit is contained in:
@@ -425,9 +425,37 @@
|
||||
|
||||
---
|
||||
|
||||
### Phase 8: 통합 검증과 문서 기록
|
||||
### Phase 8: 탭 전환 및 첫 페이지 로딩 시 스크롤 최상단 이동 처리
|
||||
|
||||
- [ ] **Task 8.1: 리소스/컴파일 검증**
|
||||
- [x] **Task 8.1: 스크롤 최상단 이동 기능 검증을 위한 RED 테스트 작성**
|
||||
- `ChatMainFragmentLayoutTest.kt`에 탭 전환 시 및 첫 번째 페이지 로드 시 RecyclerView의 scrollToPosition(0)이 호출되는지 검증하는 테스트 코드를 추가한다.
|
||||
- run_test로 검증하여 RED 상태를 확인한다.
|
||||
- [x] **Task 8.2: ChatMainFragment.kt의 탭 전환 및 첫 페이지 로딩 시 스크롤 최상단 이동 구현**
|
||||
- `setOnTabSelectedListener` 내부와 `bindViewModel`의 `ChatRoomListUiState.Content` (isAppending = false인 경우)에 `scrollToPosition(0)` 또는 적절한 스크롤 탑 이동 처리를 추가한다.
|
||||
- run_test를 실행해 정상적으로 PASS(GREEN)하는지 확인한다.
|
||||
- [x] **Task 8.3: 전체 통합 테스트 검증 및 ktlint 검사**
|
||||
- `:app:mergeDebugResources`, `:app:compileDebugKotlin`, `:app:ktlintCheck` 및 전체 테스트를 돌려 이상이 없는지 검증한다.
|
||||
- [x] **Task 8.4: 최종 Verification Log 작성 및 제출**
|
||||
- 작업 결과를 plan-task.md 및 prd.md에 기록한다.
|
||||
|
||||
---
|
||||
|
||||
### Phase 9: 채팅 타이틀바 우측 액션 메뉴 이미지 간격 조정
|
||||
|
||||
- [x] **Task 9.1: dimens 리소스 및 타이틀바 구조 분석**
|
||||
- `dimens.xml` 내 `spacing_14` 리소스 확인 및 `ChatMainFragment.kt`의 `setupTitleBar()`에 있는 동적 아이콘 추가 코드 구조 분석.
|
||||
- [x] **Task 9.2: 타이틀바 우측 액션 메뉴 이미지 마진 적용**
|
||||
- `ChatMainFragment.kt`의 `setupTitleBar()`에서 검색 `ImageView`를 추가할 때 `LinearLayout.LayoutParams`를 생성하여 `marginStart` 값을 `@dimen/spacing_14`로 동적으로 세팅.
|
||||
- [x] **Task 9.3: Layout 유닛 테스트 검증**
|
||||
- `ChatMainFragmentLayoutTest.kt`에 `LinearLayout.LayoutParams` 사용 및 `marginStart = resources.getDimensionPixelSize(R.dimen.spacing_14)` 설정 여부를 확인하는 유닛 테스트 추가 및 run_test 수행.
|
||||
- [x] **Task 9.4: 최종 Verification Log 작성 및 제출**
|
||||
- 작업 결과를 plan-task.md 및 prd.md에 기록하고 검증 기록 누적.
|
||||
|
||||
---
|
||||
|
||||
### Phase 10: 통합 검증과 문서 기록
|
||||
|
||||
- [ ] **Task 10.1: 리소스/컴파일 검증**
|
||||
- 실행:
|
||||
- `./gradlew :app:mergeDebugResources`
|
||||
- `./gradlew :app:compileDebugKotlin`
|
||||
@@ -435,7 +463,7 @@
|
||||
- 모든 신규 layout/drawable/string/binding 생성 성공
|
||||
- Kotlin compile 성공
|
||||
|
||||
- [ ] **Task 8.2: 단위 테스트 검증**
|
||||
- [ ] **Task 10.2: 단위 테스트 검증**
|
||||
- 실행:
|
||||
- `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.chat.*"`
|
||||
- `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.widget.*CapsuleTab*"`
|
||||
@@ -443,11 +471,11 @@
|
||||
- 채팅 탭 filter/formatter/mapper/ViewModel/Adapter/Layout 테스트 통과
|
||||
- CapsuleTab 기존 테스트와 색상 보정 테스트 통과
|
||||
|
||||
- [ ] **Task 8.3: ktlint 검증**
|
||||
- [ ] **Task 10.3: ktlint 검증**
|
||||
- 실행: `./gradlew :app:ktlintCheck`
|
||||
- 기대 결과: ktlint error 없음
|
||||
|
||||
- [ ] **Task 8.4: 검증 기록 누적**
|
||||
- [ ] **Task 10.4: 검증 기록 누적**
|
||||
- Modify: `docs/20260609_채팅_탭_페이지/plan-task.md`
|
||||
- Modify: `docs/20260609_채팅_탭_페이지/prd.md`
|
||||
- 기록:
|
||||
@@ -504,18 +532,7 @@
|
||||
- 2026-06-10: Phase 7 코드리뷰 및 통합 검증을 완료했다. `CapsuleTabBarView.kt`에서 `ViewGroup` 임포트 누락 및 `LayoutParams.WRAP_CONTENT` 오분석에 따른 빌드 에러를 수정(`ViewGroup.LayoutParams.WRAP_CONTENT`로 명시적 선언 및 임포트 추가)하였으며, 이후 `run_test`를 통해 `widget` 및 `main.chat` 관련 211개 유닛 테스트가 모두 성공적으로(GREEN) 작동함을 확인했다. 전체적인 Phase 7의 코드 구성(ChatMainFragment, 뷰 바인딩, 페이지네이션 롤링 스크롤, AI 룸 클릭 액션)이 설계 명세 및 Figma 가이드라인에 완벽히 부합함을 검증했다.
|
||||
- 2026-06-10: CapsuleTabBarView의 탭 전환 시 또는 첫 번째 페이지 로드 시(isAppending = false) RecyclerView의 스크롤을 최상단(position 0)으로 이동시키는 추가 요구사항에 맞춰 Plan-Task에 Phase 9를 신설하고 구현 및 검증을 마쳤다.
|
||||
- 2026-06-10: Phase 9의 Task 9.1(RED 테스트), Task 9.2(최상단 스크롤 구현), Task 9.3(통합 유닛 테스트)을 완료했다. 탭 전환 시 `binding.rvChatRooms.scrollToPosition(0)`이 실행되고, `bindViewModel`에서 첫 페이지 로딩 시(`!state.isAppending`) 동일하게 `scrollToPosition(0)`이 정상 호출되는지 유닛 테스트로 검증하여 GREEN 상태로 통과시켰다.
|
||||
- 2026-06-10: 채팅 타이틀바 우측 액션 메뉴 이미지 간격 조정 요구사항을 해결하기 위해 Plan-Task에 Phase 10을 신설하고 구현 및 검증을 마쳤다. `dimens.xml`에 정의된 `@dimen/spacing_14` 리소스를 적용하여 하드코딩 없이 간격을 14dp로 안전하게 맞췄으며, `ChatMainFragmentLayoutTest.kt` 유닛 테스트를 업데이트하여 검증을 통과시켰다.
|
||||
- 2026-06-10: 사용자 피드백에 따라 통합 검증 Phase가 마지막에 오도록 Plan-Task 순서를 정리했다. 기존 Phase 9(탭 전환/첫 페이지 로딩 시 스크롤 최상단 이동 처리)를 Phase 8로, 기존 Phase 10(채팅 타이틀바 우측 액션 메뉴 이미지 간격 조정)을 Phase 9로 한 단계씩 당기고, 기존 Phase 8(통합 검증과 문서 기록)을 마지막 Phase 10으로 이동했다. 문서 순서 정정만 수행했으며 빌드/테스트는 실행하지 않았다.
|
||||
|
||||
---
|
||||
|
||||
### Phase 9: 탭 전환 및 첫 페이지 로딩 시 스크롤 최상단 이동 처리
|
||||
|
||||
- [x] **Task 9.1: 스크롤 최상단 이동 기능 검증을 위한 RED 테스트 작성**
|
||||
- `ChatMainFragmentLayoutTest.kt`에 탭 전환 시 및 첫 번째 페이지 로드 시 RecyclerView의 scrollToPosition(0)이 호출되는지 검증하는 테스트 코드를 추가한다.
|
||||
- run_test로 검증하여 RED 상태를 확인한다.
|
||||
- [x] **Task 9.2: ChatMainFragment.kt의 탭 전환 및 첫 페이지 로딩 시 스크롤 최상단 이동 구현**
|
||||
- `setOnTabSelectedListener` 내부와 `bindViewModel`의 `ChatRoomListUiState.Content` (isAppending = false인 경우)에 `scrollToPosition(0)` 또는 적절한 스크롤 탑 이동 처리를 추가한다.
|
||||
- run_test를 실행해 정상적으로 PASS(GREEN)하는지 확인한다.
|
||||
- [x] **Task 9.3: 전체 통합 테스트 검증 및 ktlint 검사**
|
||||
- `:app:mergeDebugResources`, `:app:compileDebugKotlin`, `:app:ktlintCheck` 및 전체 테스트를 돌려 이상이 없는지 검증한다.
|
||||
- [x] **Task 9.4: 최종 Verification Log 작성 및 제출**
|
||||
- 작업 결과를 plan-task.md 및 prd.md에 기록한다.
|
||||
|
||||
Reference in New Issue
Block a user