109 lines
3.0 KiB
Swift
109 lines
3.0 KiB
Swift
//
|
|
// NotificationTitles.swift
|
|
// Feels (iOS)
|
|
//
|
|
// Created by Trey Tartt on 2/19/22.
|
|
//
|
|
|
|
import Foundation
|
|
|
|
protocol PersonalityPackable {
|
|
static var notificationTitles: [String] { get }
|
|
static var notificationBodyToday: [String] { get }
|
|
static var notificationBodyYesterday: [String] { get }
|
|
|
|
static var title: String { get }
|
|
}
|
|
|
|
enum PersonalityPack: Int, CaseIterable {
|
|
case Default
|
|
case Rude
|
|
|
|
func randomPushNotificationStrings() -> (title: String, body: String) {
|
|
let onboarding = UserDefaultsStore.getOnboarding()
|
|
|
|
switch (self, onboarding.inputDay) {
|
|
case (.Default, .Today):
|
|
return (DefaultTitles.notificationTitles.randomElement()!,
|
|
DefaultTitles.notificationBodyToday.randomElement()!)
|
|
case (.Default, .Previous):
|
|
return (DefaultTitles.notificationTitles.randomElement()!,
|
|
DefaultTitles.notificationBodyYesterday.randomElement()!)
|
|
case (.Rude, .Today):
|
|
return (RudeTitles.notificationTitles.randomElement()!,
|
|
RudeTitles.notificationBodyToday.randomElement()!)
|
|
case (.Rude, .Previous):
|
|
return (RudeTitles.notificationTitles.randomElement()!,
|
|
RudeTitles.notificationBodyYesterday.randomElement()!)
|
|
}
|
|
}
|
|
|
|
func title() -> String {
|
|
switch self {
|
|
case .Default:
|
|
return DefaultTitles.title
|
|
case .Rude:
|
|
return RudeTitles.title
|
|
}
|
|
}
|
|
}
|
|
|
|
final class DefaultTitles: PersonalityPackable {
|
|
static var title = "Nice"
|
|
|
|
static var notificationTitles: [String] {
|
|
[
|
|
"Hi 👋",
|
|
"If you have a minute",
|
|
"It's that time agian 😃"
|
|
]
|
|
}
|
|
|
|
static var notificationBodyToday: [String] {
|
|
[
|
|
"How was your day",
|
|
"Don't forget to rate your day",
|
|
"Please rate your day",
|
|
"Please tell me how your day was"
|
|
]
|
|
}
|
|
|
|
static var notificationBodyYesterday: [String] {
|
|
[
|
|
"How was yesterday",
|
|
"Don't forget to rate yesterday",
|
|
"Please rate yesterday",
|
|
"Please tell me how yesterday was"
|
|
]
|
|
}
|
|
}
|
|
|
|
final class RudeTitles: PersonalityPackable {
|
|
static var title = "Rude"
|
|
|
|
static var notificationTitles: [String] {
|
|
[
|
|
"Hey asshat",
|
|
"Hey lazy dickbag",
|
|
"Damn you 😡",
|
|
"Uggghhhhhhh, I gotta deal you with again 😒"
|
|
]
|
|
}
|
|
|
|
static var notificationBodyToday: [String] {
|
|
[
|
|
"How the hell was your day",
|
|
"Don't be an ass, rate your day",
|
|
"Rate your damn day .... or else ☠️"
|
|
]
|
|
}
|
|
|
|
static var notificationBodyYesterday: [String] {
|
|
[
|
|
"How the hell was yesterday",
|
|
"Don't be an ass, rate yesterday",
|
|
"Rate yesterday ... or else ☠️"
|
|
]
|
|
}
|
|
}
|