mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-06-16 05:55:20 +00:00
Various fixes
This commit is contained in:
parent
12f3b4b64a
commit
699f709f2e
@ -35,7 +35,7 @@ public final class InAppPurchaseManager: NSObject {
|
||||
}
|
||||
|
||||
public enum RestoreState {
|
||||
case succeed
|
||||
case succeed(Bool)
|
||||
case failed
|
||||
}
|
||||
|
||||
@ -61,7 +61,7 @@ public final class InAppPurchaseManager: NSObject {
|
||||
private let premiumProductId: String
|
||||
|
||||
private var products: [Product] = []
|
||||
private var productsPromise = Promise<[Product]>()
|
||||
private var productsPromise = Promise<[Product]>([])
|
||||
private var productRequest: SKProductsRequest?
|
||||
|
||||
private let stateQueue = Queue()
|
||||
@ -290,16 +290,28 @@ extension InAppPurchaseManager: SKPaymentTransactionObserver {
|
||||
Queue.mainQueue().async {
|
||||
if let onRestoreCompletion = self.onRestoreCompletion {
|
||||
Logger.shared.log("InAppPurchaseManager", "Transactions restoration finished")
|
||||
onRestoreCompletion(.succeed)
|
||||
self.onRestoreCompletion = nil
|
||||
|
||||
if let receiptData = getReceiptData() {
|
||||
self.disposableSet.set(
|
||||
self.engine.payments.sendAppStoreReceipt(receipt: receiptData, restore: true).start(completed: {
|
||||
self.engine.payments.sendAppStoreReceipt(receipt: receiptData, restore: true).start(error: { error in
|
||||
Queue.mainQueue().async {
|
||||
if case .serverProvided = error {
|
||||
onRestoreCompletion(.succeed(true))
|
||||
} else {
|
||||
onRestoreCompletion(.succeed(false))
|
||||
}
|
||||
}
|
||||
}, completed: {
|
||||
Queue.mainQueue().async {
|
||||
onRestoreCompletion(.succeed(false))
|
||||
}
|
||||
Logger.shared.log("InAppPurchaseManager", "Sent restored receipt")
|
||||
}),
|
||||
forKey: "restore"
|
||||
)
|
||||
} else {
|
||||
onRestoreCompletion(.succeed(false))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -495,24 +495,24 @@ class VoiceChatFullscreenParticipantItemNode: ItemListRevealOptionsItemNode {
|
||||
|
||||
let leftInset: CGFloat = 58.0 + params.leftInset
|
||||
|
||||
let premiumConfiguration = PremiumConfiguration.with(appConfiguration: item.context.currentAppConfiguration.with { $0 })
|
||||
// let premiumConfiguration = PremiumConfiguration.with(appConfiguration: item.context.currentAppConfiguration.with { $0 })
|
||||
|
||||
var titleIconsWidth: CGFloat = 0.0
|
||||
var currentCredibilityIconImage: UIImage?
|
||||
var credibilityIconOffset: CGFloat = 0.0
|
||||
if item.peer.isScam {
|
||||
currentCredibilityIconImage = PresentationResourcesChatList.scamIcon(item.presentationData.theme, strings: item.presentationData.strings, type: .regular)
|
||||
credibilityIconOffset = 2.0
|
||||
} else if item.peer.isFake {
|
||||
currentCredibilityIconImage = PresentationResourcesChatList.fakeIcon(item.presentationData.theme, strings: item.presentationData.strings, type: .regular)
|
||||
credibilityIconOffset = 2.0
|
||||
} else if item.peer.isVerified {
|
||||
currentCredibilityIconImage = PresentationResourcesChatList.verifiedIcon(item.presentationData.theme)
|
||||
credibilityIconOffset = 3.0
|
||||
} else if item.peer.isPremium && !premiumConfiguration.isPremiumDisabled {
|
||||
currentCredibilityIconImage = PresentationResourcesChatList.premiumIcon(item.presentationData.theme)
|
||||
credibilityIconOffset = 3.0
|
||||
}
|
||||
let currentCredibilityIconImage: UIImage? = nil
|
||||
let credibilityIconOffset: CGFloat = 0.0
|
||||
// if item.peer.isScam {
|
||||
// currentCredibilityIconImage = PresentationResourcesChatList.scamIcon(item.presentationData.theme, strings: item.presentationData.strings, type: .regular)
|
||||
// credibilityIconOffset = 2.0
|
||||
// } else if item.peer.isFake {
|
||||
// currentCredibilityIconImage = PresentationResourcesChatList.fakeIcon(item.presentationData.theme, strings: item.presentationData.strings, type: .regular)
|
||||
// credibilityIconOffset = 2.0
|
||||
// } else if item.peer.isVerified {
|
||||
// currentCredibilityIconImage = PresentationResourcesChatList.verifiedIcon(item.presentationData.theme)
|
||||
// credibilityIconOffset = 3.0
|
||||
// } else if item.peer.isPremium && !premiumConfiguration.isPremiumDisabled {
|
||||
// currentCredibilityIconImage = PresentationResourcesChatList.premiumIcon(item.presentationData.theme)
|
||||
// credibilityIconOffset = 3.0
|
||||
// }
|
||||
|
||||
if let currentCredibilityIconImage = currentCredibilityIconImage {
|
||||
titleIconsWidth += 4.0 + currentCredibilityIconImage.size.width
|
||||
|
@ -7,6 +7,7 @@ import TelegramApi
|
||||
public enum AssignAppStoreTransactionError {
|
||||
case generic
|
||||
case timeout
|
||||
case serverProvided
|
||||
}
|
||||
|
||||
func _internal_sendAppStoreReceipt(account: Account, receipt: Data, restore: Bool) -> Signal<Never, AssignAppStoreTransactionError> {
|
||||
@ -15,8 +16,12 @@ func _internal_sendAppStoreReceipt(account: Account, receipt: Data, restore: Boo
|
||||
flags |= (1 << 0)
|
||||
}
|
||||
return account.network.request(Api.functions.payments.assignAppStoreTransaction(flags: flags, receipt: Buffer(data: receipt)))
|
||||
|> mapError { _ -> AssignAppStoreTransactionError in
|
||||
return .generic
|
||||
|> mapError { error -> AssignAppStoreTransactionError in
|
||||
if error.errorCode == 406 {
|
||||
return .serverProvided
|
||||
} else {
|
||||
return .generic
|
||||
}
|
||||
}
|
||||
|> mapToSignal { updates -> Signal<Never, AssignAppStoreTransactionError> in
|
||||
account.stateManager.addUpdates(updates)
|
||||
|
@ -778,15 +778,17 @@ func openExternalUrlImpl(context: AccountContext, urlContext: OpenURLContext, ur
|
||||
context.inAppPurchaseManager?.restorePurchases(completion: { [weak statusController] result in
|
||||
statusController?.dismiss()
|
||||
|
||||
let text: String
|
||||
let text: String?
|
||||
switch result {
|
||||
case .succeed:
|
||||
text = presentationData.strings.Premium_Restore_Success
|
||||
case let .succeed(serverProvided):
|
||||
text = serverProvided ? nil : presentationData.strings.Premium_Restore_Success
|
||||
case .failed:
|
||||
text = presentationData.strings.Premium_Restore_ErrorUnknown
|
||||
}
|
||||
let alertController = textAlertController(context: context, title: nil, text: text, actions: [TextAlertAction(type: .defaultAction, title: presentationData.strings.Common_OK, action: {})])
|
||||
context.sharedContext.presentGlobalController(alertController, nil)
|
||||
if let text = text {
|
||||
let alertController = textAlertController(context: context, title: nil, text: text, actions: [TextAlertAction(type: .defaultAction, title: presentationData.strings.Common_OK, action: {})])
|
||||
context.sharedContext.presentGlobalController(alertController, nil)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user