iap warning view
This commit is contained in:
@@ -19,6 +19,7 @@ public enum StoreError: Error {
|
||||
|
||||
class IAPManager: ObservableObject {
|
||||
@Published private(set) var showIAP = false
|
||||
@Published private(set) var showIAPWarning = false
|
||||
@Published private(set) var subscriptions = [Product: (status: [Product.SubscriptionInfo.Status], renewalInfo: RenewalInfo)?]()
|
||||
@AppStorage(UserDefaultsStore.Keys.firstLaunchDate.rawValue, store: GroupUserDefaults.groupDefaults) private var firstLaunchDate = Date()
|
||||
|
||||
@@ -112,6 +113,7 @@ class IAPManager: ObservableObject {
|
||||
if let expireDate = expireDate {
|
||||
expireOnTimer = Timer.init(fire: expireDate, interval: 0, repeats: false, block: { _ in
|
||||
self.decideShowIAP()
|
||||
self.decideShowIAPWarning()
|
||||
})
|
||||
RunLoop.main.add(expireOnTimer!, forMode: .common)
|
||||
} else {
|
||||
@@ -130,6 +132,7 @@ class IAPManager: ObservableObject {
|
||||
await updateCustomerProductStatus()
|
||||
|
||||
decideShowIAP()
|
||||
decideShowIAPWarning()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -158,6 +161,16 @@ class IAPManager: ObservableObject {
|
||||
}
|
||||
}
|
||||
|
||||
func decideShowIAPWarning() {
|
||||
DispatchQueue.main.async {
|
||||
if self.currentSubscription != nil {
|
||||
self.showIAPWarning = false
|
||||
} else {
|
||||
self.showIAPWarning = true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func listenForTransactions() -> Task<Void, Error> {
|
||||
return Task.detached {
|
||||
//Iterate through any transactions that don't come from a direct call to `purchase()`.
|
||||
@@ -243,6 +256,7 @@ class IAPManager: ObservableObject {
|
||||
print("purchasedSubscriptions \(purchasedSubscriptions)")
|
||||
if !purchasedSubscriptions.isEmpty {
|
||||
self.showIAP = false
|
||||
self.showIAPWarning = false
|
||||
}
|
||||
|
||||
for sub in purchasedSubscriptions {
|
||||
@@ -280,6 +294,7 @@ class IAPManager: ObservableObject {
|
||||
await transaction.finish()
|
||||
|
||||
decideShowIAP()
|
||||
decideShowIAPWarning()
|
||||
|
||||
return transaction
|
||||
case .userCancelled, .pending:
|
||||
|
||||
Reference in New Issue
Block a user