maybe fix but where days wouldn't show up for voting / missing
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user