Files
Reflect/Shared/AppDelegate.swift
2022-01-15 18:05:48 -06:00

52 lines
1.9 KiB
Swift

//
// AppDelegate.swift
// Feels (iOS)
//
// Created by Trey Tartt on 1/10/22.
//
import Foundation
import UserNotifications
import UIKit
import WidgetKit
// AppDelegate.swift
class AppDelegate: NSObject, UIApplicationDelegate {
func application(_ application: UIApplication, willFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {
// PersistenceController.shared.clearDB()
application.registerForRemoteNotifications()
UNUserNotificationCenter.current().delegate = self
return true
}
}
extension AppDelegate: UNUserNotificationCenterDelegate {
func requestAuthorization() { }
func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {
completionHandler([.badge, .banner, .sound])
}
func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void) {
if let action = LocalNotification.ActionType(rawValue: response.actionIdentifier) {
switch action {
case .horrible:
PersistenceController.shared.add(mood: .horrible, forDate: Date())
case .bad:
PersistenceController.shared.add(mood: .bad, forDate: Date())
case .average:
PersistenceController.shared.add(mood: .average, forDate: Date())
case .good:
PersistenceController.shared.add(mood: .good, forDate: Date())
case .great:
PersistenceController.shared.add(mood: .great, forDate: Date())
}
}
WidgetCenter.shared.reloadAllTimelines()
completionHandler()
}
}