Mercurial > public > simoleon
view Simoleon/Helpers/RestoreButton.swift @ 29:c52966834f83
Add localised strings
author | Dennis Concepción Martín <dennisconcepcionmartin@gmail.com> |
---|---|
date | Thu, 22 Jul 2021 22:30:54 +0100 |
parents | 4f862c618b44 |
children | f76d0e26c178 |
line wrap: on
line source
// // RestoreButton.swift // Simoleon // // Created by Dennis Concepción Martín on 22/07/2021. // import SwiftUI import Purchases struct RestoreButton: View { @Binding var showingSubscriptionPaywall: Bool @EnvironmentObject var subscriptionController: SubscriptionController @State private var restoringPurchases = false @State private var alertTitle = Text("") @State private var alertMessage = Text("") @State private var showingAlert = false var body: some View { Button(action: restorePurchases) { if restoringPurchases { ProgressView() } else { Text("Restore purchases", comment: "Button to restore in-App purchases") } } .alert(isPresented: $showingAlert) { Alert(title: alertTitle, message: alertMessage, dismissButton: .default(Text("Ok", comment: "Button to dismiss alert"))) } } private func restorePurchases() { restoringPurchases = true Purchases.shared.restoreTransactions { purchaserInfo, error in if purchaserInfo?.entitlements["all"]?.isActive == true { subscriptionController.isActive = true showingSubscriptionPaywall = false } else { alertTitle = Text("No subscriptions found", comment: "Alert title") alertMessage = Text("You are not subscripted to Simoleon yet.", comment: "Alert message") restoringPurchases = false showingAlert = true } if let error = error as NSError? { alertTitle = Text(error.localizedDescription) alertMessage = Text(error.localizedFailureReason ?? "If the problem persists send an email to dmartin@dennistech.io") showingAlert = true } } } } struct RestoreButton_Previews: PreviewProvider { static var previews: some View { RestoreButton(showingSubscriptionPaywall: .constant(true)) } }