work around widgets ... not sure if they work

This commit is contained in:
Trey t
2022-01-15 18:05:48 -06:00
parent 0298b3bf5e
commit 7c2de764b4
23 changed files with 375 additions and 199 deletions

View File

@@ -6,8 +6,14 @@
//
import CoreData
import WidgetKit
import Foundation
import UIKit
struct PersistenceController {
class PersistenceController {
private var dataUpdateCall: (() -> Void)?
private let callDelay = 10
static let shared = PersistenceController.persistenceController
private static var persistenceController: PersistenceController {
@@ -38,28 +44,6 @@ struct PersistenceController {
}
}
public func moodEntries(forStartDate date: Date, count: Int) -> [MoodEntry] {
let fetchRequest = NSFetchRequest<MoodEntry>(entityName: "MoodEntry")
fetchRequest.fetchLimit = count
fetchRequest.sortDescriptors = [NSSortDescriptor(key: "forDate", ascending: false)]
// var calendar = Calendar.current
// calendar.timeZone = NSTimeZone.local
// let dateFrom = calendar.startOfDay(for: Date())
// Set predicate as date being today's date
// let fromPredicate = NSPredicate(format: "date <= %@", dateFrom as NSDate)
// let datePredicate = NSCompoundPredicate(andPredicateWithSubpredicates: [fromPredicate])
// fetchRequest.predicate = datePredicate
let entries = try! viewContext.fetch(fetchRequest)
if entries.count >= count {
return Array(entries)
} else {
return entries
}
}
public var earliestEntry: MoodEntry? {
let fetchRequest = NSFetchRequest<MoodEntry>(entityName: "MoodEntry")
fetchRequest.sortDescriptors = [NSSortDescriptor(key: "forDate", ascending: true)]
@@ -75,6 +59,14 @@ struct PersistenceController {
}
public func getData(startDate: Date, endDate: Date, includedDays: [Int]) -> [MoodEntry] {
try! viewContext.setQueryGenerationFrom(.current)
viewContext.refreshAllObjects()
let fakeRequest = NSFetchRequest<MoodEntry>(entityName: "MoodEntry")
let fakeData = try! viewContext.fetch(fakeRequest)
for item in fakeData {
print(item.forDate!)
}
var includedDays16 = [Int16]()
if includedDays.isEmpty {
@@ -84,17 +76,16 @@ struct PersistenceController {
Int16($0)
})
}
let predicate = NSPredicate(format: "%K >= %@ && %K <= %@ && weekDay IN %@",
"forDate",
let predicate = NSPredicate(format: "forDate >= %@ && forDate <= %@ && weekDay IN %@",
startDate as NSDate,
"forDate",
endDate as NSDate,
includedDays16)
let fetchRequest = NSFetchRequest<MoodEntry>(entityName: "MoodEntry")
fetchRequest.predicate = predicate
fetchRequest.sortDescriptors = [NSSortDescriptor(key: "forDate", ascending: true)]
return try! viewContext.fetch(fetchRequest)
let data = try! viewContext.fetch(fetchRequest)
return data
}
func populateTestData() {