mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-11-07 09:20:08 +00:00
Various fixes
This commit is contained in:
parent
331cb1edc6
commit
e23c7f2e2b
@ -638,6 +638,7 @@ final class MediaPickerGridItemNode: GridItemNode {
|
|||||||
self.updateHiddenMedia()
|
self.updateHiddenMedia()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private var currentPrice: Int64?
|
||||||
private var didSetupSpoiler = false
|
private var didSetupSpoiler = false
|
||||||
private func updateHasSpoiler(_ hasSpoiler: Bool, price: Int64?, isSingle: Bool) {
|
private func updateHasSpoiler(_ hasSpoiler: Bool, price: Int64?, isSingle: Bool) {
|
||||||
var animated = true
|
var animated = true
|
||||||
@ -645,6 +646,7 @@ final class MediaPickerGridItemNode: GridItemNode {
|
|||||||
animated = false
|
animated = false
|
||||||
self.didSetupSpoiler = true
|
self.didSetupSpoiler = true
|
||||||
}
|
}
|
||||||
|
self.currentPrice = isSingle ? price : nil
|
||||||
|
|
||||||
if hasSpoiler || price != nil {
|
if hasSpoiler || price != nil {
|
||||||
if self.spoilerNode == nil {
|
if self.spoilerNode == nil {
|
||||||
@ -724,6 +726,11 @@ final class MediaPickerGridItemNode: GridItemNode {
|
|||||||
spoilerNode.update(size: self.bounds.size, transition: .immediate)
|
spoilerNode.update(size: self.bounds.size, transition: .immediate)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if let priceNode = self.priceNode, self.bounds.width > 0.0 {
|
||||||
|
priceNode.frame = self.bounds
|
||||||
|
priceNode.update(size: self.bounds.size, price: self.currentPrice, small: true, transition: .immediate)
|
||||||
|
}
|
||||||
|
|
||||||
let statusSize = CGSize(width: 40.0, height: 40.0)
|
let statusSize = CGSize(width: 40.0, height: 40.0)
|
||||||
if let statusNode = self.statusNode {
|
if let statusNode = self.statusNode {
|
||||||
statusNode.view.frame = CGRect(origin: CGPoint(x: floorToScreenPixels((self.bounds.width - statusSize.width) / 2.0), y: floorToScreenPixels((self.bounds.height - statusSize.height) / 2.0)), size: statusSize)
|
statusNode.view.frame = CGRect(origin: CGPoint(x: floorToScreenPixels((self.bounds.width - statusSize.width) / 2.0), y: floorToScreenPixels((self.bounds.height - statusSize.height) / 2.0)), size: statusSize)
|
||||||
|
|||||||
@ -2369,6 +2369,8 @@ public func channelStatsController(context: AccountContext, updatedPresentationD
|
|||||||
withdrawalDisposable.set((context.engine.peers.checkStarsRevenueWithdrawalAvailability()
|
withdrawalDisposable.set((context.engine.peers.checkStarsRevenueWithdrawalAvailability()
|
||||||
|> deliverOnMainQueue).start(error: { error in
|
|> deliverOnMainQueue).start(error: { error in
|
||||||
switch error {
|
switch error {
|
||||||
|
case .serverProvided:
|
||||||
|
return
|
||||||
case .requestPassword:
|
case .requestPassword:
|
||||||
let _ = (starsContext.state
|
let _ = (starsContext.state
|
||||||
|> take(1)
|
|> take(1)
|
||||||
|
|||||||
@ -234,6 +234,7 @@ public enum RequestStarsRevenueWithdrawalError : Equatable {
|
|||||||
case limitExceeded
|
case limitExceeded
|
||||||
case requestPassword
|
case requestPassword
|
||||||
case invalidPassword
|
case invalidPassword
|
||||||
|
case serverProvided(text: String)
|
||||||
}
|
}
|
||||||
|
|
||||||
func _internal_checkStarsRevenueWithdrawalAvailability(account: Account) -> Signal<Never, RequestStarsRevenueWithdrawalError> {
|
func _internal_checkStarsRevenueWithdrawalAvailability(account: Account) -> Signal<Never, RequestStarsRevenueWithdrawalError> {
|
||||||
@ -292,7 +293,9 @@ func _internal_requestStarsRevenueWithdrawalUrl(account: Account, peerId: PeerId
|
|||||||
|> mapToSignal { password -> Signal<String, RequestStarsRevenueWithdrawalError> in
|
|> mapToSignal { password -> Signal<String, RequestStarsRevenueWithdrawalError> in
|
||||||
return account.network.request(Api.functions.payments.getStarsRevenueWithdrawalUrl(peer: inputPeer, stars: amount, password: password), automaticFloodWait: false)
|
return account.network.request(Api.functions.payments.getStarsRevenueWithdrawalUrl(peer: inputPeer, stars: amount, password: password), automaticFloodWait: false)
|
||||||
|> mapError { error -> RequestStarsRevenueWithdrawalError in
|
|> mapError { error -> RequestStarsRevenueWithdrawalError in
|
||||||
if error.errorDescription.hasPrefix("FLOOD_WAIT") {
|
if error.errorCode == 406 {
|
||||||
|
return .serverProvided(text: error.errorDescription)
|
||||||
|
} else if error.errorDescription.hasPrefix("FLOOD_WAIT") {
|
||||||
return .limitExceeded
|
return .limitExceeded
|
||||||
} else if error.errorDescription == "PASSWORD_HASH_INVALID" {
|
} else if error.errorDescription == "PASSWORD_HASH_INVALID" {
|
||||||
return .invalidPassword
|
return .invalidPassword
|
||||||
|
|||||||
@ -679,6 +679,8 @@ public final class StarsStatisticsScreen: ViewControllerComponentContainer {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
switch error {
|
switch error {
|
||||||
|
case .serverProvided:
|
||||||
|
return
|
||||||
case .requestPassword:
|
case .requestPassword:
|
||||||
let _ = (revenueContext.state
|
let _ = (revenueContext.state
|
||||||
|> take(1)
|
|> take(1)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user