diff --git a/damus/Util/LocalNotification.swift b/damus/Util/LocalNotification.swift index c10ea21f..51827734 100644 --- a/damus/Util/LocalNotification.swift +++ b/damus/Util/LocalNotification.swift @@ -18,8 +18,11 @@ struct LossyLocalNotification { ] } - static func from_user_info(user_info: [AnyHashable: Any]) -> LossyLocalNotification { - let target_id = MentionRef.from_bech32(str: user_info["id"] as! String)! + static func from_user_info(user_info: [AnyHashable: Any]) -> LossyLocalNotification? { + guard let id = user_info["id"] as? String, + let target_id = MentionRef.from_bech32(str: id) else { + return nil + } let typestr = user_info["type"] as! String let type = LocalNotificationType(rawValue: typestr)! diff --git a/damus/damusApp.swift b/damus/damusApp.swift index a634f88f..08c53521 100644 --- a/damus/damusApp.swift +++ b/damus/damusApp.swift @@ -58,7 +58,9 @@ class AppDelegate: NSObject, UIApplicationDelegate, UNUserNotificationCenterDele func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void) { let userInfo = response.notification.request.content.userInfo - let notification = LossyLocalNotification.from_user_info(user_info: userInfo) + guard let notification = LossyLocalNotification.from_user_info(user_info: userInfo) else { + return + } notify(.local_notification(notification)) completionHandler() }