Explorar o código

Close paywall automatically after premium unlock.

Dismiss any presented paywall overlay or window when entitlement changes to premium so users immediately return to the app.

Made-with: Cursor
huzaifahayat12 hai 1 mes
pai
achega
4b69794d8e
Modificáronse 1 ficheiros con 12 adicións e 1 borrados
  1. 12 1
      meetings_app/ViewController.swift

+ 12 - 1
meetings_app/ViewController.swift

@@ -1132,6 +1132,16 @@ private extension ViewController {
1132
         }
1132
         }
1133
     }
1133
     }
1134
 
1134
 
1135
+    private func dismissPaywallIfPresented() {
1136
+        if !Thread.isMainThread {
1137
+            DispatchQueue.main.async { [weak self] in
1138
+                self?.dismissPaywallIfPresented()
1139
+            }
1140
+            return
1141
+        }
1142
+        closePaywallClicked(nil)
1143
+    }
1144
+
1135
     @objc private func paywallFooterLinkClicked(_ sender: NSClickGestureRecognizer) {
1145
     @objc private func paywallFooterLinkClicked(_ sender: NSClickGestureRecognizer) {
1136
         guard let view = sender.view else { return }
1146
         guard let view = sender.view else { return }
1137
         let action = paywallFooterActionByView[ObjectIdentifier(view)]
1147
         let action = paywallFooterActionByView[ObjectIdentifier(view)]
@@ -1331,6 +1341,7 @@ private extension ViewController {
1331
         }
1341
         }
1332
 
1342
 
1333
         if !hadPremiumAccess && hasPremiumAccess {
1343
         if !hadPremiumAccess && hasPremiumAccess {
1344
+            dismissPaywallIfPresented()
1334
             if selectedSidebarPage != .joinMeetings {
1345
             if selectedSidebarPage != .joinMeetings {
1335
                 Task { [weak self] in
1346
                 Task { [weak self] in
1336
                     await self?.loadSchedule()
1347
                     await self?.loadSchedule()
@@ -1532,7 +1543,7 @@ private extension ViewController {
1532
                     await self?.loadSchedule()
1543
                     await self?.loadSchedule()
1533
                 }
1544
                 }
1534
                 self.showSimpleAlert(title: "Purchase Complete", message: "Premium has been unlocked successfully.")
1545
                 self.showSimpleAlert(title: "Purchase Complete", message: "Premium has been unlocked successfully.")
1535
-                self.paywallWindow?.performClose(nil)
1546
+                self.dismissPaywallIfPresented()
1536
                 self.scheduleRatingPromptAfterPremiumUpgrade()
1547
                 self.scheduleRatingPromptAfterPremiumUpgrade()
1537
             case .cancelled:
1548
             case .cancelled:
1538
                 break
1549
                 break