Send DownloadProgressDidChange notification only when numberOfTasks or numberRemaining actually change.

This commit is contained in:
Brent Simmons 2017-10-07 12:37:11 -07:00
parent 1bffbb7312
commit f7c5919674
1 changed files with 10 additions and 4 deletions

View File

@ -10,23 +10,27 @@ import Foundation
public extension Notification.Name { public extension Notification.Name {
public static let DownloadProgressDidChange = Notification.Name(rawValue: "DownloadProgressDidChangeNotification") public static let DownloadProgressDidChange = Notification.Name(rawValue: "DownloadProgressDidChange")
} }
public class DownloadProgress { public final class DownloadProgress {
public var numberOfTasks = 0 { public var numberOfTasks = 0 {
didSet { didSet {
if numberOfTasks == 0 { if numberOfTasks == 0 {
numberRemaining = 0 numberRemaining = 0
} }
postDidChangeNotification() if numberOfTasks != oldValue {
postDidChangeNotification()
}
} }
} }
public var numberRemaining = 0 { public var numberRemaining = 0 {
didSet { didSet {
postDidChangeNotification() if numberRemaining != oldValue {
postDidChangeNotification()
}
} }
} }
@ -65,6 +69,8 @@ public class DownloadProgress {
} }
} }
// MARK: - Private
private extension DownloadProgress { private extension DownloadProgress {
func postDidChangeNotification() { func postDidChangeNotification() {