Browse Source

【订阅】主页顶部入口文案情形判断添加

lizhe 1 year ago
parent
commit
faa6f61953

+ 0 - 8
PDF Office/PDF Master.xcodeproj/project.pbxproj

@@ -1066,9 +1066,6 @@
 		9FF94F1C29A770B500B1EF69 /* KMFillSignShapePanel.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9FF94F1829A770B500B1EF69 /* KMFillSignShapePanel.xib */; };
 		9FF94F1D29A770B500B1EF69 /* KMFillSignShapePanel.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9FF94F1829A770B500B1EF69 /* KMFillSignShapePanel.xib */; };
 		9FF94F1E29A770B500B1EF69 /* KMFillSignShapePanel.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9FF94F1829A770B500B1EF69 /* KMFillSignShapePanel.xib */; };
-		AD015FB229AB45D200A57062 /* KMSubscriptionManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = AD015FB129AB45D200A57062 /* KMSubscriptionManager.swift */; };
-		AD015FB329AB45D200A57062 /* KMSubscriptionManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = AD015FB129AB45D200A57062 /* KMSubscriptionManager.swift */; };
-		AD015FB429AB45D200A57062 /* KMSubscriptionManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = AD015FB129AB45D200A57062 /* KMSubscriptionManager.swift */; };
 		AD015FB729AB484400A57062 /* KMLightMemberConfig.swift in Sources */ = {isa = PBXBuildFile; fileRef = AD015FB629AB484400A57062 /* KMLightMemberConfig.swift */; };
 		AD015FB829AB484400A57062 /* KMLightMemberConfig.swift in Sources */ = {isa = PBXBuildFile; fileRef = AD015FB629AB484400A57062 /* KMLightMemberConfig.swift */; };
 		AD015FB929AB484400A57062 /* KMLightMemberConfig.swift in Sources */ = {isa = PBXBuildFile; fileRef = AD015FB629AB484400A57062 /* KMLightMemberConfig.swift */; };
@@ -3859,7 +3856,6 @@
 		9FF94F1029A7476000B1EF69 /* KMDesignPropertySelector.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = KMDesignPropertySelector.xib; sourceTree = "<group>"; };
 		9FF94F1729A770B500B1EF69 /* KMFillSignShapePanel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMFillSignShapePanel.swift; sourceTree = "<group>"; };
 		9FF94F1829A770B500B1EF69 /* KMFillSignShapePanel.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = KMFillSignShapePanel.xib; sourceTree = "<group>"; };
-		AD015FB129AB45D200A57062 /* KMSubscriptionManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMSubscriptionManager.swift; sourceTree = "<group>"; };
 		AD015FB629AB484400A57062 /* KMLightMemberConfig.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMLightMemberConfig.swift; sourceTree = "<group>"; };
 		AD0E8AAF2A31B76300DBFD3C /* KMInAppPurchaseManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMInAppPurchaseManager.swift; sourceTree = "<group>"; };
 		AD0E8AB32A31B78900DBFD3C /* KMDMGPurchaseManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMDMGPurchaseManager.swift; sourceTree = "<group>"; };
@@ -7055,7 +7051,6 @@
 		ADE3C1D029A5A8B200793B13 /* Manager */ = {
 			isa = PBXGroup;
 			children = (
-				AD015FB129AB45D200A57062 /* KMSubscriptionManager.swift */,
 				ADE3C1FC29A5C44700793B13 /* KMLightMemberManager.swift */,
 				ADE3C1EC29A5AFB100793B13 /* KMRequestServerManager.swift */,
 			);
@@ -10467,7 +10462,6 @@
 				F37322F9292DF9410013862C /* CPDFRedactAnnotation+PDFListView.m in Sources */,
 				AD867FA129DEB4B000F00440 /* KMBOTAAnnotationTool.swift in Sources */,
 				8942F80E29277BAF00389627 /* NSMenu+Category.m in Sources */,
-				AD015FB229AB45D200A57062 /* KMSubscriptionManager.swift in Sources */,
 				BBAFC844298519A500D0648E /* KMFileAttribute.m in Sources */,
 				9F1FE4BD29406E4700E952CA /* URLDropTarget.m in Sources */,
 				9F0CB5052986561E00007028 /* KMDesignToken+BorderRight.swift in Sources */,
@@ -11259,7 +11253,6 @@
 				AD9527CB295297B70039D2BC /* KMPrintModel.swift in Sources */,
 				AD867FA229DEB4B000F00440 /* KMBOTAAnnotationTool.swift in Sources */,
 				9F1FE4B829406E4700E952CA /* CTBrowserFrameView.m in Sources */,
-				AD015FB329AB45D200A57062 /* KMSubscriptionManager.swift in Sources */,
 				BBAFC845298519A500D0648E /* KMFileAttribute.m in Sources */,
 				9F0CB5062986561E00007028 /* KMDesignToken+BorderRight.swift in Sources */,
 				AD0FA50B29A9E74200EDEB50 /* KMLoginInputPasswordView.swift in Sources */,
@@ -12158,7 +12151,6 @@
 				9F1FE4C829406E4700E952CA /* CTUtil.m in Sources */,
 				ADC075CC29866DDC006C752F /* KMBatchConvertPDFItemView.swift in Sources */,
 				89E4E6E52963CD82002DBA6F /* KMGeneralAnnotationViewController.m in Sources */,
-				AD015FB429AB45D200A57062 /* KMSubscriptionManager.swift in Sources */,
 				BB147010299DC0D100784A6A /* OIDScopes.m in Sources */,
 				BB147022299DC0D100784A6A /* OIDServiceDiscovery.m in Sources */,
 				9FAAA327290A69920046FFCE /* KMToolSetScroller.swift in Sources */,

+ 13 - 8
PDF Office/PDF Master/Class/ChromiumTabs/KMToolbarRightView.swift

@@ -59,12 +59,12 @@ import Cocoa
                 self.advancedViewRightConstraint.constant = 4.0
                 self.advancedLabel.font = NSFont.SFProTextRegular(12.0)
                 self.advancedLabel.textColor = NSColor(hex: "#FFFFFF")
-                self.advancedLabel.stringValue = NSLocalizedString("Enjoy Advanced Features", comment: "")
-            }
-            
-            if self.rightSegmentControlConstraint != nil {
-                let size = self.fetchAdvancedViewSize()
-                self.rightSegmentControlConstraint.constant = size.width + 20
+                
+                var advancedString = NSLocalizedString("Enjoy Advanced Features", comment: "")
+                if KMLightMemberManager.manager.purchaseState == .trial {
+                    advancedString = NSLocalizedString("Trialling", comment: "")
+                }
+                self.advancedLabel.stringValue = advancedString
             }
         } else {
             if self.advancedContentView != nil {
@@ -91,16 +91,21 @@ import Cocoa
     }
     
     func fetchAdvancedViewSize() -> CGSize {
+        var advancedString = NSLocalizedString("Enjoy Advanced Features", comment: "")
+        if KMLightMemberManager.manager.purchaseState == .trial {
+            advancedString = NSLocalizedString("Trialling", comment: "")
+        }
+        
         let paragraphStyle = NSMutableParagraphStyle()
         paragraphStyle.lineHeightMultiple = 1.32
         paragraphStyle.alignment = .right
         let attributes = [NSAttributedString.Key.paragraphStyle: paragraphStyle,
                           NSAttributedString.Key.font : NSFont.SFProTextRegular(12.0)]
-        let title: NSString = NSLocalizedString("Enjoy Advanced Features", comment: "") as NSString
+        let title: NSString = advancedString as NSString
         let size = title.boundingRect(with: CGSize(width: 300, height: 24) ,
                                       attributes: attributes).size
         
-        return size
+        return CGSize(width: size.width + 8, height: size.height)
     }
     
     func addNotification() {

+ 1 - 1
PDF Office/PDF Master/Class/ChromiumTabs/src/Browser Window/CTBrowserWindowController.m

@@ -881,7 +881,7 @@ static CTBrowserWindowController* _currentMain = nil; // weak
     CGFloat rightWidth = NSWidth([rightStripView frame]);
     if ([[KMLightMemberManager manager] canShowAdvancedView] && ![[KMLightMemberManager manager] isLogin]) {
 //        rightWidth = NSWidth([rightStripView frame]);
-        rightWidth = 56.0+12+142;
+        rightWidth = 56.0 + rightStripView.fetchAdvancedViewSize.width;
 //        rightWidth += rightStripView.fetchAdvancedViewSize.width;
     } else {
         rightWidth = 56.0;

+ 10 - 0
PDF Office/PDF Master/Class/KMLightMember/InAppPurchase/KMPurchaseManager.swift

@@ -7,6 +7,14 @@
 
 import Cocoa
         
+enum KMPurchaseManagerState: String, CaseIterable {
+    case unknow = "unknow"
+    case trial = "Trial" //试用
+    case trialExpired = "Trial Expired" //试用过期
+    case subscription = "Subscription" //订阅
+    case subscriptionExpired = "Subscription Expired" //订阅过期
+}
+
 #if VERSION_DMG
 
 #endif
@@ -15,6 +23,8 @@ typealias KMPurchaseCompletion = (_ isSuccess: Bool, _ error: String) -> Void
 typealias KMPurchaseFetchProductCompletion = (_ isSuccess: Bool, _ products: Array<Any>, _ error: String?) -> Void
 class KMPurchaseManager: NSObject {
     public static let manager = KMPurchaseManager()
+    
+    var state: KMPurchaseManagerState = .unknow
     var availableProducts: [KMProduct] = []
     
     override init() {

+ 12 - 2
PDF Office/PDF Master/Class/KMLightMember/Manager/KMLightMemberManager.swift

@@ -26,9 +26,9 @@ enum KMLightMemberUserState: String, CaseIterable {
     var token: KMLightMemberToken = KMLightMemberToken()
     
     var userState: KMLightMemberUserState = .unknown //用户状态
-    var subscriptionState: KMSubscriptionState { //订阅状态
+    var purchaseState: KMPurchaseManagerState { //订阅状态
         get {
-            return KMSubscriptionManager.manager.state
+            return KMPurchaseManager.manager.state
         }
     }
     
@@ -191,4 +191,14 @@ extension KMLightMemberManager {
         }
         return result
     }
+    
+    //是否能使用付费功能
+    func canPayFunction(needNetworking: Bool = false) async -> Bool {
+        var result: Bool = false
+        //先确认可以使用高级功能,再确认是否已经订阅
+        if await self.canUseAdvanced() && (self.purchaseState == .subscription || self.purchaseState == .trial) {
+            result = true
+        }
+        return result
+    }
 }

+ 0 - 22
PDF Office/PDF Master/Class/KMLightMember/Manager/KMSubscriptionManager.swift

@@ -1,22 +0,0 @@
-//
-//  KMSubscriptionManager.swift
-//  PDF Master
-//
-//  Created by lizhe on 2023/2/26.
-//
-
-import Cocoa
-
-enum KMSubscriptionState: String, CaseIterable {
-    case unknow = "unknow"
-    case trial = "Trial"
-    case trialExpired = "Trial Expired"
-    case subscription = "Subscription"
-    case subscriptionExpired = "Subscription Expired"
-}
-
-class KMSubscriptionManager: NSObject {
-    static let manager = KMSubscriptionManager()
-    
-    var state: KMSubscriptionState = .unknow
-}