Refactored refresh progress so that it doesn't crash on the mac anymore

This commit is contained in:
Maurice Parker
2020-07-15 15:32:04 -05:00
parent f32b0bfdc3
commit 2b84469fb4
5 changed files with 7 additions and 74 deletions

View File

@@ -28,19 +28,11 @@ class RefreshProgressModel: ObservableObject {
return formatter
}()
private let lastRefreshDate: () -> Date?
private let combinedRefreshProgress: () -> CombinedRefreshProgress
private static let lastRefreshDateTextUpdateInterval = 60
private static let lastRefreshDateTextRelativeDateFormattingThreshold = 60.0
init(lastRefreshDateProvider: @escaping () -> Date?,
combinedRefreshProgressProvider: @escaping () -> CombinedRefreshProgress) {
self.lastRefreshDate = lastRefreshDateProvider
self.combinedRefreshProgress = combinedRefreshProgressProvider
func startup() {
updateState()
observeRefreshProgress()
scheduleLastRefreshDateTextUpdate()
}
@@ -54,12 +46,12 @@ class RefreshProgressModel: ObservableObject {
// MARK: Refreshing state
@objc private func updateState() {
let progress = combinedRefreshProgress()
let progress = AccountManager.shared.combinedRefreshProgress
if !progress.isComplete {
let fractionCompleted = Float(progress.numberCompleted) / Float(progress.numberOfTasks)
self.state = .refreshProgress(fractionCompleted)
} else if let lastRefreshDate = self.lastRefreshDate() {
} else if let lastRefreshDate = AccountManager.shared.lastArticleFetchEndTime {
let text = localizedLastRefreshText(lastRefreshDate: lastRefreshDate)
self.state = .lastRefreshDateText(text)
} else {
@@ -88,14 +80,3 @@ class RefreshProgressModel: ObservableObject {
}
}
extension RefreshProgressModel {
convenience init() {
self.init(
lastRefreshDateProvider: { AccountManager.shared.lastArticleFetchEndTime },
combinedRefreshProgressProvider: { AccountManager.shared.combinedRefreshProgress }
)
}
}