Files
sodalive-ios/docs/20260313_알림리스트종료라이브토스트수정.md

3.3 KiB

20260313 알림 리스트 종료 라이브 토스트 수정

작업 목표

  • 알림 리스트에서 라이브/예약 라이브 알림을 탭했을 때 이미 종료된 라이브인 경우 토스트 문구가 노출되지 않는 문제를 해결한다.
  • 종료된 라이브는 토스트 이미 종료된 라이브 입니다.를 표시하고, 기존 정상 딥링크 이동 동작은 유지한다.

구현 체크리스트

  • 알림 리스트 라이브 탭 처리에서 종료 라이브 판단 지점을 추가한다.
  • 종료 라이브 판단 시 토스트 이미 종료된 라이브 입니다.를 표시한다.
  • 종료되지 않은 라이브/비라이브 딥링크의 기존 동작이 유지되는지 확인한다.
  • 진단/빌드/테스트 검증 및 결과를 문서에 기록한다.

수용 기준

  • 알림 리스트에서 라이브/예약 라이브 알림 탭 시, 종료된 라이브면 토스트 이미 종료된 라이브 입니다.가 표시된다.
  • 종료되지 않은 라이브/예약 라이브 알림 탭 시 기존 딥링크 이동 동작이 유지된다.
  • 비라이브 알림 탭 동작은 기존과 동일하다.

검증 기록

  • 무엇/왜/어떻게: HomeView의 알림 딥링크 라이브 진입(pushRoomId 변경 감지) 흐름에서 사용하는 liveViewModel은 기존에 토스트 바인딩이 없어, LiveViewModel.getRoomDetail 실패 시 isShowPopup/errorMessage가 설정되어도 사용자에게 메시지가 보이지 않았다. HomeViewliveViewModel.sodaToast를 추가해 종료 라이브 에러 메시지가 실제 UI로 노출되도록 수정했다.
  • 무엇/왜/어떻게: LiveViewModel.getRoomDetail 실패 메시지에서 종료 상황(message.contains("종료"))은 문구를 이미 종료된 라이브 입니다.로 고정해 요구 문구와 동일하게 표시되도록 보정했다. 종료 외 메시지는 기존 서버 메시지를 그대로 유지한다.
  • 실행 명령: lsp_diagnostics (SodaLive/Sources/Main/Home/HomeView.swift, SodaLive/Sources/Live/LiveViewModel.swift)
  • 결과: SourceKit 단독 분석 컨텍스트에서 모듈/심볼 미해결(Firebase, LiveRepository 등) 오류가 출력됐다. 동일 변경분은 아래 Xcode 빌드에서 컴파일 성공으로 확인했다.
  • 실행 명령: xcodebuild -workspace "SodaLive.xcworkspace" -scheme "SodaLive" -configuration Debug build
  • 결과: ** BUILD SUCCEEDED **
  • 실행 명령: xcodebuild -workspace "SodaLive.xcworkspace" -scheme "SodaLive-dev" -configuration Debug build
  • 결과: ** BUILD SUCCEEDED **
  • 실행 명령: xcodebuild -workspace "SodaLive.xcworkspace" -scheme "SodaLive" test
  • 결과: Scheme SodaLive is not currently configured for the test action.
  • 실행 명령: xcodebuild -workspace "SodaLive.xcworkspace" -scheme "SodaLive-dev" test
  • 결과: Scheme SodaLive-dev is not currently configured for the test action.
  • 수동 QA: 코드 경로 점검으로 PushNotificationListViewModel.onTapItemAppDeepLinkHandler(.notificationList)HomeView.valueChanged(pushRoomId)liveViewModel.enterLiveRoomLiveViewModel.getRoomDetail 실패 시 HomeView.sodaToast 노출 흐름을 확인했다. 종료 메시지에 종료가 포함되면 최종 토스트 문구가 이미 종료된 라이브 입니다.로 출력되도록 확인했다.