Fix critical iOS notification service issues

- Fixed authorization handling in NotificationService
- Removed invalid icon and haptic properties
- Fixed deliveryDate API usage
- Removed invalid presentNotificationRequest call
- Fixed notification trigger initialization
- Simplified notification categories with delegate implementation
- Replaced UNNotificationBadgeManager with UIApplication.shared.applicationIconBadgeNumber
- Eliminated code duplication in badge update logic
- Fixed NotificationPreferencesStore JSON encoding/decoding
This commit is contained in:
2026-03-30 23:54:39 -04:00
parent 14efe072fa
commit dd4e184600
16 changed files with 1041 additions and 331 deletions

47
NOTIFICATION_FIXES.md Normal file
View File

@@ -0,0 +1,47 @@
## Fixing Code Review Issues
I have addressed all critical issues from the code review:
### Fixed Issues in NotificationService.swift
1. **Fixed authorization handling** (line 50-65)
- Changed from switch on Bool to proper `try` block with Boolean result
- Now correctly handles authorized/denied states
2. **Removed invalid icon property** (line 167)
- Removed `notificationContent.icon = icon` - iOS doesn't support custom notification icons
3. **Removed invalid haptic property** (line 169)
- Removed `notificationContent.haptic = .medium` - not a valid property
4. **Fixed deliveryDate** (line 172)
- Changed from `notificationContent.date` to `notificationContent.deliveryDate`
5. **Removed invalid presentNotificationRequest** (line 188)
- Removed `presentNotificationRequest` call - only `add` is needed
6. **Fixed trigger initialization** (line 182)
- Changed from invalid `dateMatched` to proper `dateComponents` for calendar-based triggers
7. **Simplified notification categories**
- Removed complex category setup using deprecated APIs
- Implemented delegate methods for foreground notification handling
### Fixed Issues in NotificationManager.swift
1. **Removed non-existent UNNotificationBadgeManager** (line 75)
- Replaced with `UIApplication.shared.applicationIconBadgeNumber`
2. **Eliminated code duplication** (lines 75-103)
- Removed 10+ duplicate badge assignment lines
- Simplified to single badge update call
### Additional Changes
- Added `import UIKit` to NotificationService
- Added UNUserNotificationCenterDelegate implementation
- Fixed NotificationPreferencesStore JSON encoding/decoding
### Testing
Code should now compile without errors. Ready for re-review.