|
|
@@ -353,6 +353,7 @@ class ViewController: NSViewController {
|
|
|
private(set) var activeProductIDs = Set<String>()
|
|
|
|
|
|
var hasPremiumAccess: Bool { !activeProductIDs.isEmpty }
|
|
|
+ var hasLifetimePremiumAccess: Bool { activeProductIDs.contains(PremiumPlan.lifetime.rawValue) }
|
|
|
|
|
|
private var transactionUpdatesTask: Task<Void, Never>?
|
|
|
var onEntitlementsChanged: ((Bool) -> Void)?
|
|
|
@@ -3129,10 +3130,12 @@ class ViewController: NSViewController {
|
|
|
@MainActor
|
|
|
private func updatePremiumButtons() {
|
|
|
let isPremium = storeKitCoordinator.hasPremiumAccess
|
|
|
+ let hasLifetimePremium = storeKitCoordinator.hasLifetimePremiumAccess
|
|
|
settingsUpgradeButton?.title = ""
|
|
|
- settingsUpgradeTitleLabel?.stringValue = isPremium ? "Premium Active" : "Upgrade"
|
|
|
- settingsUpgradeButton?.isEnabled = isPremium == false
|
|
|
- settingsUpgradeButton?.alphaValue = isPremium ? 0.6 : 1.0
|
|
|
+ settingsUpgradeTitleLabel?.stringValue = hasLifetimePremium ? "Premium Lifetime" : "Upgrade"
|
|
|
+ settingsUpgradeButton?.isHidden = hasLifetimePremium
|
|
|
+ settingsUpgradeButton?.isEnabled = hasLifetimePremium == false
|
|
|
+ settingsUpgradeButton?.alphaValue = hasLifetimePremium ? 0.6 : 1.0
|
|
|
updatePremiumLockedSections()
|
|
|
if isPremium == false, isUserLoggedIn() {
|
|
|
applyMeetings([])
|
|
|
@@ -3215,7 +3218,7 @@ class ViewController: NSViewController {
|
|
|
}
|
|
|
|
|
|
@objc private func settingsUpgradePremiumTapped() {
|
|
|
- guard storeKitCoordinator.hasPremiumAccess == false else { return }
|
|
|
+ guard storeKitCoordinator.hasLifetimePremiumAccess == false else { return }
|
|
|
showPaywall()
|
|
|
}
|
|
|
|
|
|
@@ -3613,8 +3616,8 @@ class ViewController: NSViewController {
|
|
|
}
|
|
|
|
|
|
private func paywallOfferText(for plan: PremiumPlan) -> String {
|
|
|
- if storeKitCoordinator.hasPremiumAccess {
|
|
|
- return "Premium is active on this Apple ID."
|
|
|
+ if storeKitCoordinator.hasLifetimePremiumAccess {
|
|
|
+ return "Lifetime premium is active on this Apple ID."
|
|
|
}
|
|
|
let price = paywallDisplayPrice(for: plan)
|
|
|
switch plan {
|
|
|
@@ -3688,9 +3691,9 @@ class ViewController: NSViewController {
|
|
|
paywallContinueButton?.alphaValue = 0.75
|
|
|
return
|
|
|
}
|
|
|
- if storeKitCoordinator.hasPremiumAccess {
|
|
|
+ if storeKitCoordinator.hasLifetimePremiumAccess {
|
|
|
paywallContinueEnabled = false
|
|
|
- paywallContinueLabel?.stringValue = "Premium Active"
|
|
|
+ paywallContinueLabel?.stringValue = "Lifetime Premium Active"
|
|
|
paywallContinueButton?.alphaValue = 0.75
|
|
|
} else {
|
|
|
paywallContinueEnabled = true
|