switch db between debug and release

on widgets if its before the voting time show yesterdays vote, if after either show no vote or current vote

user shared user defaults
This commit is contained in:
Trey t
2022-01-28 10:27:33 -06:00
parent a45c2f0639
commit 0109aee8f8
6 changed files with 30 additions and 12 deletions

View File

@@ -28,8 +28,13 @@ class WatchTimelineView: Identifiable {
struct TimeLineCreator {
static func createViews(daysBack: Int) -> [WatchTimelineView] {
var timeLineView = [WatchTimelineView]()
var startDayOffset = 0
for day in 0..<daysBack{
if !UserDefaultsStore.getOnboarding().ableToVoteBasedOnCurentTime() {
startDayOffset = 1
}
for day in startDayOffset..<daysBack{
let day = Calendar.current.date(byAdding: .day, value: -day, to: Date())!
let dayStart = Calendar.current.startOfDay(for: day)
@@ -62,13 +67,13 @@ struct Provider: IntentTimelineProvider {
func placeholder(in context: Context) -> SimpleEntry {
return SimpleEntry(date: Date(),
configuration: ConfigurationIntent(),
timeLineViews: TimeLineCreator.createViews(daysBack: 10))
timeLineViews: Array(TimeLineCreator.createViews(daysBack: 11).prefix(10)))
}
func getSnapshot(for configuration: ConfigurationIntent, in context: Context, completion: @escaping (SimpleEntry) -> ()) {
let entry = SimpleEntry(date: Date(),
configuration: ConfigurationIntent(),
timeLineViews: TimeLineCreator.createViews(daysBack: 10))
timeLineViews: Array(TimeLineCreator.createViews(daysBack: 11).prefix(10)))
completion(entry)
}
@@ -137,7 +142,7 @@ struct SmallWidgetView: View {
init(entry: Provider.Entry) {
self.entry = entry
timeLineView = TimeLineCreator.createViews(daysBack: 1)
timeLineView = [TimeLineCreator.createViews(daysBack: 2).first!]
}
var body: some View {
@@ -162,7 +167,7 @@ struct MediumWidgetView: View {
init(entry: Provider.Entry) {
self.entry = entry
timeLineView = TimeLineCreator.createViews(daysBack: 5)
timeLineView = Array(TimeLineCreator.createViews(daysBack: 6).prefix(5))
}
var body: some View {
@@ -205,7 +210,7 @@ struct SmallGraphicWidgetView: View {
init(entry: Provider.Entry) {
self.entry = entry
timeLineView = TimeLineCreator.createViews(daysBack: 1)
timeLineView = [TimeLineCreator.createViews(daysBack: 2).first!]
}
var body: some View {

View File

@@ -15,7 +15,7 @@ class UserDefaultsStore {
}
static func getOnboarding() -> OnboardingData {
if let data = UserDefaults.standard.object(forKey: UserDefaultsStore.Keys.savedOnboardingData.rawValue) as? Data,
if let data = GroupUserDefaults.groupDefaults.object(forKey: UserDefaultsStore.Keys.savedOnboardingData.rawValue) as? Data,
let model = try? JSONDecoder().decode(OnboardingData.self, from: data) {
return model
} else {
@@ -26,7 +26,7 @@ class UserDefaultsStore {
static func saveOnboarding(onboardingData: OnboardingData) -> OnboardingData {
do {
let data = try JSONEncoder().encode(onboardingData)
UserDefaults.standard.set(data, forKey: UserDefaultsStore.Keys.savedOnboardingData.rawValue)
GroupUserDefaults.groupDefaults.set(data, forKey: UserDefaultsStore.Keys.savedOnboardingData.rawValue)
return UserDefaultsStore.getOnboarding()
} catch {
fatalError("error saving")

View File

@@ -9,7 +9,7 @@ import CoreData
import SwiftUI
class PersistenceController {
@AppStorage(UserDefaultsStore.Keys.useCloudKit.rawValue) private var useCloudKit = false
@AppStorage(UserDefaultsStore.Keys.useCloudKit.rawValue, store: GroupUserDefaults.groupDefaults) private var useCloudKit = false
static let shared = PersistenceController.persistenceController
@@ -278,8 +278,11 @@ extension NSManagedObjectContext {
class NSCustomPersistentContainer: NSPersistentContainer {
override open class func defaultDirectoryURL() -> URL {
var storeURL = FileManager.default.containerURL(forSecurityApplicationGroupIdentifier: "group.com.88oak.ifeel")
var storeURL = FileManager.default.containerURL(forSecurityApplicationGroupIdentifier: Constants.groupShareId)
storeURL = storeURL?.appendingPathComponent("Feels.sqlite")
#if DEBUG
storeURL = storeURL?.appendingPathComponent("Feels-Debug.sqlite")
#endif
return storeURL!
}
}

View File

@@ -7,6 +7,16 @@
import Foundation
struct Constants {
static let groupShareId = "group.com.88oak.ifeel"
}
struct GroupUserDefaults {
static var groupDefaults: UserDefaults {
return UserDefaults(suiteName: Constants.groupShareId)!
}
}
class Random {
static var tomorrowMidnightThirty: Date {
let components = DateComponents(hour: 0, minute: 30, second: 0)

View File

@@ -11,7 +11,7 @@ import Charts
struct ContentView: View {
@Environment(\.managedObjectContext) private var viewContext
@AppStorage(UserDefaultsStore.Keys.needsOnboarding.rawValue) private var needsOnboarding = true
@AppStorage(UserDefaultsStore.Keys.needsOnboarding.rawValue, store: GroupUserDefaults.groupDefaults) private var needsOnboarding = true
@State private var showingSheet = false
@State private var showTodayInput = true

View File

@@ -20,7 +20,7 @@ struct SettingsView: View {
@State private var showWhyBGMode = false
@ObservedObject var syncMonitor = SyncMonitor.shared
@AppStorage(UserDefaultsStore.Keys.useCloudKit.rawValue) private var useCloudKit = false
@AppStorage(UserDefaultsStore.Keys.useCloudKit.rawValue, store: GroupUserDefaults.groupDefaults) private var useCloudKit = false
var body: some View {
ZStack {