Skip to content

fix: 장부가 빈 기기에서도 알람을 세우고, 미뤄 둔 알람을 잃지 않는다 (176, 177, 179) - #180

Merged
OnlyReadOneBook merged 4 commits into
mainfrom
feat/176
Sep 6, 2026
Merged

OnlyReadOneBook merged 4 commits into
mainfrom
feat/176

Conversation

@OnlyReadOneBook

@OnlyReadOneBook OnlyReadOneBook commented Sep 6, 2026 •

Copy link
Copy Markdown
Owner

📌 Issues

📎 Work Description

  • 다시 설치하거나 로그인한 기기에서도 저장된 일정으로 알람을 복원합니다.
  • 로그아웃과 계정 변경 뒤 이전 계정의 알람이 다시 생기지 않게 합니다.
  • 미룬 알람은 재부팅 뒤에도 유지하고, 일정 수정·삭제나 로그아웃으로 취소한 알람은 되살리지 않습니다.
  • 서버에 연결하지 못했을 때 기기에 남아 있는 알람을 지우지 않습니다.

📷 Screenshot

화면 배치 변경 없음.

💬 To Reviewers

main 충돌을 해결하며 공유 코드 복원 변경도 함께 검증했습니다. 서버 전체 목록만 알람 동기화에 사용하고, 인증 변경 시 진행 중인 조회를 취소하며 uid를 재확인합니다. 미룸 예약과 기록의 취소를 함께 처리하고 재부팅 복원에서는 유효한 미룸을 보존합니다.

검증: 추가 회귀 14개, alarm/data/main 관련 90개 단위 테스트와 ktlint 통과. 최신 공유 코드 복원과 합친 뒤 profile 테스트 및 debug APK 빌드도 통과. 충돌/공백 검사 통과. 전체 CI를 최신 head에서 다시 실행합니다.

근거: https://firebase.google.com/docs/reference/android/com/google/firebase/firestore/Source

알람 장부는 기기 안에만 있고 백업·기기 이전에서 일부러 뺐다(#127). 그 결정의 나머지
반쪽이 없었다.

- 폰을 바꾸거나 앱을 다시 깔면 장부가 빈 채로 시작해, 서버에 일정이 그대로 있어도
  알람은 하나도 걸리지 않았다. 화면에는 오늘 일정이 다 보이므로 사용자에게는
  「일정은 보이는데 안 울린다」 로만 드러나고, 고칠 길은 일정을 하나하나 다시
  저장하는 것뿐인데 그걸 알 방법이 없다. 로그인 뒤 서버 목록으로 한 번 맞춘다(#176).
  내용이 그대로인 일정은 걸린 회차를 지킨다 — 매번 다시 걸면 앱을 열 때마다 방금
  미뤄 둔 알람이 사라진다. 서버에서 사라진 일정의 알람은 지운다.
- 다시 알림은 AlarmScheduler 를 거치지 않고 걸려 장부에 아무것도 남지 않았다.
  재부팅과 앱 교체로 조용히 사라진다. 미룬 사람은 5분 뒤 울릴 것이라고 믿고 있고
  그 믿음이 이 기능의 전부다. 예약과 기록을 한 자리에 묶는다(#177).
- 알람 자리를 정하는 값을 AlarmSlot 으로 끄집어내고 예약·취소가 모두 그 값을
  지나게 한다. 지워도 초록이던 테스트 두 개를, 다시 알림 자리가 어떤 일정의 알람
  자리와도 겹치지 않는다는 실제 단언으로 바꾼다(#179).
@OnlyReadOneBook
OnlyReadOneBook merged commit 4523921 into main Sep 6, 2026
16 of 17 checks passed
@OnlyReadOneBook
OnlyReadOneBook deleted the feat/176 branch September 6, 2026 07:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant