12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- //
- // KMNewUserGiftManager.swift
- // PDF Reader Pro
- //
- // Created by User-Tangchao on 2025/1/8.
- //
- import Cocoa
- //@objc enum KMWindowShowState: UInt {
- // case undetermined
- // case no
- // case yes
- //}
- @objcMembers class KMNewUserGiftManager: NSObject {
- static let `default` = KMNewUserGiftManager()
-
- // 登陆进度状态
- var loginProgressState: KMProgressState = .none
-
- // 获取凭证进度状态
- var fetchReceiptProgressState: KMProgressState = .none
-
- var iapProductLoadProgressState: KMProgressState = .none
-
- var advertisementProgressState: KMProgressState = .none
-
- var hasTopRightAdvertisement = false
-
- var progressState: KMProgressState {
- get {
- if loginProgressState == .none {
- return .none
- }
- if fetchReceiptProgressState == .none {
- return .none
- }
- if advertisementProgressState == .none {
- return .none
- }
- #if VERSION_DMG
- #else
- if iapProductLoadProgressState == .none {
- return .none
- }
- if iapProductLoadProgressState == .failure {
- return .failure
- }
- #endif
- if loginProgressState == .failure {
- return .failure
- }
- if fetchReceiptProgressState == .failure {
- return .failure
- }
-
- if advertisementProgressState == .failure {
- return .failure
- }
- return .success
- }
- }
-
- // 是否需要显示新手礼
- func needShow() -> Bool {
- if self.progressState == .none {
- return false
- }
- if KMMemberInfo.shared.isMemberAllFunction { // 有权益 (本地 & 账号)
- return false
- }
- if hasTopRightAdvertisement { // 右上角有广告
- return false
- }
- #if VERSION_DMG
- return true
- #else
- // 是否能享受新手礼 【Apple ID】
- let man = IAPProductsManager.default()
- guard let model = man?.receiptModel else {
- return false
- }
- // 商品是否配置了新手礼
- guard let price = man?.fourDevicesAllAccessPackNew6Months_lite?.introPrice(), price.isEmpty == false else {
- return false
- }
-
- guard let groupId = man?.fourDevicesAllAccessPackNew12months_lite?.product?.subscriptionGroupIdentifier, groupId.isEmpty == false else {
- return false
- }
- return IAPReceiptTool.isNewUser(with: model, withGroupIdentifier: groupId)
- #endif
- }
- }
|