Skip to content

앱 재실행과 예약 실패 뒤 알람을 복구하고 늦은 조작을 차단한다 - #207

Merged
OnlyReadOneBook merged 8 commits into
mainfrom
feat/200
Sep 6, 2026
Merged

OnlyReadOneBook merged 8 commits into
mainfrom
feat/200

Conversation

@OnlyReadOneBook

@OnlyReadOneBook OnlyReadOneBook commented Sep 6, 2026 •

Copy link
Copy Markdown
Owner

📌𝘐𝘴𝘴𝘶𝘦𝘴

📎𝘞𝘰𝘳𝘬 𝘋𝘦𝘴𝘤𝘳𝘪𝘱𝘵𝘪𝘰𝘯

강제 종료 뒤 앱을 열면 남은 장부로 알람을 한 번 복원합니다. OS 예약 실패를 성공으로 기록하지 않고 나머지 일정의 복원을 계속하며, 저장된 일정의 알람 재시도는 같은 ID만 사용합니다.

일정 변경·삭제·로그아웃 뒤 오래된 알림으로 다시 예약되는 경로를 닫습니다. 회차 토큰과 현재 알림을 확인하고, 취소와 미룸 예약을 같은 잠금 안에서 처리합니다. 미룸 실패 때 현재 울림·화면을 유지하며, 울릴 것이 없는 서비스 요청은 종료합니다.

앱 알림이나 알람 채널이 꺼져 있으면 제어할 수 없는 소리·진동을 시작하지 않습니다. 메인에 지속 안내와 설정 버튼을 표시하고 설정에서 돌아오면 다시 확인합니다. foreground 승격 실패도 정리하며 오디오는 비동기로 준비합니다.

📷𝘚𝘤𝘳𝘦𝘦𝘯𝘴𝘩𝘰𝘵

  • 메인 알림 차단 안내 Preview 추가(360dp, 글꼴 1.5배). CI baseline 생성·검증과 결과 이미지 육안 확인을 마쳤습니다.
  • 일정 저장 후 알람 실패 상태는 호스트 렌더(360dp, 글꼴 1.5배)로 확인했습니다. 실패 안내의 두 버튼을 전폭 세로 배치로 표시합니다.

💬𝘛𝘰 𝘙𝘦𝘷𝘪𝘦𝘸𝘦𝘳𝘴

  • alarm 35 / addschedule 24 / main 66 단위 테스트, 전체 ktlint, app assembleDebug/lintDebug 통과.
  • 격리 API 34 에뮬레이터에서 실제 PendingIntent 회차 신원과 미룸 Intent 0/1/2 전달 instrumentation 2개 통과. 실행 후 전용 에뮬레이터를 종료했습니다.
  • 버튼의 회차 토큰을 Intent data에도 넣어, FLAG_UPDATE_CURRENT가 이전 버튼을 새 회차로 바꾸지 못하게 합니다.
  • 새 회귀는 최초 복원, 부분 예약 실패, 취소 직후 OS 알림목록 지연, 알림 차단, 서비스 승격 실패, 실제 서비스 0→1→2 미룸, 스와이프 정지, 저장 후 로컬 예약 재시도를 확인합니다.
  • 시간대 반복 정책은 바꾸지 않았습니다. goAsync는 메인 스레드 점유를 줄이며 방송 실행 제한 자체를 늘리지 않습니다. 실제 기기 출시 확인 #122와 운영 배포는 이 PR의 검증 범위 밖입니다.
  • 기존 AppError 문자열 계약은 유지했습니다. 새 UI 버튼과 알림권한 안내는 문자열 리소스를 사용합니다.

공식 근거:

Refs #200

Source: https://developer.android.com/reference/android/app/PendingIntent

API 34 격리 기기에서 실제 PendingIntent 신원과 미룸 횟수 extras 2개 테스트 통과.
@OnlyReadOneBook OnlyReadOneBook added the screenshot-baseline CI 컨테이너에서 screenshot baseline 생성 요청 label Sep 6, 2026
@github-actions

github-actions Bot commented Sep 6, 2026 •

Copy link
Copy Markdown
Contributor

📸 CI 표준 환경에서 screenshot baseline 1개를 생성·검증해 551bc32 로 커밋했습니다.
실행 로그·생성 artifact: https://github.com/1hyok/SlowClock/actions/runs/34021942970
이미지 내용은 이 PR의 PNG diff에서 눈으로 최종 확인해 주세요. 필수 검사도 새 SHA에 다시 요청했습니다.

@github-actions github-actions Bot removed the screenshot-baseline CI 컨테이너에서 screenshot baseline 생성 요청 label Sep 6, 2026
@OnlyReadOneBook OnlyReadOneBook added the screenshot-baseline CI 컨테이너에서 screenshot baseline 생성 요청 label Sep 6, 2026
@github-actions github-actions Bot removed the screenshot-baseline CI 컨테이너에서 screenshot baseline 생성 요청 label Sep 6, 2026
Read the snackbar message through Compose stringResource before dispatching the external-settings callback.

Source: https://developer.android.com/develop/ui/compose/resources#strings
@OnlyReadOneBook
OnlyReadOneBook merged commit 315e7c5 into main Sep 6, 2026
11 checks passed
@OnlyReadOneBook
OnlyReadOneBook deleted the feat/200 branch September 6, 2026 08:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

fix: 앱 재실행과 실패·취소 이후 알람 수명을 복구한다

1 participant