45 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Swift
		
	
	
	
	
	
			
		
		
	
	
			45 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Swift
		
	
	
	
	
	
//
 | 
						|
//  NotificationDelegate.swift
 | 
						|
//  Screaming Reminder
 | 
						|
//
 | 
						|
//  Created by Amine Bou on 12/07/2024.
 | 
						|
//
 | 
						|
 | 
						|
import Foundation
 | 
						|
import SwiftUI
 | 
						|
import SwiftData
 | 
						|
 | 
						|
class NotificationDelegate: NSObject , UNUserNotificationCenterDelegate{
 | 
						|
 | 
						|
    func userNotificationCenter(_ center: UNUserNotificationCenter,
 | 
						|
                                didReceive response: UNNotificationResponse,
 | 
						|
                                withCompletionHandler completionHandler:
 | 
						|
                                @escaping () -> Void) {
 | 
						|
        
 | 
						|
        let title = response.notification.request.content.title
 | 
						|
        switch response.actionIdentifier {
 | 
						|
        case "DONE_ACTION":
 | 
						|
            let content = UNMutableNotificationContent()
 | 
						|
            content.title = "Bravo !"
 | 
						|
            content.subtitle = "Tu as fais ce que tu devais faire ! (Il faudra ignorer les autres notifications 😅)"
 | 
						|
            content.sound = UNNotificationSound.default
 | 
						|
 | 
						|
            let trigger = UNTimeIntervalNotificationTrigger(timeInterval: 3, repeats: false)
 | 
						|
 | 
						|
            // choose a random identifier
 | 
						|
            let request = UNNotificationRequest(identifier: "\(title)-done", content: content, trigger: trigger)
 | 
						|
 | 
						|
            // add our reminder request
 | 
						|
            UNUserNotificationCenter.current().add(request)
 | 
						|
 | 
						|
            break
 | 
						|
        default:
 | 
						|
            exit(0)
 | 
						|
            break
 | 
						|
        }
 | 
						|
        
 | 
						|
        // Always call the completion handler when done.
 | 
						|
        completionHandler()
 | 
						|
    }
 | 
						|
}
 |