docs(content): 전체 탭 후속 요구를 기록한다
This commit is contained in:
@@ -478,9 +478,97 @@
|
||||
- 2026-06-25: PASS. sort popup이 기존 `CreatorChannelSortPopup` 형태로 열리고 `ContentSort` 옵션 `최신순`, `인기순`, `소장순`, `높은 가격순`, `낮은 가격순`이 표시됨을 캡처 `sodalive_phase6_sort_popup.png`와 hierarchy로 확인했다.
|
||||
- 2026-06-25: BLOCKED. `GET /api/v2/audio/contents`가 수동 검증 환경에서 `HTTP 404`를 반환해 실제 오디오/시리즈 카드 3열 grid 데이터 표시, 하단 스크롤 append, 시리즈 성인 배지의 실데이터 표시는 확인하지 못했다. 해당 항목은 단위 테스트와 source/layout 검증으로 대체 확인했다.
|
||||
|
||||
### Phase 7: 전체 탭 sort-bar와 정렬 조건 후속 수정
|
||||
|
||||
- [x] **Task 7.1: sort-bar 전체 개수 표시 제거**
|
||||
- 수정:
|
||||
- `app/src/main/res/layout/fragment_v2_main_content.xml`
|
||||
- `app/src/main/java/kr/co/vividnext/sodalive/v2/main/content/ContentMainFragment.kt`
|
||||
- `app/src/test/java/kr/co/vividnext/sodalive/v2/main/content/ContentMainFragmentSourceTest.kt`
|
||||
- 작업:
|
||||
- sort-bar 좌측에는 `전체` 라벨만 표시하고 `totalCount` TextView와 binding 업데이트를 제거한다.
|
||||
- `MainContentAllTabUiState.totalCount`는 Empty 판단과 상태 보존을 위해 유지하되 화면에는 표시하지 않는다.
|
||||
- 검증:
|
||||
- Run: `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.content.ContentMainFragmentSourceTest"`
|
||||
- Expected: 전체 탭 layout/source에서 total count 표시 계약이 제거된다.
|
||||
- 검증 기록:
|
||||
- 2026-07-10: PASS. `tv_content_all_total_count` layout 제거, `binding.tvContentAllTotalCount.text` source 제거를 반영했고, `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.content.*"`에서 `ContentMainFragmentSourceTest` 포함 전체 탭 패키지 테스트 성공.
|
||||
|
||||
- [x] **Task 7.2: 전체 탭 정렬 옵션 노출 정책 적용**
|
||||
- 수정:
|
||||
- `app/src/main/java/kr/co/vividnext/sodalive/v2/main/content/model/MainContentAllTabUiModels.kt`
|
||||
- `app/src/main/java/kr/co/vividnext/sodalive/v2/main/content/ContentAllTabViewModel.kt`
|
||||
- `app/src/main/java/kr/co/vividnext/sodalive/v2/main/content/ContentMainFragment.kt`
|
||||
- `app/src/main/java/kr/co/vividnext/sodalive/v2/creator/channel/ui/CreatorChannelSortPopup.kt`
|
||||
- `app/src/test/java/kr/co/vividnext/sodalive/v2/main/content/ContentAllTabViewModelTest.kt`
|
||||
- `app/src/test/java/kr/co/vividnext/sodalive/v2/main/content/ContentMainFragmentSourceTest.kt`
|
||||
- 작업:
|
||||
- 전체 탭 정렬 옵션에서 `ContentSort.OWNED`를 제외한다.
|
||||
- `MainContentAllType.FREE` 선택 시 `ContentSort.PRICE_HIGH`, `ContentSort.PRICE_LOW`를 제외한다.
|
||||
- 무료 타입에서 가격 정렬이 외부 선택 또는 이전 상태로 유입되면 `LATEST`로 보정해 표시/요청 조건이 일치하게 한다.
|
||||
- 기존 `CreatorChannelSortPopup` 사용처 영향 방지를 위해 옵션 목록은 기본값을 유지하고 전체 탭에서만 필터 목록을 전달한다.
|
||||
- 검증:
|
||||
- Run: `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.content.*"`
|
||||
- Expected: 전체 탭 정렬 option/source/ViewModel 테스트가 PASS한다.
|
||||
- 검증 기록:
|
||||
- 2026-07-10: PASS. `MainContentAllType.contentAllSortOptions()`와 `normalizeContentAllSort()`를 추가해 전체 탭 정렬에서 `OWNED`를 제외하고, `FREE` 타입에서는 `PRICE_HIGH`, `PRICE_LOW`를 제외했다.
|
||||
- 2026-07-10: PASS. `ContentAllTabViewModelTest`에 외부 FREE 가격 정렬 보정, 무료 타입 변경 시 이전 가격 정렬 보정, 소장순 보정 테스트를 추가했다.
|
||||
- 2026-07-10: PASS. `MainContentAllTabMapperTest`에 전체 탭 정렬 옵션의 소장순 제외와 무료 타입 가격순 제외 테스트를 추가했다.
|
||||
- 2026-07-10: PASS. `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.content.*"` 성공.
|
||||
|
||||
- [x] **Task 7.3: 후속 수정 통합 검증**
|
||||
- 실행:
|
||||
- `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.content.*"`
|
||||
- `./gradlew :app:mergeDebugResources`
|
||||
- `./gradlew :app:compileDebugKotlin`
|
||||
- `./gradlew :app:ktlintCheck`
|
||||
- `git diff --check`
|
||||
- 기대 결과:
|
||||
- 전체 탭 후속 수정 관련 테스트, 리소스 merge, Kotlin compile, ktlint, whitespace 검증이 모두 성공한다.
|
||||
- 검증 기록:
|
||||
- 2026-07-10: PASS. `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.content.*"` 성공.
|
||||
- 2026-07-10: PASS. `./gradlew :app:mergeDebugResources` 성공. 최초 일반 실행은 Gradle wrapper lock 파일 접근이 샌드박스에서 차단되어 실패했고, 권한 상승 실행으로 재검증했다.
|
||||
- 2026-07-10: PASS. `./gradlew :app:compileDebugKotlin` 성공.
|
||||
- 2026-07-10: PASS. `./gradlew :app:ktlintCheck` 성공. `.editorconfig disabled_rules` deprecation warning은 기존 설정 경고로 남아 있다.
|
||||
- 2026-07-10: PASS. `git diff --check` 성공.
|
||||
|
||||
- [x] **Task 7.4: sort-bar 좌측 전체 라벨 제거와 정렬 위치 유지**
|
||||
- 수정:
|
||||
- `app/src/main/res/layout/fragment_v2_main_content.xml`
|
||||
- `app/src/test/java/kr/co/vividnext/sodalive/v2/main/content/ContentMainFragmentSourceTest.kt`
|
||||
- 작업:
|
||||
- `tv_content_all_total_label`을 제거한다.
|
||||
- 정렬 버튼은 기존처럼 sort-bar 우측에 위치하도록 spacer를 유지한다.
|
||||
- 검증:
|
||||
- Run: `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.content.ContentMainFragmentSourceTest"`
|
||||
- Expected: 전체 탭 sort-bar에 좌측 `전체` 라벨 id/text가 없고, 정렬 버튼 우측 배치 구조가 유지된다.
|
||||
- 검증 기록:
|
||||
- 2026-07-10: PASS. `tv_content_all_total_label`을 제거하고 같은 위치 유지용 `Space`를 추가했다.
|
||||
- 2026-07-10: PASS. `ContentMainFragmentSourceTest`에 label id/text 제거와 spacer/정렬 버튼 구조 유지 계약을 반영했다.
|
||||
- 2026-07-10: PASS. `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.content.ContentMainFragmentSourceTest"` 성공.
|
||||
- 2026-07-10: PASS. `./gradlew :app:ktlintCheck` 성공. `.editorconfig disabled_rules` deprecation warning은 기존 설정 경고로 남아 있다.
|
||||
- 2026-07-10: PASS. `git diff --check` 성공.
|
||||
|
||||
---
|
||||
|
||||
## Verification Log
|
||||
- 2026-07-10 Phase 7 전체 탭 sort-bar/정렬 조건 후속 수정 검증:
|
||||
- 수정 완료: sort-bar의 `tv_content_all_total_count`와 `ContentMainFragment`의 total count binding 업데이트를 제거해 화면에 콘텐츠 전체 개수가 표시되지 않도록 했다.
|
||||
- 수정 완료: 전체 탭 전용 정렬 옵션에서 `ContentSort.OWNED`를 제외하고, `FREE` 타입에서는 `ContentSort.PRICE_HIGH`, `ContentSort.PRICE_LOW`도 제외했다.
|
||||
- 수정 완료: 외부 선택 또는 이전 타입 상태에서 금지 정렬이 유입되면 `ContentSort.LATEST`로 보정하도록 `ContentAllTabViewModel`에 적용했다.
|
||||
- PASS: `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.content.*"`
|
||||
- PASS: `./gradlew :app:mergeDebugResources`
|
||||
- PASS: `./gradlew :app:compileDebugKotlin`
|
||||
- PASS: `./gradlew :app:ktlintCheck`
|
||||
- PASS: `git diff --check`
|
||||
- 참고: `./gradlew :app:mergeDebugResources`는 최초 일반 실행에서 Gradle wrapper lock 파일 접근이 샌드박스에서 차단되어 실패했고, 권한 상승 실행으로 재검증해 성공했다.
|
||||
- 참고: `ktlintCheck`의 `.editorconfig disabled_rules` deprecation warning과 Gradle deprecation warning은 기존 경고로 이번 변경과 무관하다.
|
||||
- 2026-07-10 Phase 7 sort-bar 좌측 전체 라벨 추가 제거 검증:
|
||||
- 수정 완료: `fragment_v2_main_content.xml`에서 `tv_content_all_total_label`을 제거하고, `Space`에 `layout_weight="1"`을 적용해 정렬 버튼의 우측 위치를 유지했다.
|
||||
- PASS: `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.content.ContentMainFragmentSourceTest"`
|
||||
- PASS: `./gradlew :app:ktlintCheck`
|
||||
- PASS: `git diff --check`
|
||||
- 참고: `ktlintCheck`의 `.editorconfig disabled_rules` deprecation warning은 기존 경고로 이번 변경과 무관하다.
|
||||
- 문서 작성 시점에는 구현 전이므로 실행한 빌드/테스트가 없다.
|
||||
- 2026-06-25 Phase 1~3 구현 검증:
|
||||
- PASS: `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.content.MainContentAllDayOfWeekMapperTest"`
|
||||
|
||||
Reference in New Issue
Block a user