From 2d97328eb7449ad5b91c5f7f96376c154e843668 Mon Sep 17 00:00:00 2001 From: klaus Date: Mon, 30 Mar 2026 18:25:19 +0900 Subject: [PATCH] =?UTF-8?q?fix(live-room):=20=EC=8A=A4=ED=83=AD=20?= =?UTF-8?q?=ED=95=B4=EC=A0=9C=20=ED=9B=84=20=EA=B6=8C=ED=95=9C=20=ED=91=9C?= =?UTF-8?q?=EC=8B=9C=EB=A5=BC=20=EC=A6=89=EC=8B=9C=20=EB=8F=99=EA=B8=B0?= =?UTF-8?q?=ED=99=94=ED=95=9C=EB=8B=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle | 2 +- .../sodalive/live/room/LiveRoomActivity.kt | 3 +-- docs/20260330_라이브룸스탭해제미갱신수정.md | 23 +++++++++++++++++++ 3 files changed, 25 insertions(+), 3 deletions(-) create mode 100644 docs/20260330_라이브룸스탭해제미갱신수정.md diff --git a/app/build.gradle b/app/build.gradle index bfca853b..ac9d1fdd 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -63,7 +63,7 @@ android { applicationId "kr.co.vividnext.sodalive" minSdk 23 targetSdk 35 - versionCode 235 + versionCode 236 versionName "1.54.1" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } diff --git a/app/src/main/java/kr/co/vividnext/sodalive/live/room/LiveRoomActivity.kt b/app/src/main/java/kr/co/vividnext/sodalive/live/room/LiveRoomActivity.kt index 0fbc40fa..e2f9f2d9 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/live/room/LiveRoomActivity.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/live/room/LiveRoomActivity.kt @@ -1813,8 +1813,6 @@ class LiveRoomActivity : BaseActivity(ActivityLiveRoomB requestType = LiveRoomRequestType.CHANGE_LISTENER ) { if (isFromManager) { - viewModel.getRoomInfo(roomId) - setManagerMessage() releaseManagerMessageToPeer(userId = peerId) handler.post { @@ -2331,6 +2329,7 @@ class LiveRoomActivity : BaseActivity(ActivityLiveRoomB ) { setAudience() viewModel.getRoomInfo(roomId) + setManagerMessage() if (roomUserProfileDialog.isShowing()) { viewModel.getUserProfile( diff --git a/docs/20260330_라이브룸스탭해제미갱신수정.md b/docs/20260330_라이브룸스탭해제미갱신수정.md new file mode 100644 index 00000000..e883c05f --- /dev/null +++ b/docs/20260330_라이브룸스탭해제미갱신수정.md @@ -0,0 +1,23 @@ +# 20260330 라이브룸 스탭 해제 미갱신 수정 + +## 작업 체크리스트 +- [x] 스탭 지정/해제 데이터 흐름을 확인해 해제 시점 UI 갱신 누락 원인을 특정한다. + QA: 스탭 해제 직후 `LiveRoomProfileListAdapter` 항목에서 스탭 표시가 사라지는지 코드 경로로 검증. +- [x] 원인에 맞춰 최소 수정으로 갱신 로직을 반영한다. + QA: 스탭 지정 시 표시 유지 + 스탭 해제 시 즉시 표시 해제 로직이 함께 성립. +- [x] 변경 파일 진단/테스트/빌드 검증을 수행한다. + QA: `lsp_diagnostics` 무오류, 관련 테스트 통과, `:app:assembleDebug` 성공. + +## 검증 기록 +- 2026-03-30 + - 무엇: `LiveRoomRequestType.CHANGE_LISTENER` 수신 후 `setListener` 성공 콜백에서 `setManagerMessage()`를 추가하고, 요청자 쪽의 조기 `getRoomInfo`/`setManagerMessage` 호출을 제거해 역할 변경 완료 시점에만 전체 동기화가 일어나도록 수정했다. + - 왜: 기존에는 스탭 해제 요청 직후 방장이 먼저 목록을 새로고침해 구 상태를 다시 받아오고, 실제 역할 전환 완료 시점의 재동기화가 늦어 `LiveRoomProfileListAdapter`에서 스탭 표시가 남는 race가 발생할 수 있었다. + - 어떻게: + - 수정 파일: `app/src/main/java/kr/co/vividnext/sodalive/live/room/LiveRoomActivity.kt` + - 실행 명령: `./gradlew :app:testDebugUnitTest :app:assembleDebug` + - 결과: `BUILD SUCCESSFUL` (2회 재실행으로 수정 후 동일 확인) + - 실행 명령: `./gradlew :app:lintDebug` + - 결과: `AndroidManifest.xml`의 `com.facebook.FacebookActivity` MissingClass 포함 기존 lint 오류(총 20 errors)로 실패 + - 실행 명령: `./gradlew :app:ktlintCheck` + - 결과: `LiveRoomActivity.kt` 전역(기존 구간 포함) ktlint 위반 다수로 실패 + - 진단 도구: Kotlin(`.kt`)용 LSP 서버 미구성으로 `lsp_diagnostics` 실행 불가 확인