Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[#109] 노티 관련 커스텀 뷰 추가 #110

Merged
merged 7 commits into from
Nov 28, 2024
Merged

Conversation

zaehorang
Copy link
Collaborator

📝 작업 내용

노티 관련해서 온/오프와 시간을 설정할 수 있는 뷰를 추가합니다.

  • NotiSettingView 추가:

    • 사용자가 알림을 켜거나 끌 수 있는 토글 버튼과 시간을 설정할 수 있는 타임 피커 UI 구현.
    • 시스템 알림 권한과 앱 알림 설정 동기화(scenePhase 활용).
    • onChange를 활용하여 상태 변경 시 알림 동적 업데이트(Task 기반 취소 로직 포함).
    • UserDefaultsManager를 활용해 설정 데이터를 저장 및 불러오는 로직 통합.
  • NotificationManager 구현 및 통합:

    • 알림 권한 요청, 알림 업데이트, 알림 제거 등 알림 관련 로직 캡슐화.
    • 사용자 설정에 따라 알림 시간을 동적으로 설정 및 업데이트.
    • 사용자가 알림을 비활성화하거나 시간을 변경할 때 기존 알림을 삭제 후 재등록.

스크린샷 (선택)

- 우선적으로 UI 레이아웃 구현
- 시스템 설정 화면으로 이동하는 로직을 캡슐화한 `SystemSettingsManager` 모델 추가
- 노티 관련 값을 UserDefaults에 저장하는 메서드 추가
- 토글 상태를 관리하기 위한 바인딩 프로퍼티 `isNotificationToggleEnabled` 구현
- 상태 변경 시 위 메서드를 호출하도록`NotiSettingView` 업데이트
- 알림 관련 데이터 저장 및 로드 로직을 캡슐화한 `UserDefaultsManager` 추가
- 알림 시간(`hour`, `minute`) 저장 및 불러오기 메서드 추가.
- 알림 비활성화 상태(`isNotificationDisabled`) 저장 및 불러오기 메서드 추가.
- 알림 권한 요청, 모든 알림 제거, 특정 알림 업데이트, 알림 예약 메서드 추가.
- 시스템 알림 권한과 앱 내 설정을 연동한 동적 처리 로직 추가.
- 사용자 선택 시간 및 선호도에 따라 알림 내용 및 트리거 동적 생성.
- `NotiSettingView` 업데이트
- `NotificationManager`를 사용하는 뷰 리팩토링
@zaehorang zaehorang linked an issue Nov 28, 2024 that may be closed by this pull request
3 tasks
@zaehorang zaehorang self-assigned this Nov 28, 2024
@zaehorang zaehorang merged commit b907c80 into develop Nov 28, 2024
@zaehorang zaehorang deleted the feat/109-new-noti-view branch November 28, 2024 16:02
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.

새로운 노티 뷰 반영
1 participant