瀏覽代碼

Show paywall when premium expires.

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

Made-with: Cursor
huzaifahayat12 3 月之前
父節點
當前提交
0f3297ac3e
共有 1 個文件被更改,包括 9 次插入1 次删除
  1. 9 1
      zoom_app/ViewController.swift

+ 9 - 1
zoom_app/ViewController.swift

@@ -198,6 +198,7 @@ class ViewController: NSViewController {
     private weak var paywallContinueButton: NSView?
     private var paywallPurchaseTask: Task<Void, Never>?
     private var paywallContinueEnabled = true
+    private var lastKnownPremiumAccess = false
     private var allScheduledMeetings: [ScheduledMeeting] = []
     private var selectedMeetingsDayStart: Date = Calendar.current.startOfDay(for: Date())
     private var selectedHomeSidebarItem: String = "Home"
@@ -1519,7 +1520,14 @@ class ViewController: NSViewController {
         storeKitStartupTask?.cancel()
         storeKitCoordinator.onEntitlementsChanged = { [weak self] _ in
             DispatchQueue.main.async {
-                self?.updatePremiumButtons()
+                guard let self else { return }
+                let newIsPremium = self.storeKitCoordinator.hasPremiumAccess
+                let wasPremium = self.lastKnownPremiumAccess
+                self.lastKnownPremiumAccess = newIsPremium
+                self.updatePremiumButtons()
+                if wasPremium && !newIsPremium {
+                    self.showPaywall()
+                }
             }
         }
         storeKitStartupTask = Task { [weak self] in