|
|
@@ -487,6 +487,10 @@ private extension ViewController {
|
|
487
|
487
|
|
|
488
|
488
|
@objc private func premiumButtonClicked(_ sender: NSClickGestureRecognizer) {
|
|
489
|
489
|
if storeKitCoordinator.hasPremiumAccess {
|
|
|
490
|
+ if hasReachedRatingUsageThreshold && !userHasRated {
|
|
|
491
|
+ requestAppRatingIfEligible(markAsRated: false)
|
|
|
492
|
+ return
|
|
|
493
|
+ }
|
|
490
|
494
|
showPaywall(upgradeFlow: true, preferredPlan: .lifetime)
|
|
491
|
495
|
} else {
|
|
492
|
496
|
showPaywall()
|
|
|
@@ -1059,7 +1063,11 @@ private extension ViewController {
|
|
1059
|
1063
|
Task { [weak self] in
|
|
1060
|
1064
|
await self?.loadSchedule()
|
|
1061
|
1065
|
}
|
|
1062
|
|
- scheduleRatingPromptAfterPremiumUpgrade()
|
|
|
1066
|
+ // Skip delayed review prompt during initial launch entitlement sync.
|
|
|
1067
|
+ // We only want this after a real in-session upgrade.
|
|
|
1068
|
+ if hasCompletedInitialStoreKitSync {
|
|
|
1069
|
+ scheduleRatingPromptAfterPremiumUpgrade()
|
|
|
1070
|
+ }
|
|
1063
|
1071
|
}
|
|
1064
|
1072
|
if hadPremiumAccess && !hasPremiumAccess {
|
|
1065
|
1073
|
showPaywall()
|