69 lines
2.4 KiB
Swift
69 lines
2.4 KiB
Swift
//
|
|
// TestingViewController.swift
|
|
// ProjectClock
|
|
//
|
|
// Created by Aaron Saporito on 1/13/21.
|
|
//
|
|
|
|
import UIKit
|
|
import UserNotifications
|
|
|
|
class TestingViewController: UIViewController
|
|
{
|
|
override func viewDidLoad()
|
|
{
|
|
super.viewDidLoad()
|
|
|
|
// Request notification permission
|
|
UNUserNotificationCenter.current().requestAuthorization(options: [.alert, .badge, .sound]) { success, error in
|
|
if success {
|
|
print("All set!")
|
|
} else if let error = error {
|
|
print(error.localizedDescription)
|
|
}
|
|
}
|
|
}
|
|
|
|
//Sends a test notification
|
|
@IBAction func sendNotification(_ sender: Any)
|
|
{
|
|
let alarm = Alarm(hour: 7, minute: 20, text: "Good morning!", wakeMethod: WVM(name: "walking", desc: "Walk"))
|
|
|
|
let content = UNMutableNotificationContent()
|
|
|
|
//Date formatting to string
|
|
let today = Date()
|
|
let formatter1 = DateFormatter()
|
|
formatter1.dateStyle = .long
|
|
|
|
//Notification content
|
|
content.title = alarm.text
|
|
content.subtitle = formatter1.string(from: today)
|
|
content.body = "Wake method: \(alarm.wakeMethod.name)"
|
|
|
|
// Notification image content
|
|
let imageName = "clock"
|
|
guard let imageURL = Bundle.main.url(forResource: imageName, withExtension: "png") else { return }
|
|
let attachment = try! UNNotificationAttachment(identifier: imageName, url: imageURL, options: .none)
|
|
content.attachments = [attachment]
|
|
|
|
// Readies notification to be sent
|
|
let trigger = UNTimeIntervalNotificationTrigger(timeInterval: 10, repeats: false)
|
|
let request = UNNotificationRequest(identifier: "notification.id.01", content: content, trigger: trigger)
|
|
|
|
// Sends notification
|
|
UNUserNotificationCenter.current().add(request, withCompletionHandler: nil)
|
|
}
|
|
|
|
@IBAction func addAlarm(_ sender: Any)
|
|
{
|
|
let (h, m, _) = Date().getHMS()
|
|
Alarms.fromLocal().apply { $0.list.append(Alarm(hour: h, minute: m, text: "Test alarm - \(h * m)", wakeMethod: wvms[1], repeats: [true, true, true, true, true, true, true], oneTime: true, lastActivate: Date().added(.minute, -1))) }.localSave()
|
|
}
|
|
|
|
@IBAction func deleteAlarm(_ sender: Any)
|
|
{
|
|
Alarms.fromLocal().apply { $0.list.removeAll() }.localSave()
|
|
}
|
|
}
|