Repository navigation
[GMSS-289]알림 권한을 온보딩 대신 새 대화 생성 시 OS 상태에 맞춰 요청 - #81
Open
soyeonLee126 wants to merge 1 commit into
Open
soyeonLee126 wants to merge 1 commit into
soyeonLee126 wants to merge 1 commit into
Conversation
- 온보딩 건너뛰기 시 알림 권한 요청이 다시 나가지 않던 문제 수정 - 안내 노출 여부를 OS 권한 팝업 상태에 맞춤 - 첫 거절 여부는 OS가 제공하지 않아 DataStore에 저장함
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.
작업 개요
온보딩에서 건너뛰기를 누르면 알림 권한 안내를 보지 않았는데도 "안내함"으로 저장되어, 이후 권한 요청이 다시 나가지 않았습니다. 이를 고치면서 요청 시점과 기준을 함께 정리했습니다.
작업 유형
변경 사항
온보딩
채팅방
확인하나입니다. 누르면 시스템 팝업이 뜨고, 거절은 시스템 팝업에서만 받습니다. 바깥을 눌러 닫으면 아무것도 기록하지 않습니다.NotificationPermissionPromptViewModel로 분리했습니다.ChatRoomViewModel은 새 대화 진입만 알립니다(NewConversationOpened).안내 조건(
ShouldPromptNotificationPermissionUseCase)shouldShowRequestPermissionRationale == true) 띄웁니다.NotificationPermissionDialog를core/ui로 옮기고 문자열 키를notification_permission_*로 바꿨습니다. 안내 문구 중비동의를 해도 앱을 이용할 수 있어요.는허용하지 않아도 앱을 이용할 수 있어요.로 바꿨습니다.DataStore 이력의 메모리 캐시를 없앴습니다. 메인 진입 요청이 없어져서, 캐시로 막던 동시 읽기 상황이 더 이상 생기지 않습니다.
테스트: 안내 조건(use case), 프롬프트 ViewModel, 새 대화 진입 알림 테스트를 추가하고 수정했습니다.
상태로 남긴 값
notification_permission_prompted: 시스템 팝업에서 한 번 거절했는지 저장합니다. OS는 "한 번도 묻지 않음"과 "영구 거절"을 둘 다 rationale false로 알려 줘서 구분할 수 없습니다. 그래서 이 값은 앱이 직접 남겨야 합니다.NotificationPermissionPromptViewModel의 다이얼로그 표시 여부: 새 대화인지는 채팅방에 들어오는 순간에만 알 수 있어서, 다른 값에서 계산해 낼 수 없습니다.관련 이슈
관련 작업 (Notion)
스크린샷 / 동작 화면
체크리스트
develop으로 설정되어 있다feat:,fix:등)을 따른다리뷰 요청 사항