- force load missingBalance fix

This commit is contained in:
Mikhail Filimonov 2024-08-13 10:43:37 -03:00
parent 40e5438e08
commit 549299cfb1

View File

@ -230,7 +230,7 @@ private func _internal_requestStarsSubscriptions(account: Account, peerId: Engin
} }
|> castError(RequestStarsSubscriptionsError.self) |> castError(RequestStarsSubscriptionsError.self)
|> mapToSignal { peer -> Signal<InternalStarsStatus, RequestStarsSubscriptionsError> in |> mapToSignal { peer -> Signal<InternalStarsStatus, RequestStarsSubscriptionsError> in
guard let peer, let inputPeer = apiInputPeer(peer) else { guard let peer, let inputPeer = apiInputPeerOrSelf(peer, accountPeerId: peerId) else {
return .fail(.generic) return .fail(.generic)
} }
var flags: Int32 = 0 var flags: Int32 = 0
@ -965,6 +965,7 @@ private final class StarsSubscriptionsContextImpl {
guard let self else { guard let self else {
return return
} }
self.nextOffset = status.nextSubscriptionsOffset self.nextOffset = status.nextSubscriptionsOffset
var updatedState = self._state var updatedState = self._state
@ -1002,13 +1003,18 @@ private final class StarsSubscriptionsContextImpl {
func load(force: Bool) { func load(force: Bool) {
assert(Queue.mainQueue().isCurrent()) assert(Queue.mainQueue().isCurrent())
guard !self._state.isLoading else {
return
}
let currentTimestamp = CFAbsoluteTimeGetCurrent() let currentTimestamp = CFAbsoluteTimeGetCurrent()
if let previousLoadTimestamp = self.previousLoadTimestamp, currentTimestamp - previousLoadTimestamp < 60 && !force { if let previousLoadTimestamp = self.previousLoadTimestamp, currentTimestamp - previousLoadTimestamp < 60 && !force {
return return
} }
self.previousLoadTimestamp = currentTimestamp self.previousLoadTimestamp = currentTimestamp
self._state.isLoading = true
self.disposable.set((_internal_requestStarsSubscriptions(account: self.account, peerId: self.account.peerId, offset: "", missingBalance: false) self.disposable.set((_internal_requestStarsSubscriptions(account: self.account, peerId: self.account.peerId, offset: "", missingBalance: self.missingBalance)
|> deliverOnMainQueue).start(next: { [weak self] status in |> deliverOnMainQueue).start(next: { [weak self] status in
guard let self else { guard let self else {
return return