24 lines
540 B
Swift
24 lines
540 B
Swift
|
import Foundation
|
||
|
|
||
|
final class RemoteNotificationsRefreshDeadlineController {
|
||
|
private let deadline: TimeInterval = 30 // 30 seconds
|
||
|
private var now: CFAbsoluteTime {
|
||
|
return CFAbsoluteTimeGetCurrent()
|
||
|
}
|
||
|
|
||
|
public var shouldRefresh: Bool {
|
||
|
|
||
|
guard let lastRefreshTime = lastRefreshTime else {
|
||
|
return true
|
||
|
}
|
||
|
|
||
|
return now - lastRefreshTime > deadline
|
||
|
}
|
||
|
|
||
|
private var lastRefreshTime: CFAbsoluteTime?
|
||
|
|
||
|
public func reset() {
|
||
|
lastRefreshTime = now
|
||
|
}
|
||
|
}
|