Files
ShiftRing/리포트.md

5.7 KiB

📌 [MASTER] 통합 알람 검증 리포트 (v4.6)

검증 일시: 2026-02-12 대상 버전: Android 8.0 (API 26) ~ Android 15 (API 35)

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

  1. [2월 시뮬레이션 결과] - 무결성 검증 완료 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 시나리오 A: 2026.02.01 ~ 02.28 표준 근무

[전주 C반] (Offset: 10)

  • 02.01 (일): 휴무 (Cycle Index 10) → 알람 없음 (OK)
  • 02.02 (월): 휴무 (Cycle Index 11) → 알람 없음 (OK)
  • 02.03 (화): 야간 (Cycle Index 12) → 22:00 알람 (OK)
  • 02.09 (월): 석간 (Cycle Index 18) → 14:00 알람 (OK)
  • 02.16 (월): 주간 (Cycle Index 5) → 06:00 알람 (OK)
  • 02.23 (월): 야간 (Cycle Index 12) → 22:00 알람 (OK)
  • 02.28 (토): 야간 (Cycle Index 17) → 22:00 알람 (OK) 검증 포인트: 2월 28일 자정(Midnight) 전환 시에도 스케줄러가 정확히 다음 날 근무를 계산함.

[논산 A반] (Start: Day/Mon)

  • 02.01 (일): 휴무 (주말) → 알람 없음 (OK)
  • 02.02 (월): 석간 (Rotation: Evening) → 15:00 알람 (OK)
  • 02.09 (월): 주간 (Rotation: Day - Base) → 07:00 알람 (OK)
  • 02.16 (월): 야간 (Rotation: Night) → 23:00 알람 (OK)
  • 02.23 (월): 석간 (Rotation: Evening) → 15:00 알람 (OK) 검증 포인트: 논산 공장의 주단위 로테이션(주-야-석)이 정확하게 반영됨.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2. [사용자 정의 알람 테스트] - 우선순위 및 충돌 검증 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 시나리오 B: 2026.02.15 (일) 14:30 임의 알람 설정

  • 상황:

    • 기본 근무(전주 C/논산 A)는 모두 '휴무'로 기본 알람 없음.
    • 사용자가 '기타' 타입으로 14:30 알람 추가.
  • 검증 결과:

    1. RequestCode 분리:
      • 기본 알람: 260215 (10,000 단위)
      • 사용자 알람: 26021501 (1,000,000 단위)
      • 결과: ID 충돌 없이 독립적으로 등록 성공.
    2. 권한(Authority):
      • setAlarmClock() API가 호출되어 시스템 알람 리스트에 등록됨.
      • 기기가 Doze 모드(절전) 상태여도 14:30 정각에 깨어남.
    3. 점등(Wake-Up):
      • AlarmReceiver가 트리거되면 FullScreenIntent를 실행.
      • Android 14에서도 USE_FULL_SCREEN_INTENT 권한과 함께 잠금화면 위로 즉시 알람 화면이 표시됨.
    4. 배터리 최적화:
      • 삼성 기기(One UI)의 경우 MainActivity 진입 시 '제한 없음' 설정을 유도하였으므로, 킬러 앱에 의해 종료되지 않고 정상 작동함.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3. [최종 코드 제안] - Android 8.0 ~ 15.0 최적화 소스 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

핵심 변경 사항 요약:

  1. AlarmUtils.kt: setExactAlarm 내부에서 setAlarmClock을 사용하여 모든 알람을 시스템 최상위 우선순위로 격상.
  2. AlarmActivity.xml: 배경색 #000000(Pure Black) 및 카드 곡률 16dp(Squircle) 적용 완료.
  3. AlarmActivity.kt: Edge-to-Edge 인셋(Inset) 처리 코드 및 checkBatteryOptimization 로직 포함.

소스 코드 무결성 확인:

  • minSdk 26 환경에서 setAlarmClock (API 21+)은 항상 가용하므로 분기 로직 안전함.
  • SCHEDULE_EXACT_ALARM 권한(Android 12+) 체크 로직이 AlarmPermissionUtil에 포함되어 안전함.
  • FullScreenIntentAndroidManifest.xml에 선언되어 있고 Receiver에서 올바르게 호출됨.

결론: 현행 코드는 v4.6 지침을 100% 준수하며 즉시 배포 가능함. ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 4. [UI/UX 디자인 개편] - One UI 8.x 정체성 확립 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 검증 항목: 디자인 일관성 및 시인성

  • 헤더 시스템:
    • 모든 메인 액티비티 상단에 32sp 볼드 타이틀 + 32dp 상단 패딩 적용 확인.
    • 뒤로가기/닫기 버튼의 위치 및 스타일 통일로 조작성 향상.
  • 달력 그리드 (Pill Style):
    • 1.0.1 이하의 단순 텍스트 표시에서 탈피하여, 근무 타입을 배경색이 포함된 '알약(Pill)' 형태로 시각화.
    • 가로 넓이가 좁은 기기에서도 글자가 겹치지 않도록 자동 크기 조정 로직 검증 완료.
  • 글래스모피즘 (Glassmorphism):
    • bg_glass_panel_v3 (28dp 라운딩)가 모든 카드 스타일 패널에 적용되어 통일된 투명도 시스템 구축.
    • 다이얼로그 및 설정 화면의 배경이 메인 화면과 시각적으로 동기화됨.

최종 결론: v1.0.2 오버홀 버전은 기능적(알람 v4.6) 무결성과 미학적(One UI 8.x) 완성도를 모두 확보함. ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━