Repository navigation
refactor(receiver): 추모 영상 실행 안내를 Toast 에서 스낵바로 옮긴다 (#1391) - #1530
Merged
Merged
Conversation
레포에 마지막으로 남아 있던 android.widget.Toast 다. Toast 는 시스템 UI 라 앱 테마·시안을 안 타고 Compose semantics 에 안 잡혀 어떤 테스트로도 단언할 수 없다 — 채널을 옮기는 것이 곧 검증 가능성이다. 작성자 쪽 상세(#1336)와 같은 방식으로 화면 Scaffold 에 SnackbarHost 를 두고, 클릭 처리를 rememberReceivedMemorialVideoClickHandler 로 모았다. 두 콜백은 원인이 다르므로 각각 다른 리소스에 붙는다 — 막힌 URL 은 주소 문제로, OS 거부는 재생 앱 부재로 안내한다. 하드코딩으로 남아 있던 거부 문구도 receiver_ 접두어 리소스로 뺐다.
Sadturtleman
approved these changes
Aug 30, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
android.widget.Toast의 마지막 실사용을 걷는다. 이 PR 이 머지되면 main 소스셋의import android.widget.Toast는 0건이다.남아 있던 것
이슈의 3건 중 건 1 은 PR #1412(잠정 스낵바), 건 2 는 PR #1430(도달 불가 화면 삭제)으로 이미 해소됐다. 남은 건 3 — 수신자 추모 영상 상세의 실행 안내 — 이 이 PR 몫이다.
무엇을 했나
Scaffold에SnackbarHost를 두고 클릭 처리를rememberReceivedMemorialVideoClickHandler로 모았다. 작성자 쪽 상세(fix(afternote): 추억 노트 상세 기본 상호작용 보완 (#463) #1336)의rememberMemorialVideoClickHandler와 같은 형태다.onRejected(막힌 URL) /onUnavailable(OS 거부)은 PR fix(receiver): 수신 추억 노트 상세 영상 실행에 http/https 스킴 가드 이식 (#1394) #1395 가 이미 갈라 놓은 계약이다. 채널만 옮기면서 각 갈래를 서로 다른 리소스에 붙였다. 하나로 합치면 스킴이 막힌 상황에 「재생할 앱이 없습니다」라는 거짓 안내가 나간다.receiver_memorial_video_invalid_url로 뺐다. 이 화면은feature/afternote/presentation소속이라 그 모듈의receiver_접두어 관례를 따랐다.ReceiverVideoSection은context를 직접 잡는 대신 클릭 콜백을 받는다 — 실행 수단이 한 곳으로 모여 테스트가 화면 밖에서 갈래를 만들 수 있다.검증
:feature:afternote:presentation:testDebugUnitTest:feature:afternote:presentation:ktlintCheck:app:compileDebugUnitTestKotlin:app:compileDebugAndroidTestKotlinandroid.widget.Toast신규
ReceivedMemorialVideoNoticeTest2건 — 막힌 URL 클릭 시 주소 문구가 뜨고 앱 부재 문구는 뜨지 않음 / RobolectriccheckActivities(true)로 OS 거부를 재현했을 때 반대로 갈림. 두 단언 모두 교차 부재(assertDoesNotExist)를 함께 본다.QA·시안 대조: 시안에 이 안내의 정의는 없다. Toast→스낵바는 #664 가 정한 repo convention 을 따른 것이고, 문구는 PR #1395 가 확정한 두 갈래를 그대로 옮겼다.
골든 영향: 이 화면에
MemorialReceivedDetailScreenScreenshotTest가 있으나 스낵바가 떠 있지 않은 상태의 렌더는 그대로다(빈snackbarHost슬롯). CI 판정에 맡긴다 — 골든 정본은 컨테이너라 macOS 재생성은 하지 않았다.남겨 두는 것
AfternoteNavActions.kt스테일 주석)은 손대지 않았다. 그 파일은author/navigation/이라 주석 한 줄 때문에 androidTest 레인이 강제로 켜진다 — 완료 조건도 아니어서 뺐다.launchReceivedMemorialVideo/launchMemorialVideo의core:common승격은 refactor(core): 추모 영상 실행 가드가 발신자·수신자 2벌 — 37줄 문자 단위 동일본을 core:common 으로 승격 #1436 몫이다.Closes #1391
CI Test Plan
{ "androidTest": { "mode": "none", "reason": "변경은 feature/afternote/presentation 의 수신자 상세 화면 한 파일과 문자열 리소스, 그리고 unit test 뿐이다. navigation 디렉터리·AndroidManifest·MainActivity·androidTest·빌드 하네스 중 어느 것도 건드리지 않아 계측 경계가 없고, 안내 표출은 Robolectric Compose 테스트가 두 갈래 모두 단언한다." } }