Przeglądaj źródła

Show paywall when premium expires.

Open the paywall when StoreKit entitlements transition from premium to non-premium.

Made-with: Cursor
huzaifahayat12 5 dni temu
rodzic
commit
0f3297ac3e
1 zmienionych plików z 9 dodań i 1 usunięć
  1. 9 1
      zoom_app/ViewController.swift

+ 9 - 1
zoom_app/ViewController.swift

@@ -198,6 +198,7 @@ class ViewController: NSViewController {
198
     private weak var paywallContinueButton: NSView?
198
     private weak var paywallContinueButton: NSView?
199
     private var paywallPurchaseTask: Task<Void, Never>?
199
     private var paywallPurchaseTask: Task<Void, Never>?
200
     private var paywallContinueEnabled = true
200
     private var paywallContinueEnabled = true
201
+    private var lastKnownPremiumAccess = false
201
     private var allScheduledMeetings: [ScheduledMeeting] = []
202
     private var allScheduledMeetings: [ScheduledMeeting] = []
202
     private var selectedMeetingsDayStart: Date = Calendar.current.startOfDay(for: Date())
203
     private var selectedMeetingsDayStart: Date = Calendar.current.startOfDay(for: Date())
203
     private var selectedHomeSidebarItem: String = "Home"
204
     private var selectedHomeSidebarItem: String = "Home"
@@ -1519,7 +1520,14 @@ class ViewController: NSViewController {
1519
         storeKitStartupTask?.cancel()
1520
         storeKitStartupTask?.cancel()
1520
         storeKitCoordinator.onEntitlementsChanged = { [weak self] _ in
1521
         storeKitCoordinator.onEntitlementsChanged = { [weak self] _ in
1521
             DispatchQueue.main.async {
1522
             DispatchQueue.main.async {
1522
-                self?.updatePremiumButtons()
1523
+                guard let self else { return }
1524
+                let newIsPremium = self.storeKitCoordinator.hasPremiumAccess
1525
+                let wasPremium = self.lastKnownPremiumAccess
1526
+                self.lastKnownPremiumAccess = newIsPremium
1527
+                self.updatePremiumButtons()
1528
+                if wasPremium && !newIsPremium {
1529
+                    self.showPaywall()
1530
+                }
1523
             }
1531
             }
1524
         }
1532
         }
1525
         storeKitStartupTask = Task { [weak self] in
1533
         storeKitStartupTask = Task { [weak self] in