You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
완료된 #176, #177, #179 이후 남은 알람 수명과 실패 처리를 보완한다. API 34 강제 종료 뒤 앱을 다시 열면 기기 장부는 남아 있지만 시스템 예약이 사라져, 같은 회차를 건너뛰는 서버 동기화만으로 복구되지 않는다. OS 예약 실패도 성공 장부로 표시되며 미룸 실패 때 현재 울림이 종료될 수 있다.
범위
설치·계정 정리 뒤 최초 앱 진입에서 네트워크와 독립적으로 로컬 예약을 복원한다.
일정 변경·삭제·로그아웃 뒤 오래된 알람 조작이 예약을 다시 만들지 않도록 명령 수명을 검증한다.
알람 예약 결과를 전달하고 실패 회차는 재시도 가능하게 남긴다. 일정 저장 성공과 알람 실패를 구분해 중복 저장을 막는다.
foreground 승격 실패 때 자원을 정리하고, 알림 조작 UI를 표시할 수 없을 때 제어할 수 없는 소리·진동을 시작하지 않는다.
미룸 횟수와 실패·취소·복원 경계를 회귀 테스트한다.
범위 밖
시간대 변경의 반복 시각 정책, 실제 기기 출시 확인 #122, 서버 알림과 운영 배포는 별도다. #176의 서버 복구와 미룸 보존 계약을 유지한다.
검증
영향 단위 테스트, Kotlin lint, app debug build와 Android lint, PR CI를 확인한다.
Activity
fix: 앱 재실행과 실패·취소 뒤 알람 수명을 보존한다
fix: 알림 조작 PendingIntent를 회차별로 분리한다
앱 재실행과 예약 실패 뒤 알람을 복구하고 늦은 조작을 차단한다 (#207)