docs(creator): 후원 탭 Phase 1 검증을 기록한다
This commit is contained in:
@@ -127,7 +127,7 @@
|
||||
|
||||
### Phase 1: 기존 구조 확인과 작업 경계 고정
|
||||
|
||||
- [ ] **Task 1.1: Donation 탭 placeholder 연결 지점 확인**
|
||||
- [x] **Task 1.1: Donation 탭 placeholder 연결 지점 확인**
|
||||
- 확인 파일:
|
||||
- `app/src/main/java/kr/co/vividnext/sodalive/v2/creator/channel/CreatorChannelPagerAdapter.kt`
|
||||
- `app/src/main/java/kr/co/vividnext/sodalive/v2/creator/channel/model/CreatorChannelHomeUiModels.kt`
|
||||
@@ -139,9 +139,9 @@
|
||||
- 실행: `rg -n "CreatorChannelTab\\.Donation|CreatorChannelPlaceholderFragment|createFragment" app/src/main/java/kr/co/vividnext/sodalive/v2/creator/channel app/src/test/java/kr/co/vividnext/sodalive/v2/creator/channel`
|
||||
- 기대 결과: Donation placeholder와 관련 테스트 갱신 지점이 확인된다.
|
||||
- 검증 기록:
|
||||
- 미실행. 구현 시 기록한다.
|
||||
- 2026-06-22: `rg -n "CreatorChannelTab\\.Donation|CreatorChannelPlaceholderFragment|createFragment" app/src/main/java/kr/co/vividnext/sodalive/v2/creator/channel app/src/test/java/kr/co/vividnext/sodalive/v2/creator/channel` 실행. `CreatorChannelPagerAdapter.createFragment()`에서 `Home/Live/Audio/Series/Community/FanTalk`만 실제 Fragment로 연결되고 `Donation`은 `else -> CreatorChannelPlaceholderFragment.newInstance(tab)` 경로를 타는 것을 확인했다. `CreatorChannelPagerAdapterTest`도 현재 실제 Fragment 탭 외 나머지는 placeholder로 유지된다는 기대를 가진다. 향후 교체 위치는 `CreatorChannelPagerAdapter.kt`의 `when (tab)` 분기다.
|
||||
|
||||
- [ ] **Task 1.2: 기존 후원 dialog와 홈 후원 성공 처리 확인**
|
||||
- [x] **Task 1.2: 기존 후원 dialog와 홈 후원 성공 처리 확인**
|
||||
- 확인 파일:
|
||||
- `app/src/main/java/kr/co/vividnext/sodalive/v2/creator/channel/CreatorChannelActivity.kt`
|
||||
- `app/src/main/java/kr/co/vividnext/sodalive/v2/creator/channel/CreatorChannelHomeFragment.kt`
|
||||
@@ -155,9 +155,9 @@
|
||||
- 실행: `rg -n "onCreatorChannelDonationClicked|LiveRoomDonationDialog|postChannelDonation|SharedPreferenceManager.can" app/src/main/java/kr/co/vividnext/sodalive/v2/creator/channel`
|
||||
- 기대 결과: 홈 후원 dialog 옵션, repository 위임, can 차감, 홈 재조회 흐름이 확인된다.
|
||||
- 검증 기록:
|
||||
- 미실행. 구현 시 기록한다.
|
||||
- 2026-06-22: `rg -n "onCreatorChannelDonationClicked|LiveRoomDonationDialog|postChannelDonation|SharedPreferenceManager.can" app/src/main/java/kr/co/vividnext/sodalive/v2/creator/channel` 실행. `CreatorChannelActivity.onCreatorChannelDonationClicked()`가 owner가 아닐 때 `LiveRoomDonationDialog`를 `isLiveDonation = true`, `messageMaxLength = 100`, `secretToggleLabelResId = R.string.screen_user_profile_channel_donation_secret`, `applySecretMissionMessageHint = false` 옵션으로 열고, submit 시 `homeActionDelegate?.postChannelDonation(...)`로 위임하는 것을 확인했다. `CreatorChannelHomeViewModel.postChannelDonation()`은 `CreatorChannelRepository.postChannelDonation()` 호출 성공 시 `SharedPreferenceManager.can = (SharedPreferenceManager.can - can).coerceAtLeast(0)`로 차감하고 `loadHome(content.header.creatorId)`로 홈을 재조회한다.
|
||||
|
||||
- [ ] **Task 1.3: 기존 후원 전체보기 Activity 호출 계약 확인**
|
||||
- [x] **Task 1.3: 기존 후원 전체보기 Activity 호출 계약 확인**
|
||||
- 확인 파일:
|
||||
- `app/src/main/java/kr/co/vividnext/sodalive/explorer/profile/donation/UserProfileDonationAllViewActivity.kt`
|
||||
- `app/src/main/java/kr/co/vividnext/sodalive/explorer/profile/UserProfileActivity.kt`
|
||||
@@ -171,9 +171,9 @@
|
||||
- 실행: `rg -n "UserProfileDonationAllViewActivity|EXTRA_USER_ID|creatorId|userId" app/src/main/java/kr/co/vividnext/sodalive/explorer/profile app/src/main/java/kr/co/vividnext/sodalive/v2/creator/channel app/src/main/java/kr/co/vividnext/sodalive/common/Constants.kt`
|
||||
- 기대 결과: 전체보기 Activity 인자 계약과 크리에이터 채널 보유 식별자가 확인된다.
|
||||
- 검증 기록:
|
||||
- 미실행. 구현 시 기록한다.
|
||||
- 2026-06-22: `rg -n "UserProfileDonationAllViewActivity|EXTRA_USER_ID|creatorId|userId" app/src/main/java/kr/co/vividnext/sodalive/explorer/profile app/src/main/java/kr/co/vividnext/sodalive/v2/creator/channel app/src/main/java/kr/co/vividnext/sodalive/common/Constants.kt` 실행. `UserProfileDonationAllViewActivity`는 `intent.getLongExtra(Constants.EXTRA_USER_ID, 0)`를 읽고, 기존 `UserProfileActivity`도 `Intent(..., UserProfileDonationAllViewActivity::class.java)`에 `Constants.EXTRA_USER_ID`로 `userId`를 전달한다. 크리에이터 채널의 `creatorId`도 채널 owner/member 식별자로 사용되고 있어 Phase 6에서 `putExtra(Constants.EXTRA_USER_ID, creatorId)`로 연결 가능한 전제를 확인했다. 추가로 `UserProfileChannelDonationAllViewActivity`도 `Constants.EXTRA_USER_ID`를 받는 채널 후원 목록 전체보기 화면으로 존재함을 확인했다. 현재 계획의 버튼은 `후원 랭킹` 섹션의 `전체보기`이므로 `UserProfileDonationAllViewActivity` 전제는 유지하되, 향후 요구가 후원 내역 전체보기로 바뀌면 `UserProfileChannelDonationAllViewActivity`로 계획을 먼저 갱신해야 한다.
|
||||
|
||||
- [ ] **Task 1.4: 기존 목록 탭 pagination/viewport 패턴 확인**
|
||||
- [x] **Task 1.4: 기존 목록 탭 pagination/viewport 패턴 확인**
|
||||
- 확인 파일:
|
||||
- `app/src/main/java/kr/co/vividnext/sodalive/v2/creator/channel/fantalk/CreatorChannelFanTalkFragment.kt`
|
||||
- `app/src/main/java/kr/co/vividnext/sodalive/v2/creator/channel/fantalk/CreatorChannelFanTalkViewModel.kt`
|
||||
@@ -186,7 +186,7 @@
|
||||
- 실행: `rg -n "requestGeneration|paginationErrorMessage|consumePaginationErrorMessage|ScrolledToBottom|RefreshRequested|ViewportHeightChanged" app/src/main/java/kr/co/vividnext/sodalive/v2/creator/channel`
|
||||
- 기대 결과: FanTalk/Community의 pagination, refresh, viewport 패턴이 확인된다.
|
||||
- 검증 기록:
|
||||
- 미실행. 구현 시 기록한다.
|
||||
- 2026-06-22: `rg -n "requestGeneration|paginationErrorMessage|consumePaginationErrorMessage|ScrolledToBottom|RefreshRequested|ViewportHeightChanged" app/src/main/java/kr/co/vividnext/sodalive/v2/creator/channel` 실행. `CreatorChannelFanTalkViewModel`과 `CreatorChannelCommunityViewModel`이 `requestGeneration`, `paginationErrorMessage`, `consumePaginationErrorMessage()` 패턴을 사용하고, `FIRST_PAGE = 0`, `DEFAULT_PAGE_SIZE = 20` 기준으로 첫 페이지와 pagination을 구분하는 것을 확인했다. Fragment entry는 `onCreatorChannelFanTalkScrolledToBottom()`, `onCreatorChannelFanTalkRefreshRequested()`, `onCreatorChannelFanTalkViewportHeightChanged(minHeight)` 및 Community의 scrolled/refresh 패턴을 확인했다. Activity는 현재 Live/Audio/Series/Community/FanTalk에 대해 하단 스크롤 dispatcher와 load-more 탭 판정을 가지고 있으며, Donation 추가 지점은 `notifyCurrentCreatorChannelTabScrolledToBottom()`, `isCreatorChannelLoadMoreTab()`, `updateCreatorChannelTabViewportHeight()`다.
|
||||
|
||||
### Phase 2: API/DTO/Repository/ViewModel 계약 추가
|
||||
|
||||
|
||||
Reference in New Issue
Block a user