ソースを参照

Show paywall when premium expires.

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

Made-with: Cursor
huzaifahayat12 5 日 前
コミット
0f3297ac3e
共有1 個のファイルを変更した9 個の追加1 個の削除を含む
  1. 9 1
      zoom_app/ViewController.swift

+ 9 - 1
zoom_app/ViewController.swift

@@ -198,6 +198,7 @@ class ViewController: NSViewController {
198 198
     private weak var paywallContinueButton: NSView?
199 199
     private var paywallPurchaseTask: Task<Void, Never>?
200 200
     private var paywallContinueEnabled = true
201
+    private var lastKnownPremiumAccess = false
201 202
     private var allScheduledMeetings: [ScheduledMeeting] = []
202 203
     private var selectedMeetingsDayStart: Date = Calendar.current.startOfDay(for: Date())
203 204
     private var selectedHomeSidebarItem: String = "Home"
@@ -1519,7 +1520,14 @@ class ViewController: NSViewController {
1519 1520
         storeKitStartupTask?.cancel()
1520 1521
         storeKitCoordinator.onEntitlementsChanged = { [weak self] _ in
1521 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 1533
         storeKitStartupTask = Task { [weak self] in