Files
Reflect/Shared/Models/PersonalityPackable.swift
Trey t 6c239c5e26 MISC
added new icon
put notifications in strings files
started IAPManager
populate data goes to 1000 entires
take out fixweeday button
2022-07-07 18:13:36 -05:00

109 lines
3.4 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] {
[
String(localized: "default_notif_title_one"),
String(localized: "default_notif_title_two"),
String(localized: "default_notif_title_three")
]
}
static var notificationBodyToday: [String] {
[
String(localized: "default_notif_body_today_one"),
String(localized: "default_notif_body_today_two"),
String(localized: "default_notif_body_today_three"),
String(localized: "default_notif_body_today_four")
]
}
static var notificationBodyYesterday: [String] {
[
String(localized: "default_notif_body_yesterday_one"),
String(localized: "default_notif_body_yesterday_two"),
String(localized: "default_notif_body_yesterday_three"),
String(localized: "default_notif_body_yesterday_four")
]
}
}
final class RudeTitles: PersonalityPackable {
static var title = "Rude"
static var notificationTitles: [String] {
[
String(localized: "rude_notif_title_one"),
String(localized: "rude_notif_title_two"),
String(localized: "rude_notif_title_three"),
String(localized: "rude_notif_title_four")
]
}
static var notificationBodyToday: [String] {
[
String(localized: "rude_notif_body_today_one"),
String(localized: "rude_notif_body_today_two"),
String(localized: "rude_notif_body_today_three")
]
}
static var notificationBodyYesterday: [String] {
[
String(localized: "rude_notif_body_yesterday_one"),
String(localized: "rude_notif_body_yesterday_two"),
String(localized: "rude_notif_body_yesterday_three")
]
}
}