@@ -235,21 +235,22 @@ class ScheduleTableViewController: UITableViewController {
235235
236236 private func scheduleFavoriteNotification( forEvent timelineEvent: TimelineEvent ) {
237237
238+ askForNotificationPermissionIfNeeded ( )
239+
238240 // Extract components and set trigger
239241 let components = Calendar . current. dateComponents ( in: . current, from: timelineEvent. event. time)
240242 let trigger = UNCalendarNotificationTrigger ( dateMatching: components, repeats: false )
241243
242244 print ( timelineEvent. event. uuid)
243245
244-
245246 let content = UNMutableNotificationContent ( )
246247 content. title = timelineEvent. event. title + " is starting! "
247248 content. body = timelineEvent. event. description
248249 let request = UNNotificationRequest ( identifier: timelineEvent. event. uuid, content: content, trigger: trigger)
249250
250251 // Add request to local notification center
251252 UNUserNotificationCenter . current ( ) . add ( request) { error in
252- if let error = error {
253+ if error != nil {
253254 DispatchQueue . main. async {
254255 MessageHandler . showNotificationRegisterError ( withEventTitle: timelineEvent. event. title)
255256 }
@@ -263,6 +264,17 @@ class ScheduleTableViewController: UITableViewController {
263264 UNUserNotificationCenter . current ( ) . removePendingNotificationRequests ( withIdentifiers: [ identifier] )
264265 }
265266
267+ private func askForNotificationPermissionIfNeeded( ) {
268+ UNUserNotificationCenter . current ( ) . requestAuthorization ( options: [ . alert, . sound] ) { ( granted, error) in
269+ if !granted {
270+
271+ DispatchQueue . main. async {
272+ MessageHandler . showNotificationDisabledInfo ( )
273+ }
274+ }
275+ }
276+ }
277+
266278 // MARK: Section headers and view configuration
267279
268280 override func tableView( _ tableView: UITableView , viewForHeaderInSection section: Int ) -> UIView ? {
0 commit comments