maybe fix but where days wouldn't show up for voting / missing

This commit is contained in:
Trey t
2022-02-17 12:14:26 -06:00
parent 7bcad65419
commit f0ed56fe94
4 changed files with 83 additions and 48 deletions

View File

@@ -49,7 +49,11 @@ class ContentModeViewModel: ObservableObject {
}
public func shouldShowVotingHeader() -> Bool {
isMissingCurrentVote() && savedOnboardingData.ableToVoteBasedOnCurentTime() ? true : false
if isMissingCurrentVote() {
return true
}
return savedOnboardingData.ableToVoteBasedOnCurentTime() ? true : false
}
public func updateOnboardingData(onboardingData: OnboardingData) {
@@ -58,23 +62,29 @@ class ContentModeViewModel: ObservableObject {
}
private func isMissingCurrentVote() -> Bool {
let fetchRequest = NSFetchRequest<MoodEntry>(entityName: "MoodEntry")
let latestVoteUnLocked = UserDefaultsStore.getOnboarding().ableToVoteBasedOnCurentTime()
let inputDay = UserDefaultsStore.getOnboarding().inputDay
var calendar = Calendar.current
calendar.timeZone = NSTimeZone.local
var startDate: Date?
var dateFrom: Date
switch savedOnboardingData.inputDay {
case .Today:
dateFrom = calendar.startOfDay(for: Date())
case .Previous:
dateFrom = calendar.startOfDay(for: Date())
dateFrom = calendar.date(byAdding: .day, value: -1, to: dateFrom)!
switch (latestVoteUnLocked, inputDay) {
case (true, .Previous):
startDate = Calendar.current.date(byAdding: .day, value: -1, to: Date())!
case (true, .Today):
startDate = Date()
case (false, .Previous):
startDate = Calendar.current.date(byAdding: .day, value: -2, to: Date())!
case (false, .Today):
startDate = Calendar.current.date(byAdding: .day, value: -1, to: Date())!
}
let dateTo = calendar.date(byAdding: .day, value: 1, to: dateFrom)!
let fromPredicate = NSPredicate(format: "%@ <= %K", dateFrom as NSDate, #keyPath(MoodEntry.forDate))
let toPredicate = NSPredicate(format: "%K < %@", #keyPath(MoodEntry.forDate), dateTo as NSDate)
startDate = Calendar.current.startOfDay(for: startDate!)
let endDate = Calendar.current.date(byAdding: .day, value: 1, to: startDate!)!
let fetchRequest = NSFetchRequest<MoodEntry>(entityName: "MoodEntry")
let fromPredicate = NSPredicate(format: "%@ <= %K", startDate!
as NSDate, #keyPath(MoodEntry.forDate))
let toPredicate = NSPredicate(format: "%K < %@", #keyPath(MoodEntry.forDate), endDate as NSDate)
let datePredicate = NSCompoundPredicate(andPredicateWithSubpredicates: [fromPredicate, toPredicate])
fetchRequest.predicate = datePredicate
let entries = try! PersistenceController.shared.viewContext.count(for: fetchRequest)