diff --git a/LeCountdown/Sound/DelaySoundPlayer.swift b/LeCountdown/Sound/DelaySoundPlayer.swift index f3886c8..bac0388 100644 --- a/LeCountdown/Sound/DelaySoundPlayer.swift +++ b/LeCountdown/Sound/DelaySoundPlayer.swift @@ -28,8 +28,6 @@ import AVFoundation try audioSession.setCategory(.playback, options: .duckOthers) try audioSession.setActive(true) -// MPMusicPlayerController.applicationMusicPlayer.volume = 1.0 - let player = try AVAudioPlayer(contentsOf: url) player.prepareToPlay() player.volume = 1.0 diff --git a/LeCountdown/Stats/Context+Calculations.swift b/LeCountdown/Stats/Context+Calculations.swift index 3752b37..9306229 100644 --- a/LeCountdown/Stats/Context+Calculations.swift +++ b/LeCountdown/Stats/Context+Calculations.swift @@ -36,15 +36,15 @@ extension NSManagedObjectContext { let fetchRequest = NSFetchRequest(entityName: "Record") - let basePredicate = NSPredicate(format: "start != nil") - + let basePredicate = NSPredicate(format: "start != nil AND activity = %@", activity) var predicates: [NSPredicate] = [] predicates.append(basePredicate) - predicates.append(NSPredicate(format: "activity = %@", activity)) if let filter { predicates.append(filter.predicate) } - fetchRequest.predicate = NSCompoundPredicate.init(andPredicateWithSubpredicates: predicates) + let finalPredicate = NSCompoundPredicate(andPredicateWithSubpredicates: predicates) + + fetchRequest.predicate = finalPredicate fetchRequest.propertiesToFetch = expressions fetchRequest.resultType = NSFetchRequestResultType.dictionaryResultType @@ -77,10 +77,9 @@ extension NSManagedObjectContext { if let value { let request = Record.fetchRequest() - if let filter { - request.predicate = NSCompoundPredicate(andPredicateWithSubpredicates: [basePredicate, filter.predicate]) - request.sortDescriptors = [NSSortDescriptor(key: "start", ascending: true)] - } + request.predicate = finalPredicate + request.sortDescriptors = [NSSortDescriptor(key: "start", ascending: true)] + let records: [Record] = try self.fetch(request) let points: [Point] = records.compactMap { $0.point(stat:stat) } diff --git a/LeCountdown/Views/Stats/ActivityView.swift b/LeCountdown/Views/Stats/ActivityView.swift index a09a532..2b31842 100644 --- a/LeCountdown/Views/Stats/ActivityView.swift +++ b/LeCountdown/Views/Stats/ActivityView.swift @@ -36,7 +36,6 @@ struct ActivityView: View { let filters = self.selectedTimeFrame.filters(context: viewContext) RecordsView(activity: self.activity, filters: filters) .environment(\.managedObjectContext, viewContext) - // } } } @@ -104,5 +103,6 @@ enum TimeFrame: Int, Identifiable, CaseIterable { struct ActivityView_Previews: PreviewProvider { static var previews: some View { ActivityView(activity: Activity.fake(context: PersistenceController.preview.container.viewContext), selectedTimeFrame: .all) + .environment(\.managedObjectContext, PersistenceController.preview.container.viewContext) } } diff --git a/LeCountdown/Views/Stats/RecordsView.swift b/LeCountdown/Views/Stats/RecordsView.swift index b4b00d4..33defd4 100644 --- a/LeCountdown/Views/Stats/RecordsView.swift +++ b/LeCountdown/Views/Stats/RecordsView.swift @@ -23,24 +23,8 @@ struct RecordsView: View { @Environment(\.managedObjectContext) private var viewContext let activity: Activity - let filters: [Filter] -// let timeFrame: TimeFrame { -// didSet { -// self._loadFilters() -// } -// } - -// @StateObject var model: RecordsModel = RecordsModel() - -// var request: FetchRequest - -// init(activity: Activity, timeFrame: TimeFrame) { -// self.activity = activity -// self.timeFrame = timeFrame -// } - var body: some View { Section { @@ -51,10 +35,6 @@ struct RecordsView: View { } } -// fileprivate func _loadFilters() { -// self.model.loadFilters(activity: self.activity, timeFrame: self.timeFrame, context: self.viewContext) -// } - } class RecordsSectionModel: ObservableObject { @@ -135,6 +115,7 @@ struct RecordsView_Previews: PreviewProvider { static var previews: some View { RecordsView(activity: Activity.fake(context: PersistenceController.preview.container.viewContext), - filters: []) + filters: [Filter.none]) + .environment(\.managedObjectContext, PersistenceController.preview.container.viewContext) } }