Просмотр исходного кода

【综合】序列码解绑预处理

niehaoyu 7 месяцев назад
Родитель
Сommit
6aee8472b3
15 измененных файлов с 1521 добавлено и 30 удалено
  1. 22 0
      PDF Office/PDF Master/Class/Appearance/Image.xcassets/Other/_tooltip-helpBtn.imageset/Contents.json
  2. BIN
      PDF Office/PDF Master/Class/Appearance/Image.xcassets/Other/_tooltip-helpBtn.imageset/_tooltip-helpBtn.pdf
  3. BIN
      PDF Office/PDF Master/Class/Appearance/Image.xcassets/Other/_tooltip-helpBtn.imageset/_tooltip-helpBtn_dark.pdf
  4. 8 1
      PDF Office/PDF Master/Class/PDFTools/Merge/Controller/KMMergePopoverViewController.swift
  5. 3 3
      PDF Office/PDF Master/Class/PDFTools/Merge/Controller/KMMergePopoverViewController.xib
  6. 53 0
      PDF Office/PDF Master/Class/Purchase/DMG/Verification/KMUnbindAlertViewController.swift
  7. 81 0
      PDF Office/PDF Master/Class/Purchase/DMG/Verification/KMUnbindAlertViewController.xib
  8. 21 0
      PDF Office/PDF Master/Class/Purchase/DMG/Verification/KMVerificationInfoViewController.m
  9. 21 4
      PDF Office/PDF Master/Class/Purchase/DMG/Verification/KMVerificationInfoViewController.xib
  10. 1 0
      PDF Office/PDF Master/Class/Purchase/DMG/Verification/KMVerificationWindowController.h
  11. 15 1
      PDF Office/PDF Master/Class/Purchase/DMG/Verification/KMVerificationWindowController.m
  12. 8 0
      PDF Office/PDF Master/Class/Purchase/DMG/Verification/VerificationManager/VerificationManager.h
  13. 16 0
      PDF Office/PDF Master/Class/Purchase/DMG/Verification/VerificationManager/VerificationManager.m
  14. 16 0
      PDF Office/PDF Reader Pro.xcodeproj/project.pbxproj
  15. 1256 21
      PDF Office/PDF Reader Pro.xcodeproj/xcuserdata/kdanmobile.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist

+ 22 - 0
PDF Office/PDF Master/Class/Appearance/Image.xcassets/Other/_tooltip-helpBtn.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "filename" : "_tooltip-helpBtn.pdf",
+      "idiom" : "universal"
+    },
+    {
+      "appearances" : [
+        {
+          "appearance" : "luminosity",
+          "value" : "dark"
+        }
+      ],
+      "filename" : "_tooltip-helpBtn_dark.pdf",
+      "idiom" : "universal"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
PDF Office/PDF Master/Class/Appearance/Image.xcassets/Other/_tooltip-helpBtn.imageset/_tooltip-helpBtn.pdf


BIN
PDF Office/PDF Master/Class/Appearance/Image.xcassets/Other/_tooltip-helpBtn.imageset/_tooltip-helpBtn_dark.pdf


+ 8 - 1
PDF Office/PDF Master/Class/PDFTools/Merge/Controller/KMMergePopoverViewController.swift

@@ -7,9 +7,12 @@
 
 import Cocoa
 
-class KMMergePopoverViewController: NSViewController {
+@objc class KMMergePopoverViewController: NSViewController {
 
     @IBOutlet weak var label: NSTextField!
+    
+    @objc var titleString = ""
+    
     override func viewDidLoad() {
         super.viewDidLoad()
         // Do view setup here.
@@ -17,4 +20,8 @@ class KMMergePopoverViewController: NSViewController {
         label.stringValue = NSLocalizedString("奇偶页面穿插合并功能仅支持两个文件进行合并。第一份文件为合并后的奇数页面,第二份文件为合并后的偶数页面", comment: "")
     }
     
+    @objc func reloadData() {
+        label.stringValue = titleString
+    }
+    
 }

+ 3 - 3
PDF Office/PDF Master/Class/PDFTools/Merge/Controller/KMMergePopoverViewController.xib

@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="22155" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
+<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="22505" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
     <dependencies>
         <deployment identifier="macosx"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="22155"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="22505"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
     <objects>
-        <customObject id="-2" userLabel="File's Owner" customClass="KMMergePopoverViewController" customModule="PDF_Master" customModuleProvider="target">
+        <customObject id="-2" userLabel="File's Owner" customClass="KMMergePopoverViewController" customModule="PDF_Reader_Pro" customModuleProvider="target">
             <connections>
                 <outlet property="label" destination="8ON-RW-0EV" id="y6y-6f-K2k"/>
                 <outlet property="view" destination="Hz6-mo-xeY" id="0bl-1N-x8E"/>

+ 53 - 0
PDF Office/PDF Master/Class/Purchase/DMG/Verification/KMUnbindAlertViewController.swift

@@ -0,0 +1,53 @@
+//
+//  KMUnbindAlertViewController.swift
+//  PDF Reader Pro
+//
+//  Created by Niehaoyu on 2024/8/7.
+//
+
+import Cocoa
+
+@objc class KMUnbindAlertViewController: NSViewController {
+
+    @IBOutlet var contendView: NSView!
+    
+    @IBOutlet var titleLabel: NSTextField!
+    @IBOutlet var contactButton: KMCustomButton!
+    
+    
+    override func viewDidLoad() {
+        super.viewDidLoad()
+        // Do view setup here.
+        
+        self.contendView.wantsLayer = true
+        
+        self.contactButton.wantsLayer = true
+        self.contactButton.layer?.masksToBounds = true
+        self.contactButton.layer?.cornerRadius = 1
+        self.contactButton.title = NSLocalizedString("Contact Support", comment: "")
+        self.contactButton.setTitleColor(KMAppearance.Layout.h0Color())
+        
+        self.titleLabel.font = NSFont.SFProTextRegularFont(16)
+        
+        
+        self.updateViewColor()
+    }
+    
+    @objc func updateViewColor() {
+        if KMAppearance.isDarkMode() {
+            self.contendView.layer?.backgroundColor = NSColor(red: 33/255, green: 33/255, blue: 33/255, alpha: 1).cgColor
+            self.titleLabel.textColor = NSColor.white
+            self.contactButton.layer?.backgroundColor = NSColor(red: 78/255, green: 127/255, blue: 219/255, alpha: 1).cgColor
+        } else {
+            self.contendView.layer?.backgroundColor = NSColor.white.cgColor
+            self.titleLabel.textColor = NSColor.black
+            self.contactButton.layer?.backgroundColor = NSColor(red: 39/255, green: 60/255, blue: 98/255, alpha: 1).cgColor
+        }
+    }
+    
+    //MARK: - IBAction
+    @IBAction func contactAction(_ sender: KMCustomButton) {
+        
+    }
+    
+}

+ 81 - 0
PDF Office/PDF Master/Class/Purchase/DMG/Verification/KMUnbindAlertViewController.xib

@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="22505" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
+    <dependencies>
+        <deployment identifier="macosx"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="22505"/>
+        <capability name="Named colors" minToolsVersion="9.0"/>
+        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
+    </dependencies>
+    <objects>
+        <customObject id="-2" userLabel="File's Owner" customClass="KMUnbindAlertViewController" customModule="PDF_Reader_Pro" customModuleProvider="target">
+            <connections>
+                <outlet property="contactButton" destination="vfL-lv-QOZ" id="yqG-wy-Hb4"/>
+                <outlet property="contendView" destination="iDC-Zb-Nxd" id="6IE-qn-p70"/>
+                <outlet property="titleLabel" destination="IdO-2p-jzC" id="rA0-S6-H6m"/>
+                <outlet property="view" destination="Hz6-mo-xeY" id="0bl-1N-x8E"/>
+            </connections>
+        </customObject>
+        <customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
+        <customObject id="-3" userLabel="Application" customClass="NSObject"/>
+        <customView id="Hz6-mo-xeY">
+            <rect key="frame" x="0.0" y="0.0" width="373" height="143"/>
+            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
+            <subviews>
+                <customView translatesAutoresizingMaskIntoConstraints="NO" id="iDC-Zb-Nxd">
+                    <rect key="frame" x="0.0" y="0.0" width="373" height="143"/>
+                    <subviews>
+                        <customView translatesAutoresizingMaskIntoConstraints="NO" id="imK-6b-wI8">
+                            <rect key="frame" x="0.0" y="41" width="373" height="102"/>
+                            <subviews>
+                                <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="IdO-2p-jzC">
+                                    <rect key="frame" x="48" y="35" width="277" height="32"/>
+                                    <constraints>
+                                        <constraint firstAttribute="width" constant="273" id="dxe-ua-xD9"/>
+                                    </constraints>
+                                    <textFieldCell key="cell" sendsActionOnEndEditing="YES" alignment="center" title="You have reached the maximum number of unbindings, please contact us." id="rrA-zF-w4d">
+                                        <font key="font" metaFont="system"/>
+                                        <color key="textColor" name="Color"/>
+                                        <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
+                                    </textFieldCell>
+                                </textField>
+                            </subviews>
+                            <constraints>
+                                <constraint firstAttribute="height" constant="102" id="60u-Lt-tcK"/>
+                                <constraint firstItem="IdO-2p-jzC" firstAttribute="centerX" secondItem="imK-6b-wI8" secondAttribute="centerX" id="7i0-QH-XNh"/>
+                                <constraint firstItem="IdO-2p-jzC" firstAttribute="centerY" secondItem="imK-6b-wI8" secondAttribute="centerY" id="YLs-sb-JQD"/>
+                            </constraints>
+                        </customView>
+                        <button focusRingType="none" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="vfL-lv-QOZ" customClass="KMCustomButton" customModule="PDF_Reader_Pro" customModuleProvider="target">
+                            <rect key="frame" x="88" y="16" width="207" height="32"/>
+                            <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
+                            <buttonCell key="cell" type="bevel" title="Back" bezelStyle="rounded" alignment="center" focusRingType="none" imageScaling="proportionallyDown" inset="2" id="38a-lc-caH">
+                                <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
+                                <font key="font" metaFont="system"/>
+                            </buttonCell>
+                            <connections>
+                                <action selector="contactAction:" target="-2" id="jfH-W1-F9Z"/>
+                            </connections>
+                        </button>
+                    </subviews>
+                    <constraints>
+                        <constraint firstItem="imK-6b-wI8" firstAttribute="top" secondItem="iDC-Zb-Nxd" secondAttribute="top" id="RSn-Qq-vna"/>
+                        <constraint firstAttribute="trailing" secondItem="imK-6b-wI8" secondAttribute="trailing" id="WoE-Sm-qeY"/>
+                        <constraint firstItem="imK-6b-wI8" firstAttribute="leading" secondItem="iDC-Zb-Nxd" secondAttribute="leading" id="cVj-n1-xEZ"/>
+                    </constraints>
+                </customView>
+            </subviews>
+            <constraints>
+                <constraint firstItem="iDC-Zb-Nxd" firstAttribute="leading" secondItem="Hz6-mo-xeY" secondAttribute="leading" id="6NC-Tt-aLA"/>
+                <constraint firstItem="iDC-Zb-Nxd" firstAttribute="top" secondItem="Hz6-mo-xeY" secondAttribute="top" id="e5U-QM-YpT"/>
+                <constraint firstAttribute="trailing" secondItem="iDC-Zb-Nxd" secondAttribute="trailing" id="tke-j8-QAK"/>
+                <constraint firstAttribute="bottom" secondItem="iDC-Zb-Nxd" secondAttribute="bottom" id="tu9-6v-6nM"/>
+            </constraints>
+            <point key="canvasLocation" x="333" y="150"/>
+        </customView>
+    </objects>
+    <resources>
+        <namedColor name="Color">
+            <color red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+        </namedColor>
+    </resources>
+</document>

+ 21 - 0
PDF Office/PDF Master/Class/Purchase/DMG/Verification/KMVerificationInfoViewController.m

@@ -24,6 +24,8 @@
 
 @property (nonatomic, retain) CALayer *continueButtonLayer;
 
+@property (nonatomic, strong) NSPopover *popover;
+
 @end
 
 @implementation KMVerificationInfoViewController
@@ -99,4 +101,23 @@
     }
 }
 
+- (IBAction)guideAction:(NSButton *)sender {
+    if (self.popover.isShown) {
+        return;
+    }
+    if (!self.popover) {
+        self.popover = [[NSPopover alloc] init];
+    }
+    self.popover.behavior = NSPopoverBehaviorTransient;
+    
+    KMMergePopoverViewController *controller = [[KMMergePopoverViewController alloc] initWithNibName:@"KMMergePopoverViewController" bundle:nil];
+    controller.titleString = NSLocalizedString(@"You can unbind your license through our website. ", nil);
+    
+    self.popover.contentViewController = controller;
+    [self.popover showRelativeToRect:sender.bounds ofView:sender preferredEdge:NSMaxYEdge];
+    
+    [controller reloadData];
+}
+ 
+
 @end

+ 21 - 4
PDF Office/PDF Master/Class/Purchase/DMG/Verification/KMVerificationInfoViewController.xib

@@ -21,8 +21,8 @@
         </customObject>
         <customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
         <customObject id="-3" userLabel="Application" customClass="NSObject"/>
-        <customView misplaced="YES" id="Hz6-mo-xeY">
-            <rect key="frame" x="0.0" y="0.0" width="366" height="241"/>
+        <customView id="Hz6-mo-xeY">
+            <rect key="frame" x="0.0" y="0.0" width="366" height="259"/>
             <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
             <subviews>
                 <imageView horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="K2Z-UU-Iwy">
@@ -126,7 +126,7 @@ DQ
                     </connections>
                 </button>
                 <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="jbh-ok-6bh">
-                    <rect key="frame" x="295" y="20" width="61" height="14"/>
+                    <rect key="frame" x="265" y="20" width="61" height="14"/>
                     <buttonCell key="cell" type="bevel" title="解绑序列码" bezelStyle="rounded" alignment="center" imageScaling="proportionallyDown" inset="2" id="cQA-lp-Mcs">
                         <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
                         <font key="font" metaFont="smallSystem"/>
@@ -135,16 +135,31 @@ DQ
                         <action selector="unbindAction:" target="-2" id="LcP-Bf-oQT"/>
                     </connections>
                 </button>
+                <button translatesAutoresizingMaskIntoConstraints="NO" id="DWW-Vb-hxx">
+                    <rect key="frame" x="330" y="19" width="16" height="16"/>
+                    <buttonCell key="cell" type="square" bezelStyle="shadowlessSquare" image="_tooltip-helpBtn" imagePosition="only" alignment="center" imageScaling="proportionallyDown" inset="2" id="SyX-Ai-LWB">
+                        <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
+                        <font key="font" metaFont="system"/>
+                    </buttonCell>
+                    <constraints>
+                        <constraint firstAttribute="width" constant="16" id="3u2-sf-35F"/>
+                        <constraint firstAttribute="height" constant="16" id="SdE-Eh-hfU"/>
+                    </constraints>
+                    <connections>
+                        <action selector="guideAction:" target="-2" id="wFr-Hv-63a"/>
+                    </connections>
+                </button>
             </subviews>
             <constraints>
+                <constraint firstItem="DWW-Vb-hxx" firstAttribute="centerY" secondItem="jbh-ok-6bh" secondAttribute="centerY" id="2oN-xe-ZGj"/>
                 <constraint firstItem="vuU-Wl-nwe" firstAttribute="leading" secondItem="Hz6-mo-xeY" secondAttribute="leading" constant="20" id="4Ye-7o-2xI"/>
                 <constraint firstItem="qYl-8D-SqT" firstAttribute="top" secondItem="K2Z-UU-Iwy" secondAttribute="bottom" constant="29" id="8Kt-5l-V67"/>
                 <constraint firstItem="8mp-tg-jsS" firstAttribute="centerX" secondItem="Hz6-mo-xeY" secondAttribute="centerX" id="Afr-vg-dJA"/>
+                <constraint firstItem="DWW-Vb-hxx" firstAttribute="trailing" secondItem="vuU-Wl-nwe" secondAttribute="trailing" id="B4r-2g-kXj"/>
                 <constraint firstItem="qYl-8D-SqT" firstAttribute="centerX" secondItem="Hz6-mo-xeY" secondAttribute="centerX" id="FWw-Nf-JHu"/>
                 <constraint firstItem="vuU-Wl-nwe" firstAttribute="top" secondItem="8mp-tg-jsS" secondAttribute="bottom" constant="16" id="IWV-LJ-kLU"/>
                 <constraint firstItem="K2Z-UU-Iwy" firstAttribute="centerX" secondItem="Hz6-mo-xeY" secondAttribute="centerX" id="IXC-UQ-2E8"/>
                 <constraint firstItem="GOO-fi-og0" firstAttribute="top" secondItem="qYl-8D-SqT" secondAttribute="bottom" constant="10" id="KD7-H6-D1P"/>
-                <constraint firstAttribute="trailing" secondItem="jbh-ok-6bh" secondAttribute="trailing" constant="10" id="OB3-QH-N0u"/>
                 <constraint firstItem="8mp-tg-jsS" firstAttribute="top" secondItem="GOO-fi-og0" secondAttribute="bottom" constant="10" id="Ooe-Ai-ASM"/>
                 <constraint firstItem="jbh-ok-6bh" firstAttribute="top" secondItem="gSB-AI-iMD" secondAttribute="bottom" constant="12" id="Sc2-ka-sHB"/>
                 <constraint firstItem="vuU-Wl-nwe" firstAttribute="bottom" secondItem="gSB-AI-iMD" secondAttribute="bottom" id="W3K-jK-DW0"/>
@@ -154,6 +169,7 @@ DQ
                 <constraint firstAttribute="bottom" secondItem="vuU-Wl-nwe" secondAttribute="bottom" constant="46" id="d26-ur-dgm"/>
                 <constraint firstItem="vuU-Wl-nwe" firstAttribute="centerX" secondItem="Hz6-mo-xeY" secondAttribute="centerX" id="giN-9Q-55l"/>
                 <constraint firstItem="vuU-Wl-nwe" firstAttribute="leading" secondItem="gSB-AI-iMD" secondAttribute="leading" id="k1g-bv-GQI"/>
+                <constraint firstItem="DWW-Vb-hxx" firstAttribute="leading" secondItem="jbh-ok-6bh" secondAttribute="trailing" constant="4" id="taf-91-Wtw"/>
                 <constraint firstItem="K2Z-UU-Iwy" firstAttribute="top" secondItem="Hz6-mo-xeY" secondAttribute="top" constant="20" id="y4k-XU-Ry4"/>
             </constraints>
             <point key="canvasLocation" x="-149" y="113"/>
@@ -161,6 +177,7 @@ DQ
     </objects>
     <resources>
         <image name="PDFReaderProLogo" width="512" height="512"/>
+        <image name="_tooltip-helpBtn" width="16" height="16"/>
         <namedColor name="KMColor_Interactive_M0">
             <color red="0.15294117647058825" green="0.23529411764705882" blue="0.3843137254901961" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
         </namedColor>

+ 1 - 0
PDF Office/PDF Master/Class/Purchase/DMG/Verification/KMVerificationWindowController.h

@@ -19,6 +19,7 @@ typedef NS_ENUM(NSInteger, KMVerificationType) {
     KMVerificationTypeRepeatTrialGuide,//二次试用引导界面
     KMVerificationTypeRepeatTrialExpire,//二次试用到期提示
     KMVerificationTypeActivateAIInfo,//激活AI功能
+    KMVerificationTypeUnbindAlert,
     
 };
 

+ 15 - 1
PDF Office/PDF Master/Class/Purchase/DMG/Verification/KMVerificationWindowController.m

@@ -41,6 +41,7 @@
 @property (nonatomic, retain) KMRepeatTrialAlertController *repeatTrialAlertController;//二次试用提示弹窗
 @property (nonatomic, retain) KMRepeatVerifyExpireController *repeatTrialExpireController;//二次试用过期弹窗
 @property (nonatomic, retain) KMTrialSuccessController *trialSuccessController;
+@property (nonatomic, retain) KMUnbindAlertViewController *unbindAlertController;
 
 @end
 
@@ -345,7 +346,16 @@ static KMVerificationWindowController *_currentWindowController = nil;
     return _trialSuccessController;
 }
 
-#pragma mark Window Methods
+- (KMUnbindAlertViewController *)unbindAlertController {
+    if (!_unbindAlertController) {
+        __weak typeof(self) weakSelf = self;
+        _unbindAlertController = [[KMUnbindAlertViewController alloc] init];
+        
+    }
+    return _unbindAlertController;
+}
+
+#pragma mark - Window Methods
 
 - (void)windowDidLoad {
     [super windowDidLoad];
@@ -392,6 +402,8 @@ static KMVerificationWindowController *_currentWindowController = nil;
     } else if (KMVerificationTypeActivateAIInfo == self.type) {
         [self setContentView:self.activateViewController.view];
         self.activateViewController.type = self.type;
+    } else if (KMVerificationTypeUnbindAlert == self.type) {
+        [self setContentView:self.unbindAlertController.view];
     }
 }
 
@@ -415,6 +427,8 @@ static KMVerificationWindowController *_currentWindowController = nil;
     } else if (KMVerificationTypeTrialSuccess == self.type ||
                KMVerificationTypeRepeatTrialSuccess == self.type) {
         [self.trialSuccessController updateViewColor];
+    } else if (KMVerificationTypeUnbindAlert == self.type) {
+        [self.unbindAlertController updateViewColor];
     }
 }
 

+ 8 - 0
PDF Office/PDF Master/Class/Purchase/DMG/Verification/VerificationManager/VerificationManager.h

@@ -76,6 +76,10 @@ typedef void(^ActivityComplention)(ActivityStatus status, NSDictionary *info, NS
 
 @property (nonatomic, readonly) NSString *accountName;
 
+@property (nonatomic, readonly) BOOL allowUnbind;
+
+@property (nonatomic, readonly) NSInteger unbindTimes;
+
 
 + (VerificationManager *)manager;
 
@@ -160,6 +164,10 @@ typedef void(^ActivityComplention)(ActivityStatus status, NSDictionary *info, NS
 
 @property (nonatomic, readonly) NSUInteger trialTimes;
 
+@property (nonatomic, readonly) BOOL allowUnbind;
+
+@property (nonatomic, readonly) NSInteger unbindTimes;
+
 @end
 
 #if DEBUG

+ 16 - 0
PDF Office/PDF Master/Class/Purchase/DMG/Verification/VerificationManager/VerificationManager.m

@@ -103,6 +103,14 @@ static VerificationManager *__verificationManager = nil;
     return self.detailInfo.accountName;
 }
 
+- (BOOL)allowUnbind {
+    return self.detailInfo.allowUnbind;
+}
+
+- (NSInteger)unbindTimes {
+    return self.detailInfo.unbindTimes;
+}
+
 - (NSString*)udid {
 //#if DEBUG
 //    NSString *cachePath = [NSTemporaryDirectory() stringByAppendingPathComponent:@"uuid.plist"];
@@ -1108,5 +1116,13 @@ static VerificationManager *__verificationManager = nil;
     return [self[@"invite"][@"max_free_days"]?:@"365" intValue];
 }
 
+- (BOOL)allowUnbind {
+    return [self[@"device"][@"allow_unbind"] boolValue];
+}
+
+- (NSInteger)unbindTimes {
+    return [self[@"device"][@"unbind_time"]?:@"0" integerValue];
+}
+
 @end
 

+ 16 - 0
PDF Office/PDF Reader Pro.xcodeproj/project.pbxproj

@@ -3912,6 +3912,12 @@
 		BB7289E12B8838D8004B53B5 /* KMDataManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB7289DF2B8838D8004B53B5 /* KMDataManager.swift */; };
 		BB7289E22B8838D8004B53B5 /* KMDataManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB7289DF2B8838D8004B53B5 /* KMDataManager.swift */; };
 		BB7289E52B8844BA004B53B5 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = BB7289E42B8844BA004B53B5 /* GoogleService-Info.plist */; };
+		BB73F2882C63147E00131EE7 /* KMUnbindAlertViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB73F2862C63147E00131EE7 /* KMUnbindAlertViewController.swift */; };
+		BB73F2892C63147E00131EE7 /* KMUnbindAlertViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB73F2862C63147E00131EE7 /* KMUnbindAlertViewController.swift */; };
+		BB73F28A2C63147E00131EE7 /* KMUnbindAlertViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB73F2862C63147E00131EE7 /* KMUnbindAlertViewController.swift */; };
+		BB73F28B2C63147E00131EE7 /* KMUnbindAlertViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = BB73F2872C63147E00131EE7 /* KMUnbindAlertViewController.xib */; };
+		BB73F28C2C63147E00131EE7 /* KMUnbindAlertViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = BB73F2872C63147E00131EE7 /* KMUnbindAlertViewController.xib */; };
+		BB73F28D2C63147E00131EE7 /* KMUnbindAlertViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = BB73F2872C63147E00131EE7 /* KMUnbindAlertViewController.xib */; };
 		BB74DA772AC41182006EDFE7 /* NSFont+KMExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB74DA762AC41182006EDFE7 /* NSFont+KMExtension.swift */; };
 		BB74DA782AC41182006EDFE7 /* NSFont+KMExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB74DA762AC41182006EDFE7 /* NSFont+KMExtension.swift */; };
 		BB74DA792AC41182006EDFE7 /* NSFont+KMExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB74DA762AC41182006EDFE7 /* NSFont+KMExtension.swift */; };
@@ -6958,6 +6964,8 @@
 		BB7185492C2B0DC500C1156B /* KMEditPDFModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMEditPDFModel.swift; sourceTree = "<group>"; };
 		BB7289DF2B8838D8004B53B5 /* KMDataManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMDataManager.swift; sourceTree = "<group>"; };
 		BB7289E42B8844BA004B53B5 /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = "<group>"; };
+		BB73F2862C63147E00131EE7 /* KMUnbindAlertViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMUnbindAlertViewController.swift; sourceTree = "<group>"; };
+		BB73F2872C63147E00131EE7 /* KMUnbindAlertViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = KMUnbindAlertViewController.xib; sourceTree = "<group>"; };
 		BB74DA762AC41182006EDFE7 /* NSFont+KMExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "NSFont+KMExtension.swift"; sourceTree = "<group>"; };
 		BB74DA7A2AC41DE9006EDFE7 /* NSString+KMExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "NSString+KMExtension.swift"; sourceTree = "<group>"; };
 		BB74DA7E2AC42959006EDFE7 /* NSButton+KMExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "NSButton+KMExtension.swift"; sourceTree = "<group>"; };
@@ -11420,6 +11428,8 @@
 				BB88109E2B4F7D0F00AFA63E /* KMVerificationActivateViewController.h */,
 				BB88109D2B4F7D0F00AFA63E /* KMVerificationActivateViewController.m */,
 				BB88109F2B4F7D0F00AFA63E /* KMVerificationActivateViewController.xib */,
+				BB73F2862C63147E00131EE7 /* KMUnbindAlertViewController.swift */,
+				BB73F2872C63147E00131EE7 /* KMUnbindAlertViewController.xib */,
 				BB8810A72B4F7D7500AFA63E /* KMVerificationViewController.h */,
 				BB8810A62B4F7D7500AFA63E /* KMVerificationViewController.m */,
 				BB8810A82B4F7D7500AFA63E /* KMVerificationViewController.xib */,
@@ -14667,6 +14677,7 @@
 				ADDF83A42B391A5D00A81A4E /* DSignatureConfigWindowController.xib in Resources */,
 				9F8539EB2947131F00DF644E /* KMChromiumTabView.xib in Resources */,
 				BB8F454A295A9CDC0037EA22 /* KMHeaderFooterListController.xib in Resources */,
+				BB73F28B2C63147E00131EE7 /* KMUnbindAlertViewController.xib in Resources */,
 				9F853A082947137500DF644E /* newtab.pdf in Resources */,
 				AD7D5CD72B95767C006562CD /* KMBookmarkOutlineTitleCellView.xib in Resources */,
 				BB0FE04F2B734DD1001E0F88 /* AIPurchaseWindowController.xib in Resources */,
@@ -15256,6 +15267,7 @@
 				BB8810982B4F7CD100AFA63E /* KMVerificationTrialViewController.xib in Resources */,
 				BBC821E42B0D9F72004B7E8E /* KMStampCreaterWindowController.xib in Resources */,
 				BB3AAB9429878CE000992A5A /* KMWatermarkAdjectivePropertyMainController.xib in Resources */,
+				BB73F28C2C63147E00131EE7 /* KMUnbindAlertViewController.xib in Resources */,
 				AD3AAD4E2B0B7B9300DE5FE7 /* KMCompareTextView.xib in Resources */,
 				9F853A062947137500DF644E /* newtab_h.pdf in Resources */,
 				ADAFD9F82AE68A8500F084BC /* KMCreatPDFView.xib in Resources */,
@@ -15758,6 +15770,7 @@
 				9F8539D029430BF300DF644E /* KMBrowserWindowController.xib in Resources */,
 				ADE8BC2C29F7CDB000570F89 /* KMPageNumberDisplayView.xib in Resources */,
 				BBFD2B182AEFAC9C0016C456 /* KMBatchOperateBaseViewController.xib in Resources */,
+				BB73F28D2C63147E00131EE7 /* KMUnbindAlertViewController.xib in Resources */,
 				AD7D5CD92B95767C006562CD /* KMBookmarkOutlineTitleCellView.xib in Resources */,
 				BB0FE0512B734DD1001E0F88 /* AIPurchaseWindowController.xib in Resources */,
 				BBFE6E622930809A00142C01 /* KMMergeCollectionPageViewItem.xib in Resources */,
@@ -16103,6 +16116,7 @@
 				BBC28F4E2B0F58DD00D73206 /* KMImageToolTipWindow.swift in Sources */,
 				BB6DD80C29347F77001F0544 /* KMSecureEncryptWindowController.swift in Sources */,
 				BB031B602C47BB080099F7AD /* KMUserFeekbackWindowController.swift in Sources */,
+				BB73F2882C63147E00131EE7 /* KMUnbindAlertViewController.swift in Sources */,
 				BBB14A572978E75D00936EDB /* KMRedactMutilPageFlagWindowController.swift in Sources */,
 				ADAFDA132AE8DD6600F084BC /* KMAdvertisementCollectionViewItem.swift in Sources */,
 				899E0B092919244500B13D34 /* KMCustomTableRowView.swift in Sources */,
@@ -17556,6 +17570,7 @@
 				BBEC00C0295C306400A26C98 /* KMBatesPropertyController.swift in Sources */,
 				BB0A55222A30968900B6E84B /* KMDesignBaseView.swift in Sources */,
 				BB61F2132B59120F00777E27 /* KMScroller.swift in Sources */,
+				BB73F2892C63147E00131EE7 /* KMUnbindAlertViewController.swift in Sources */,
 				9FCFEC992AD14EEF00EAD2CB /* KMMailHelper.swift in Sources */,
 				AD055E542B73220A0035F824 /* KMBookmarkManager.swift in Sources */,
 				89E4E6ED2963D1B7002DBA6F /* KMColorPickerViewController.m in Sources */,
@@ -18557,6 +18572,7 @@
 				9FE0BBF22B0F2FB000CD1CAC /* KMAnnotationLineWindowController.swift in Sources */,
 				F37322F5292DF9410013862C /* CSelfSignAnnotationFreeText.m in Sources */,
 				BB031B622C47BB080099F7AD /* KMUserFeekbackWindowController.swift in Sources */,
+				BB73F28A2C63147E00131EE7 /* KMUnbindAlertViewController.swift in Sources */,
 				AD5999382AD7D9C200412F8B /* KMPropertiesViewPopController.swift in Sources */,
 				BB147034299DC0D200784A6A /* OIDTokenResponse.m in Sources */,
 				ADDF83372B391A5C00A81A4E /* CPDFListViewConfig.m in Sources */,

Разница между файлами не показана из-за своего большого размера
+ 1256 - 21
PDF Office/PDF Reader Pro.xcodeproj/xcuserdata/kdanmobile.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist