diff --git a/app/src/main/java/kr/co/vividnext/sodalive/explorer/profile/UserProfileActivity.kt b/app/src/main/java/kr/co/vividnext/sodalive/explorer/profile/UserProfileActivity.kt index 3a086c30..1a9bfc67 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/explorer/profile/UserProfileActivity.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/explorer/profile/UserProfileActivity.kt @@ -66,6 +66,7 @@ import kr.co.vividnext.sodalive.extensions.moneyFormat import kr.co.vividnext.sodalive.live.LiveViewModel import kr.co.vividnext.sodalive.live.reservation.complete.LiveReservationCompleteActivity import kr.co.vividnext.sodalive.live.room.LiveRoomActivity +import kr.co.vividnext.sodalive.live.room.detail.LiveRoomDetailFragment import kr.co.vividnext.sodalive.live.room.dialog.LivePaymentDialog import kr.co.vividnext.sodalive.live.room.dialog.LiveRoomPasswordDialog import kr.co.vividnext.sodalive.live.room.donation.LiveRoomDonationDialog @@ -252,8 +253,8 @@ class UserProfileActivity : BaseActivity( private fun setupLiveView() { val recyclerView = binding.layoutUserProfileLive.rvLive liveAdapter = UserProfileLiveAdapter( - onClickParticipant = { enterLiveRoom(roomId = it.roomId) }, - onClickReservation = { reservationRoom(roomId = it.roomId) } + onClickParticipant = { showLiveRoomDetail(roomId = it.roomId) }, + onClickReservation = { showLiveRoomDetail(roomId = it.roomId) } ) recyclerView.layoutManager = LinearLayoutManager( @@ -286,6 +287,24 @@ class UserProfileActivity : BaseActivity( recyclerView.adapter = liveAdapter } + private fun showLiveRoomDetail(roomId: Long) { + val detailFragment = LiveRoomDetailFragment( + roomId, + onClickParticipant = { enterLiveRoom(roomId = roomId) }, + onClickReservation = { reservationRoom(roomId = roomId) }, + onClickModify = {}, + onClickStart = {}, + onClickCancel = {} + ) + + if (detailFragment.isAdded) return + + detailFragment.show( + supportFragmentManager, + detailFragment.tag + ) + } + private fun setupDonationView() { binding.layoutUserProfileDonation.tvAll.setOnClickListener { val intent = Intent(applicationContext, UserProfileDonationAllViewActivity::class.java) diff --git a/docs/20260306_유저프로필라이브상세페이지이동수정.md b/docs/20260306_유저프로필라이브상세페이지이동수정.md new file mode 100644 index 00000000..dab27186 --- /dev/null +++ b/docs/20260306_유저프로필라이브상세페이지이동수정.md @@ -0,0 +1,28 @@ +# 유저 프로필 라이브 섹션 아이템 터치 시 상세 페이지 진입으로 수정 + +- [x] 요구사항 및 영향 범위 확인 (`UserProfileActivity`, `UserProfileLiveAdapter`, 라이브 상세 진입 패턴) +- [x] 라이브 카드 터치 동작을 즉시 참여/예약 처리 대신 라이브 상세 페이지(`LiveRoomDetailFragment`) 노출로 변경 +- [x] 변경 파일 정적 진단 및 관련 테스트/빌드 실행 +- [x] 검증 결과를 본 문서에 누적 기록 + +## 검증 기록 + +### 2026-03-06 17:00 (KST) +- 무엇/왜/어떻게: 요청사항을 구현 단위로 분해하고, 기존 라이브 리스트 화면(`LiveNowAllActivity`, `LiveReservationAllActivity`)의 카드 터치 시 `LiveRoomDetailFragment`를 띄우는 패턴을 확인했다. 이를 `UserProfileActivity` 라이브 섹션에 동일 적용하기로 결정했다. +- 실행 명령 및 결과: + - `grep` 기반 코드 탐색으로 라이브 상세 진입/콜백 연결 지점 확인 완료 + - 구현/검증 명령은 변경 후 본 문서에 누적 기록 예정 + +### 2026-03-06 17:04 (KST) +- 무엇/왜/어떻게: `UserProfileActivity.setupLiveView`의 `onClickParticipant`/`onClickReservation` 콜백을 직접 참여/예약 처리 대신 `showLiveRoomDetail(roomId)` 호출로 변경했다. `showLiveRoomDetail`에서 `LiveRoomDetailFragment`를 띄우고, 상세 내 액션 버튼만 기존 `enterLiveRoom`/`reservationRoom` 로직을 타도록 연결해 카드 터치 시 즉시 결제/참여가 발생하지 않게 조정했다. +- 수정 파일: + - `app/src/main/java/kr/co/vividnext/sodalive/explorer/profile/UserProfileActivity.kt` + - `docs/20260306_유저프로필라이브상세페이지이동수정.md` +- 실행 명령 및 결과: + - `lsp_diagnostics` (`UserProfileActivity.kt`) -> `.kt` 확장자 LSP 서버 미구성으로 실행 불가 + - `./gradlew :app:testDebugUnitTest :app:assembleDebug` -> `BUILD SUCCESSFUL` + +### 2026-03-06 17:06 (KST) +- 무엇/왜/어떻게: 최종 완료 전 동일 검증 명령을 재실행해 변경사항이 빌드/테스트에 영향을 주지 않는지 재확인했다. +- 실행 명령 및 결과: + - `./gradlew :app:testDebugUnitTest :app:assembleDebug` -> `BUILD SUCCESSFUL` (UP-TO-DATE)