Browse Source

【综合】整理代码

tangchao 3 months ago
parent
commit
b4f7760330

+ 7 - 0
PDF Office/PDF Master/AppDelegate.swift

@@ -208,8 +208,12 @@ class AppDelegate: NSObject, NSApplicationDelegate, iRateDelegate{
             KMHTTP.OEM_POST(urlString: kURLAPI_oemGetPermissions, parameter: nil, headers: header) { success, dataModel, err in
                 if success == false { // App 启动 Token 过期 退出登陆 & 解除设备绑定,需用户重新登陆再绑定
                     KMDataManager.ud_set("", forKey: kAccountTokenKey)
+                    AccountManager.manager.isLogin = false
                     AccountManager.manager.isVip = false
                     AccountManager.manager.hasAiPermissions = false
+                    
+                    NotificationCenter.default.post(name: .loginStatusChanged, object: nil)
+                    
                     VerificationManager.default().unactivateDeviceWithcomplention { status, infoDict, err in
                         VerificationManager.default().verification {status1 , infoDict1, err1 in
                             
@@ -218,8 +222,11 @@ class AppDelegate: NSObject, NSApplicationDelegate, iRateDelegate{
                     return
                 }
                 let model = AccountRightModel(dict: dataModel?.data as? [String : Any] ?? [:])
+                AccountManager.manager.isLogin = true
                 AccountManager.manager.isVip = model.isVip == 1
                 AccountManager.manager.hasAiPermissions = model.hasAiPermissions == 1
+                
+                NotificationCenter.default.post(name: .loginStatusChanged, object: nil)
             }
         }
     }

+ 3 - 1
PDF Office/PDF Master/Class/Account/Controller/AccountProfileController.swift

@@ -177,9 +177,11 @@ class AccountProfileController: NSViewController {
                 let model = AccountRightModel(dict: dataModel?.data as? [String : Any] ?? [:])
                 self.model = model
                 let isVip = model.isVip
-                
+                AccountManager.manager.isLogin = true
                 AccountManager.manager.isVip = model.isVip == 1
                 AccountManager.manager.hasAiPermissions = model.hasAiPermissions == 1
+                
+                NotificationCenter.default.post(name: .loginStatusChanged, object: nil)
                 if isVip == 1 {
                     self.showRight()
                 } else {

+ 2 - 0
PDF Office/PDF Master/Class/Account/Manager/AccountManager.swift

@@ -11,6 +11,8 @@ import Cocoa
     
     static let manager = AccountManager()
     
+    var isLogin = false
+    
     var isVip = false
     
     var hasAiPermissions = false

+ 24 - 0
PDF Office/PDF Master/Class/Account/Window/AccountCenterWindowController.swift

@@ -18,6 +18,10 @@ let kCancelSubscriptionUrlString            = "https://www.anyrecover.com/suppor
 
 let kPwdInputStrings = "!\"#$%&'()*+,-./:;<>=?@[\\]^_`{|}~0123456789qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM"
 
+extension NSNotification.Name {
+    static let loginStatusChanged = NSNotification.Name("KMLoginStatusChangedNotification")
+}
+
 class AccountCenterWindowController: NSWindowController {
     @IBOutlet weak var contentBox: NSBox!
     
@@ -63,13 +67,19 @@ class AccountCenterWindowController: NSWindowController {
             let header = ["Token" : token]
             KMHTTP.OEM_POST(urlString: kURLAPI_oemGetPermissions, parameter: nil, headers: header) { success, dataModel, err in
                 if success == false {
+                    AccountManager.manager.isLogin = false
+                    
+                    NotificationCenter.default.post(name: .loginStatusChanged, object: nil)
                     self.gotoLogin()
                     return
                 }
                 let model = AccountRightModel(dict: dataModel?.data as? [String : Any] ?? [:])
+                AccountManager.manager.isLogin = true
                 AccountManager.manager.isVip = model.isVip == 1
                 AccountManager.manager.hasAiPermissions = model.hasAiPermissions == 1
                 
+                NotificationCenter.default.post(name: .loginStatusChanged, object: nil)
+                
                 self.gotoCenter(model: model, infoModel: nil)
             }
         } else {
@@ -114,12 +124,19 @@ class AccountCenterWindowController: NSWindowController {
                 let header = ["Token" : model.token ?? ""]
                 KMHTTP.OEM_POST(urlString: kURLAPI_oemGetPermissions, parameter: nil, headers: header) { success, dataModel, err in
                     if success == false {
+                        AccountManager.manager.isLogin = false
+                        
+                        NotificationCenter.default.post(name: .loginStatusChanged, object: nil)
                         return
                     }
                     let rmodel = AccountRightModel(dict: dataModel?.data as? [String : Any] ?? [:])
                     
+                    AccountManager.manager.isLogin = true
                     AccountManager.manager.isVip = rmodel.isVip == 1
                     AccountManager.manager.hasAiPermissions = rmodel.hasAiPermissions == 1
+                    
+                    NotificationCenter.default.post(name: .loginStatusChanged, object: nil)
+                    
                     self.gotoCenter(model: rmodel, infoModel: model)
                 }
             }
@@ -160,12 +177,19 @@ class AccountCenterWindowController: NSWindowController {
                 let header = ["Token" : model.token ?? ""]
                 KMHTTP.OEM_POST(urlString: kURLAPI_oemGetPermissions, parameter: nil, headers: header) { success, dataModel, err in
                     if success == false {
+                        AccountManager.manager.isLogin = false
+                        
+                        NotificationCenter.default.post(name: .loginStatusChanged, object: nil)
                         return
                     }
                     let rmodel = AccountRightModel(dict: dataModel?.data as? [String : Any] ?? [:])
                     
+                    AccountManager.manager.isLogin = true
                     AccountManager.manager.isVip = rmodel.isVip == 1
                     AccountManager.manager.hasAiPermissions = rmodel.hasAiPermissions == 1
+                    
+                    NotificationCenter.default.post(name: .loginStatusChanged, object: nil)
+                    
                     self.gotoCenter(model: rmodel, infoModel: model)
                 }
             }

+ 23 - 8
PDF Office/PDF Master/Class/Purchase/DMG/Verification/KMVerificationMessageViewController.m

@@ -58,6 +58,8 @@ NSPopoverDelegate>
                                                  selector:@selector(deviceActivateStatusChangeNotification:)
                                                      name:kDeviceActivateStatusChangeNotification
                                                    object:nil];
+        
+        [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(loginStatusChangedNotification:) name:@"KMLoginStatusChangedNotification" object:nil];
 #else
         [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(IAPResultReceived:) name:KMIAPSubscriptionLoadedNotification object:nil];
         [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(IAPPurchaseSuccess:) name:KMIAPProductPurchasedNotification object:nil];
@@ -292,13 +294,20 @@ NSPopoverDelegate>
     }
 #endif
     
-    self.button.title = [NSString stringWithFormat:@" %@  ", NSLocalizedString(@"Login", nil)];
-    [self.button setImage:[NSImage imageNamed:@"KMImageNameAccountIcon"]];
-    [self.button setImagePosition:NSImageLeft];
-    [self.button setImageScaling:NSImageScaleProportionallyDown];
-    [self.button setTitleColor:[NSColor whiteColor]];
-    self.button.image.size = NSMakeSize(16, 16);
-    [self.button setImageHugsTitle:true];
+    if ([[AccountManager manager] isLogin]) {
+        [self.button setImage:[NSImage imageNamed:@"KMImageNameAccountIcon"]];
+        [self.button setImagePosition:NSImageOnly];
+        self.button.image.size = NSMakeSize(16, 16);
+    } else {
+        self.button.title = [NSString stringWithFormat:@" %@  ", NSLocalizedString(@"Login", nil)];
+        
+        [self.button setImage:[NSImage imageNamed:@"KMImageNameAccountIcon"]];
+        [self.button setImagePosition:NSImageLeft];
+        [self.button setImageScaling:NSImageScaleProportionallyDown];
+        [self.button setTitleColor:[NSColor whiteColor]];
+        self.button.image.size = NSMakeSize(16, 16);
+        [self.button setImageHugsTitle:true];
+    }
 
     [self.button sizeToFit];
     [self.button setAlignment:NSTextAlignmentCenter];
@@ -640,11 +649,17 @@ NSPopoverDelegate>
     });
 }
 
-- (void)IAPResultReceived:(NSNotification *)notification {
+- (void)loginStatusChangedNotification:(NSNotification *)noti {
     dispatch_async(dispatch_get_main_queue(), ^{
         [self reloadData];
     });
+}
+
 
+- (void)IAPResultReceived:(NSNotification *)notification {
+    dispatch_async(dispatch_get_main_queue(), ^{
+        [self reloadData];
+    });
 }
 
 - (void)IAPPurchaseSuccess:(NSNotification *)notification {