Browse Source

Merge branch 'develop_PDFReaderProV4.6.0' into develop_PDFReaderProV4.6.0_appStore

tangchao 6 months ago
parent
commit
126807fca1

+ 33 - 3
PDF Office/PDF Master/Class/PDFTools/EditPDF/Tools/KMEditPDfHanddler.swift

@@ -1198,6 +1198,25 @@ extension KMEditPDfHanddler {
             return
         }
         if areas.count == 1 {
+            if KMTools.isPDFType(format) {
+                guard let image = areas.first!.thumbnailImage else {
+                    NSSound.beep()
+                    return
+                }
+                let pdfdocument = CPDFDocument()
+                pdfdocument?.km_insert(image: image, at: 0)
+                let savePanel = NSSavePanel()
+                savePanel.allowedFileTypes = ["pdf"]
+                savePanel.beginSheetModal(for: self.viewC!.view.window!) { response in
+                    if (response != .OK) {
+                        return
+                    }
+                    if let data = pdfdocument?.write(to: savePanel.url!), data {
+                        NSWorkspace.shared.selectFile(savePanel.url?.path, inFileViewerRootedAtPath: "");
+                    }
+                }
+                return
+            }
             let panel = NSSavePanel()
             panel.nameFieldStringValue = "\(NSLocalizedString("Untitled", comment: "")).\(format)"
             panel.isExtensionHidden = true
@@ -1240,9 +1259,20 @@ extension KMEditPDfHanddler {
                         outPath = outPath.stringByAppendingPathComponent(documentFileName)
                         outPath = outPath + "_page\(pageIndex+1)_\(j+1)"
                         outPath = outPath.stringByAppendingPathExtension(format)
-                        let result = self.listView?.extractImage(with: areas[j], toImagePath: outPath) ?? false
-                        if result {
-                            saveURLs.append(URL(fileURLWithPath: outPath))
+                        if KMTools.isPDFType(format) {
+                            if let image = areas[j].thumbnailImage {
+                                let pdfdocument = CPDFDocument()
+                                pdfdocument?.km_insert(image: image, at: 0)
+                                let suc = pdfdocument?.write(toFile: outPath) ?? false
+                                if suc {
+                                    saveURLs.append(URL(fileURLWithPath: outPath))
+                                }
+                            }
+                        } else {
+                            let result = self.listView?.extractImage(with: areas[j], toImagePath: outPath) ?? false
+                            if result {
+                                saveURLs.append(URL(fileURLWithPath: outPath))
+                            }
                         }
                     }
                     NSWorkspace.shared.activateFileViewerSelecting(saveURLs)

+ 1 - 1
PDF Office/PDF Master/Class/PDFWindowController/ViewController/KMMainViewController+Action.swift

@@ -1806,7 +1806,7 @@ extension KMMainViewController {
                 let pdfdocument = CPDFDocument()
                 let signatureImagePath = NSSearchPathForDirectoriesInDomains(.applicationSupportDirectory, .userDomainMask, true).first?.stringByAppendingPathComponent("signatureImage.png")
                 if NSData(data: data!).write(to: URL(fileURLWithPath: signatureImagePath!), atomically: true) {
-                    pdfdocument?.insertPage(image.size, withImage: signatureImagePath, at: 0)
+                    pdfdocument?.km_insertPage(image.size, withImage: signatureImagePath!, at: 0)
                     let savePanel = NSSavePanel()
                     savePanel.allowedFileTypes = ["pdf"]
                     savePanel.beginSheetModal(for: self.view.window!) { response in

+ 9 - 2
PDF Office/PDF Master/Class/Purchase/DMG/KMPurchaseCompareDMGWindowController.m

@@ -191,6 +191,7 @@ static NSString *const KMPurchaseCompareDMGCellIdentifier       = @"KMPurchaseCo
 @property (weak) IBOutlet NSSwitch *buySwitch;
 @property (weak) IBOutlet NSTextField *discountPriceLabel;
 @property (weak) IBOutlet NSTextField *originalPriceLabel;
+@property (weak) IBOutlet NSTextField *discountPriceLabel2;
 
 @property (nonatomic, assign) NSModalSession modalSession;
 @property (nonatomic, retain) NSArray *dataSource;
@@ -239,8 +240,10 @@ static NSString *const KMPurchaseCompareDMGCellIdentifier       = @"KMPurchaseCo
 
     self.discountPriceLabel.textColor = [NSColor colorWithRed:255.0/255.0 green:231.0/255.0 blue:106.0/255.0 alpha:1.0];
     self.discountPriceLabel.font = [NSFont fontWithName:@"Ubuntu" size:36.0];
-    self.originalPriceLabel.textColor = [NSColor colorWithRed:255.0/255.0 green:94.0/255.0 blue:44.0/255.0 alpha:1.0];
+    self.originalPriceLabel.textColor = [NSColor whiteColor];
     self.originalPriceLabel.font = [NSFont fontWithName:@"Ubuntu" size:14.0];
+    self.discountPriceLabel2.textColor = [NSColor colorWithRed:255.0/255.0 green:231.0/255.0 blue:106.0/255.0 alpha:1.0];
+    self.discountPriceLabel2.font = [NSFont fontWithName:@"Ubuntu" size:36.0];
 
     self.freeVersionLbl.stringValue = NSLocalizedString(@"Free Version", nil);
     self.parmanentVerLbl.stringValue = NSLocalizedString(@"Permanent License", nil);
@@ -457,7 +460,7 @@ static NSString *const KMPurchaseCompareDMGCellIdentifier       = @"KMPurchaseCo
         self.aiTitleLabel.textColor = [NSColor colorWithRed:20/255. green:0 blue:102/255. alpha:1];
     }
     
-    self.parmanentVerLbl.textColor = [NSColor colorWithRed:255/255. green:94/255. blue:44/255. alpha:1.];
+    self.parmanentVerLbl.textColor = [NSColor colorWithRed:252/255. green:253/255. blue:255/255. alpha:1.];
     self.oneTimeTipLbl.textColor = [NSColor colorWithRed:255/255. green:231/255. blue:106/255. alpha:1.];
     
     if ([KMAppearance isDarkMode]) {
@@ -526,9 +529,13 @@ static NSString *const KMPurchaseCompareDMGCellIdentifier       = @"KMPurchaseCo
             }];
             if ([originalText isEqualToString:discountText]) {
                 [self.originalPriceLabel setHidden:YES];
+                [self.discountPriceLabel setHidden:YES];
+                [self.discountPriceLabel2 setHidden:NO];
                 [self.discountTipImage setHidden:YES];
             } else {
                 [self.originalPriceLabel setHidden:NO];
+                [self.discountPriceLabel setHidden:NO];
+                [self.discountPriceLabel2 setHidden:YES];
                 [self.discountTipImage setHidden:NO];
             }
         } else {

+ 11 - 0
PDF Office/PDF Master/Class/Purchase/DMG/KMPurchaseCompareDMGWindowController.xib

@@ -21,6 +21,7 @@
                 <outlet property="buyNowButton" destination="HrV-Kb-x66" id="Qc0-hK-Otk"/>
                 <outlet property="buySwitch" destination="tbA-Jh-3g0" id="3Ix-rM-0vu"/>
                 <outlet property="discountPriceLabel" destination="2Ai-gP-tyw" id="otG-Wx-3sn"/>
+                <outlet property="discountPriceLabel2" destination="Utf-37-XY7" id="kss-xI-f9y"/>
                 <outlet property="discountTipImage" destination="KBo-MG-ErN" id="xI6-Lo-YRE"/>
                 <outlet property="enterLicenseButton" destination="JrW-cc-ivk" id="8vR-Ti-GJy"/>
                 <outlet property="freeContendView" destination="bSI-fT-0EN" id="dpN-M9-Jg2"/>
@@ -967,6 +968,14 @@
                                                         <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
                                                     </textFieldCell>
                                                 </textField>
+                                                <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="Utf-37-XY7">
+                                                    <rect key="frame" x="17" y="19" width="37" height="16"/>
+                                                    <textFieldCell key="cell" lineBreakMode="clipping" title="Label" id="A8X-la-7P2">
+                                                        <font key="font" metaFont="system"/>
+                                                        <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
+                                                        <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
+                                                    </textFieldCell>
+                                                </textField>
                                             </subviews>
                                             <constraints>
                                                 <constraint firstItem="2Ai-gP-tyw" firstAttribute="leading" secondItem="jja-GZ-6mb" secondAttribute="leading" id="Zbp-ib-vwL"/>
@@ -977,6 +986,8 @@
                                         </view>
                                         <constraints>
                                             <constraint firstItem="2Ai-gP-tyw" firstAttribute="centerY" secondItem="ZIL-vW-TJt" secondAttribute="centerY" id="6QE-RL-Ti6"/>
+                                            <constraint firstItem="Utf-37-XY7" firstAttribute="centerY" secondItem="ZIL-vW-TJt" secondAttribute="centerY" id="Nx6-i7-a2N"/>
+                                            <constraint firstItem="Utf-37-XY7" firstAttribute="centerX" secondItem="ZIL-vW-TJt" secondAttribute="centerX" id="Ny9-Rf-4ej"/>
                                             <constraint firstAttribute="height" constant="54" id="QTP-2n-xhK"/>
                                         </constraints>
                                     </box>

+ 53 - 12
PDF Office/PDF Master/Class/Purchase/DMG/KMPurchaseEmbeddedWindowController.swift

@@ -72,8 +72,17 @@ class KMPurchaseEmbeddedWindowController: NSWindowController {
     @IBOutlet weak var privacyLabel: NSTextField!
     
     @IBOutlet weak var billInformationLabel: NSTextField!
+    
+    @IBOutlet weak var licenseCodeView: NSView!
+    @IBOutlet weak var licenseCodeLabel: NSTextField!
+    @IBOutlet weak var licenseCodeBox: NSBox!
+    @IBOutlet weak var licenseCodeTextField: NSTextField!
+    @IBOutlet weak var notFoundButton: NSButton!
+    @IBOutlet weak var licenseCodeTopLayout: NSLayoutConstraint!
+    
     @IBOutlet weak var emailLabel: NSTextField!
     @IBOutlet weak var emailTextField: NSTextField!
+    @IBOutlet weak var emailBox: NSBox!
     @IBOutlet weak var errorView: NSView!
     @IBOutlet weak var errorLabel: NSTextField!
     @IBOutlet weak var errorLabelTopLayout: NSLayoutConstraint!
@@ -111,7 +120,9 @@ class KMPurchaseEmbeddedWindowController: NSWindowController {
     @IBOutlet weak var successfullyView: NSView!
     @IBOutlet weak var purchasedLabel: NSTextField!
     @IBOutlet weak var successfullyLabel: NSTextField!
-    
+    @IBOutlet weak var imageBottomLayout: NSLayoutConstraint!
+    @IBOutlet weak var image2BottomLayout: NSLayoutConstraint!
+
     private var pdfCount: Int = 1
     private var _paymentMethod: KMPaymentType = .paypal
     private var _productType: ProductType = .ipaConvert
@@ -246,14 +257,25 @@ class KMPurchaseEmbeddedWindowController: NSWindowController {
         originalPriceLabel1.font = NSFont.SFProTextRegularFont(16.0)
         discountPriceLabel1.textColor = NSColor(named: "KMPurchaseDiscountColor")
         discountPriceLabel1.font = NSFont.SFProTextRegularFont(9.0)
+        refreshLicenseCodeView(isReveal: false)
         if productType == .ipaConvert || productType == .ipaAI {
             aiAddOnView.isHidden = true
             extendedView.isHidden = true
             
             if productType == .ipaConvert {
                 pdfReaderProLabel.stringValue = NSLocalizedString("PDF to Office", comment: "")
-                prmiumLabel.stringValue = NSLocalizedString("Export PDF to Word(.docx), Excel (.xlsx), PowerPoint(.pptx) and more offline. It's one time purchase.", comment: "")
+                prmiumLabel.stringValue = NSLocalizedString("Export PDF to Word(.docx), Excel (.xlsx), PowerPoint(.pptx)", comment: "")
                 oneLicenseLabel.isHidden = true
+                licenseCodeLabel.stringValue = NSLocalizedString("License Code", comment: "")
+                licenseCodeLabel.textColor = NSColor(named: "KMPurchaseTitleColor1")
+                licenseCodeLabel.font = NSFont.SFProTextRegularFont(14.0)
+                licenseCodeTextField.placeholderString = NSLocalizedString("Input license code previously activated the app", comment: "")
+                licenseCodeBox.borderColor = NSColor(named: "KMPurchase_DADBDE")!
+                licenseCodeBox.fillColor = NSColor(named: "KMPurchase_FFFFFF")!
+                notFoundButton.title = NSLocalizedString("Not Found?", comment: "")
+                notFoundButton.setTitleColor(color: NSColor(named: "KMPurchaseCouponColor")!, font: NSFont(name: "body-s-regular", size: 14))
+                licenseCodeTextField.stringValue = VerificationManager.default().originLicenseCode
+                refreshLicenseCodeView(isReveal: true)
             } else if productType == .ipaAI {
                 pdfReaderProLabel.stringValue = NSLocalizedString("PDF Reader Pro AI Tools", comment: "")
                 prmiumLabel.stringValue = NSLocalizedString("50 credits for 30 days", comment: "")
@@ -367,14 +389,23 @@ class KMPurchaseEmbeddedWindowController: NSWindowController {
         emailLabel.textColor = NSColor(named: "KMPurchaseTitleColor1")
         emailLabel.font = NSFont.SFProTextRegularFont(14.0)
         emailTextField.placeholderString = NSLocalizedString("Email to receive license code", comment: "")
-        errorLabel.stringValue = NSLocalizedString("Please enter the email address number to receive the sequence code", comment: "")
+        emailBox.borderColor = NSColor(named: "KMPurchase_DADBDE")!
+//        emailBox.fillColor = NSColor(named: "KMPurchase_FFFFFF")!
+        errorLabel.stringValue = NSLocalizedString("Please enter your email for license receiving.", comment: "")
         if VerificationManager.default().email != nil {
-            emailTextField.stringValue = VerificationManager.default().email
+            var emailString = ""
+            if let email = VerificationManager.default().email, email.count > 0 {
+                emailString = email
+            } else {
+                if let subscriptionEmail = VerificationManager.default().subscriptionEmail, subscriptionEmail.count > 0 {
+                    emailString = subscriptionEmail
+                }
+            }
+            emailTextField.stringValue = emailString
         }
         emailTextField.delegate = self
         errorLabel.textColor = NSColor(named: "KMPurchaseErrorColor")
         errorLabel.font = NSFont.SFProTextRegularFont(11.0)
-        emailErrorLabel(isReveal: false)
 
         paymentMethodLabel.stringValue = NSLocalizedString("Payment Method", comment: "")
         paymentMethodLabel.textColor = NSColor(named: "KMPurchaseTitleColor1")
@@ -431,6 +462,7 @@ class KMPurchaseEmbeddedWindowController: NSWindowController {
         paddlePopUpButton.layer?.borderColor = NSColor(named: "KMPurchase_DADBDE")?.cgColor
         paddleBox.fillColor = NSColor(named: "KMPurchase_FFFFFF") ?? NSColor.white
         paddleBox.borderColor = NSColor(named: "KMPurchase_DADBDE") ?? NSColor.gray
+        paddleTextField.placeholderString = NSLocalizedString("Postcode", comment: "")
         paddleTextField.delegate = self
         
         weChatButton.title = NSLocalizedString("Continue to Pay", comment: "")
@@ -446,6 +478,8 @@ class KMPurchaseEmbeddedWindowController: NSWindowController {
         successfullyLabel.stringValue = NSLocalizedString("Successfully", comment: "")
         successfullyLabel.textColor = NSColor(named: "KMPurchase_002143")
         successfullyLabel.font = NSFont(name: "Segoe UI", size: 18.0)
+        
+        emailErrorLabel(isReveal: false)
     }
     
     private func priceRefresh() -> Void {
@@ -1066,6 +1100,11 @@ class KMPurchaseEmbeddedWindowController: NSWindowController {
         }
     }
     
+    @IBAction func notFoundAction(_ sender: NSButton) {
+        var url = URL(string: "https://www.pdfreaderpro.com/mac/license-retrieval")!
+        NSWorkspace.shared.open(url)
+    }
+    
     // MARK: get & set
     
     private var paymentMethod : KMPaymentType {
@@ -1496,7 +1535,6 @@ class KMPurchaseEmbeddedWindowController: NSWindowController {
 
     @objc private func performTask() {
         guard pollCount < maxPolls else {
-            stopPolling()
             return
         }
         
@@ -1578,18 +1616,21 @@ class KMPurchaseEmbeddedWindowController: NSWindowController {
     }
     
     private func emailErrorLabel(isReveal: Bool) {
-        if isReveal {
-            errorLabel.isHidden = false
-        } else {
-            errorLabel.isHidden = true
-        }
-        errorLabelTopLayout.constant = errorLabel.isHidden ? -CGRectGetHeight(errorView.bounds) : 4
+        errorView.isHidden = !isReveal
+        errorLabelTopLayout.constant = errorView.isHidden ? -CGRectGetHeight(errorView.bounds) : 4
     }
     
     private func refreshApplyButton(isReveal: Bool) {
         self.applyButton.isEnabled = isReveal
     }
     
+    private func refreshLicenseCodeView(isReveal: Bool) {
+        licenseCodeView.isHidden = !isReveal
+        licenseCodeTopLayout.constant = licenseCodeView.isHidden ? -CGRectGetHeight(licenseCodeView.bounds)-8 : 8.0
+        imageBottomLayout.constant = licenseCodeView.isHidden ? 16.0 : 8.0
+        image2BottomLayout.constant = licenseCodeView.isHidden ? 20.0 : 8.0
+    }
+    
     // MARK: Show Methods
     
 //    @IBAction private func dismissSheet(_ sender: NSButton) {

+ 96 - 12
PDF Office/PDF Master/Class/Purchase/DMG/KMPurchaseEmbeddedWindowController.xib

@@ -39,18 +39,27 @@
                 <outlet property="discountPriceLabel2" destination="Zgg-6x-ycD" id="MK8-XT-aPw"/>
                 <outlet property="discountPriceLabel3" destination="0yC-if-ZhG" id="g9G-YT-PUX"/>
                 <outlet property="discountView" destination="KXb-Fc-Ihu" id="VlV-d6-GhF"/>
+                <outlet property="emailBox" destination="vNJ-Rm-o8p" id="Oia-yr-1nT"/>
                 <outlet property="emailLabel" destination="e5R-5a-vfZ" id="5nn-0v-GIy"/>
                 <outlet property="emailTextField" destination="sU8-qq-wLc" id="oZw-qE-aPj"/>
                 <outlet property="errorLabel" destination="GJE-gl-04P" id="qgA-LP-pwc"/>
-                <outlet property="errorLabelTopLayout" destination="5gD-hZ-xNI" id="d9E-JR-FjO"/>
+                <outlet property="errorLabelTopLayout" destination="l30-oM-OZT" id="E17-8R-tf4"/>
                 <outlet property="errorView" destination="W7H-2A-riS" id="bXz-uh-WFx"/>
                 <outlet property="extendedButton" destination="MbO-7o-ibN" id="NZR-8e-sHP"/>
                 <outlet property="extendedButton1" destination="Ygz-9t-jR6" id="wnO-XW-sI2"/>
                 <outlet property="extendedImageView" destination="dIC-52-LvS" id="XXJ-IK-24m"/>
                 <outlet property="extendedLabel" destination="hdH-sT-Zjy" id="CSU-f3-wES"/>
                 <outlet property="extendedView" destination="DDi-AB-k2w" id="Yo4-09-7cG"/>
+                <outlet property="image2BottomLayout" destination="O4p-tz-bd1" id="Uho-TH-esw"/>
+                <outlet property="imageBottomLayout" destination="Yex-lJ-9Ez" id="gMn-Hw-MXE"/>
                 <outlet property="lastPriceLabel" destination="qhy-ap-sxt" id="4LY-eY-0OP"/>
                 <outlet property="lastPriceLabel1" destination="ve4-zf-dcX" id="Ubh-Qb-g1J"/>
+                <outlet property="licenseCodeBox" destination="uSJ-rd-Vlm" id="Dvo-S4-I4w"/>
+                <outlet property="licenseCodeLabel" destination="ynC-0D-5zQ" id="lFa-il-HJj"/>
+                <outlet property="licenseCodeTextField" destination="zA8-fl-m0R" id="oxd-J5-4X4"/>
+                <outlet property="licenseCodeTopLayout" destination="cBj-6T-BqZ" id="Ioe-4G-Idh"/>
+                <outlet property="licenseCodeView" destination="veL-o2-wMz" id="0QP-sX-12D"/>
+                <outlet property="notFoundButton" destination="EEw-fo-cIt" id="Fq1-p6-vjx"/>
                 <outlet property="oneLicenseLabel" destination="2wj-Wg-q7u" id="2x0-8r-KgT"/>
                 <outlet property="originalPriceLabel1" destination="JdB-wu-qih" id="TW8-re-VZ3"/>
                 <outlet property="originalPriceLabel2" destination="mG2-BE-Y6m" id="4Gi-yD-Quy"/>
@@ -225,7 +234,7 @@
                                             </constraints>
                                         </customView>
                                         <customView translatesAutoresizingMaskIntoConstraints="NO" id="ih0-ST-chg">
-                                            <rect key="frame" x="0.0" y="412" width="335" height="52"/>
+                                            <rect key="frame" x="0.0" y="344" width="335" height="52"/>
                                             <subviews>
                                                 <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="e5R-5a-vfZ">
                                                     <rect key="frame" x="-2" y="32" width="37" height="20"/>
@@ -282,7 +291,7 @@
                                             </constraints>
                                         </customView>
                                         <customView translatesAutoresizingMaskIntoConstraints="NO" id="O9F-uH-62i">
-                                            <rect key="frame" x="0.0" y="336" width="335" height="20"/>
+                                            <rect key="frame" x="0.0" y="284" width="335" height="20"/>
                                             <subviews>
                                                 <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="32Y-Vg-5EG">
                                                     <rect key="frame" x="-2" y="2" width="107" height="16"/>
@@ -300,7 +309,7 @@
                                             </constraints>
                                         </customView>
                                         <customView translatesAutoresizingMaskIntoConstraints="NO" id="NiL-sj-flK">
-                                            <rect key="frame" x="0.0" y="294" width="335" height="30"/>
+                                            <rect key="frame" x="0.0" y="242" width="335" height="30"/>
                                             <subviews>
                                                 <button translatesAutoresizingMaskIntoConstraints="NO" id="aFQ-fz-Dn4">
                                                     <rect key="frame" x="0.0" y="0.0" width="78" height="30"/>
@@ -381,7 +390,7 @@
                                             </constraints>
                                         </customView>
                                         <box boxType="custom" borderWidth="0.0" title="Box" translatesAutoresizingMaskIntoConstraints="NO" id="2Fv-aT-yF4">
-                                            <rect key="frame" x="0.0" y="248" width="335" height="40"/>
+                                            <rect key="frame" x="0.0" y="196" width="335" height="40"/>
                                             <view key="contentView" id="hfC-RP-EPJ">
                                                 <rect key="frame" x="0.0" y="0.0" width="335" height="40"/>
                                                 <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
@@ -391,19 +400,19 @@
                                             </constraints>
                                         </box>
                                         <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="Bf9-95-LZa">
-                                            <rect key="frame" x="-2" y="226" width="339" height="16"/>
+                                            <rect key="frame" x="-2" y="174" width="339" height="16"/>
                                             <textFieldCell key="cell" alignment="left" title="Label" id="xst-Rc-74s">
                                                 <font key="font" usesAppearanceFont="YES"/>
                                                 <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
                                                 <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
                                             </textFieldCell>
                                         </textField>
-                                        <customView translatesAutoresizingMaskIntoConstraints="NO" id="W7H-2A-riS">
-                                            <rect key="frame" x="0.0" y="376" width="335" height="32"/>
+                                        <customView hidden="YES" translatesAutoresizingMaskIntoConstraints="NO" id="W7H-2A-riS">
+                                            <rect key="frame" x="0.0" y="324" width="335" height="16"/>
                                             <subviews>
                                                 <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="GJE-gl-04P">
-                                                    <rect key="frame" x="-2" y="0.0" width="339" height="32"/>
-                                                    <textFieldCell key="cell" title="Please enter the email address number to receive the sequence code" id="5DH-ru-aM0">
+                                                    <rect key="frame" x="-2" y="0.0" width="339" height="16"/>
+                                                    <textFieldCell key="cell" title="Please enter your email for license receiving." id="5DH-ru-aM0">
                                                         <font key="font" usesAppearanceFont="YES"/>
                                                         <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
                                                         <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
@@ -411,28 +420,103 @@
                                                 </textField>
                                             </subviews>
                                             <constraints>
-                                                <constraint firstItem="GJE-gl-04P" firstAttribute="top" secondItem="W7H-2A-riS" secondAttribute="top" id="5gD-hZ-xNI"/>
+                                                <constraint firstItem="GJE-gl-04P" firstAttribute="top" secondItem="W7H-2A-riS" secondAttribute="top" id="6JC-WC-agR"/>
                                                 <constraint firstAttribute="bottom" secondItem="GJE-gl-04P" secondAttribute="bottom" id="Ftr-or-JKp"/>
                                                 <constraint firstItem="GJE-gl-04P" firstAttribute="leading" secondItem="W7H-2A-riS" secondAttribute="leading" id="bZ0-ZL-Fkd"/>
                                                 <constraint firstAttribute="trailing" secondItem="GJE-gl-04P" secondAttribute="trailing" id="qaN-Xe-Hrf"/>
                                             </constraints>
                                         </customView>
+                                        <customView translatesAutoresizingMaskIntoConstraints="NO" id="veL-o2-wMz">
+                                            <rect key="frame" x="0.0" y="412" width="335" height="52"/>
+                                            <subviews>
+                                                <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="ynC-0D-5zQ">
+                                                    <rect key="frame" x="-2" y="32" width="37" height="20"/>
+                                                    <textFieldCell key="cell" lineBreakMode="clipping" title="Label" id="vhN-dX-79I">
+                                                        <font key="font" usesAppearanceFont="YES"/>
+                                                        <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
+                                                        <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
+                                                    </textFieldCell>
+                                                </textField>
+                                                <box boxType="custom" cornerRadius="1" title="Box" translatesAutoresizingMaskIntoConstraints="NO" id="uSJ-rd-Vlm">
+                                                    <rect key="frame" x="0.0" y="0.0" width="335" height="28"/>
+                                                    <view key="contentView" id="Kfh-jw-n4h">
+                                                        <rect key="frame" x="1" y="1" width="333" height="26"/>
+                                                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                                                        <subviews>
+                                                            <textField focusRingType="none" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="zA8-fl-m0R">
+                                                                <rect key="frame" x="6" y="5" width="321" height="16"/>
+                                                                <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" placeholderString="Email to receive license code" id="Lwv-tM-I7Y">
+                                                                    <font key="font" usesAppearanceFont="YES"/>
+                                                                    <color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
+                                                                    <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
+                                                                </textFieldCell>
+                                                            </textField>
+                                                        </subviews>
+                                                        <constraints>
+                                                            <constraint firstAttribute="trailing" secondItem="zA8-fl-m0R" secondAttribute="trailing" constant="8" id="N8t-ED-Lzb"/>
+                                                            <constraint firstItem="zA8-fl-m0R" firstAttribute="leading" secondItem="Kfh-jw-n4h" secondAttribute="leading" constant="8" id="r2y-Hm-dt9"/>
+                                                        </constraints>
+                                                    </view>
+                                                    <constraints>
+                                                        <constraint firstItem="zA8-fl-m0R" firstAttribute="centerY" secondItem="uSJ-rd-Vlm" secondAttribute="centerY" id="VV1-P0-uAF"/>
+                                                        <constraint firstAttribute="height" constant="28" id="gmP-HK-PtR"/>
+                                                    </constraints>
+                                                </box>
+                                                <imageView horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="vRo-hb-GCX">
+                                                    <rect key="frame" x="33" y="44" width="6" height="6"/>
+                                                    <constraints>
+                                                        <constraint firstAttribute="width" constant="6" id="04f-Vq-tdn"/>
+                                                        <constraint firstAttribute="height" constant="6" id="5g9-RG-QRX"/>
+                                                    </constraints>
+                                                    <imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyDown" image="EmbeddedPayment26" id="dr8-sG-J6H"/>
+                                                </imageView>
+                                                <button translatesAutoresizingMaskIntoConstraints="NO" id="EEw-fo-cIt">
+                                                    <rect key="frame" x="260" y="32" width="75" height="20"/>
+                                                    <buttonCell key="cell" type="bevel" title="Not Found?" bezelStyle="rounded" alignment="center" imageScaling="proportionallyDown" inset="2" id="zXn-dP-FsP">
+                                                        <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
+                                                        <font key="font" metaFont="system"/>
+                                                    </buttonCell>
+                                                    <constraints>
+                                                        <constraint firstAttribute="height" constant="20" id="0wq-ge-xp2"/>
+                                                    </constraints>
+                                                    <connections>
+                                                        <action selector="notFoundAction:" target="-2" id="b8c-tt-dRZ"/>
+                                                    </connections>
+                                                </button>
+                                            </subviews>
+                                            <constraints>
+                                                <constraint firstItem="vRo-hb-GCX" firstAttribute="leading" secondItem="ynC-0D-5zQ" secondAttribute="trailing" id="35e-ai-t7C"/>
+                                                <constraint firstItem="ynC-0D-5zQ" firstAttribute="top" secondItem="veL-o2-wMz" secondAttribute="top" id="5P1-jd-ce6"/>
+                                                <constraint firstAttribute="trailing" secondItem="uSJ-rd-Vlm" secondAttribute="trailing" id="AGA-nl-yCj"/>
+                                                <constraint firstItem="ynC-0D-5zQ" firstAttribute="leading" secondItem="veL-o2-wMz" secondAttribute="leading" id="C4a-hl-zKN"/>
+                                                <constraint firstItem="uSJ-rd-Vlm" firstAttribute="leading" secondItem="veL-o2-wMz" secondAttribute="leading" id="Lc0-QG-jIF"/>
+                                                <constraint firstItem="uSJ-rd-Vlm" firstAttribute="top" secondItem="ynC-0D-5zQ" secondAttribute="bottom" constant="4" id="PcI-6N-Ncz"/>
+                                                <constraint firstAttribute="bottom" secondItem="uSJ-rd-Vlm" secondAttribute="bottom" id="T4f-sl-IRx"/>
+                                                <constraint firstItem="vRo-hb-GCX" firstAttribute="top" secondItem="veL-o2-wMz" secondAttribute="top" constant="2" id="n1F-ka-CD9"/>
+                                                <constraint firstAttribute="height" constant="52" id="sCy-gs-Fho"/>
+                                                <constraint firstAttribute="trailing" secondItem="EEw-fo-cIt" secondAttribute="trailing" id="trf-O0-RcC"/>
+                                                <constraint firstItem="EEw-fo-cIt" firstAttribute="top" secondItem="veL-o2-wMz" secondAttribute="top" id="uhq-FQ-moy"/>
+                                            </constraints>
+                                        </customView>
                                     </subviews>
                                     <constraints>
                                         <constraint firstItem="W7H-2A-riS" firstAttribute="leading" secondItem="vmh-tU-E0c" secondAttribute="leading" id="0DK-3J-zDd"/>
                                         <constraint firstItem="O9F-uH-62i" firstAttribute="leading" secondItem="vmh-tU-E0c" secondAttribute="leading" id="0O5-GW-YWh"/>
                                         <constraint firstItem="2Fv-aT-yF4" firstAttribute="leading" secondItem="vmh-tU-E0c" secondAttribute="leading" id="3g4-d2-Cak"/>
+                                        <constraint firstAttribute="trailing" secondItem="veL-o2-wMz" secondAttribute="trailing" id="5PN-Lh-UTr"/>
                                         <constraint firstAttribute="width" constant="335" id="A7b-dq-qHX"/>
+                                        <constraint firstItem="ih0-ST-chg" firstAttribute="top" secondItem="veL-o2-wMz" secondAttribute="bottom" constant="16" id="GDf-61-aS7"/>
+                                        <constraint firstItem="veL-o2-wMz" firstAttribute="leading" secondItem="vmh-tU-E0c" secondAttribute="leading" id="Io5-SC-zrJ"/>
                                         <constraint firstItem="NiL-sj-flK" firstAttribute="top" secondItem="O9F-uH-62i" secondAttribute="bottom" constant="12" id="OM0-aD-Llb"/>
                                         <constraint firstAttribute="trailing" secondItem="O9F-uH-62i" secondAttribute="trailing" id="PYx-zz-Ics"/>
                                         <constraint firstItem="2Fv-aT-yF4" firstAttribute="top" secondItem="NiL-sj-flK" secondAttribute="bottom" constant="6" id="SXR-Vl-QIM"/>
                                         <constraint firstItem="ih0-ST-chg" firstAttribute="leading" secondItem="vmh-tU-E0c" secondAttribute="leading" id="YIa-4z-uz7"/>
                                         <constraint firstAttribute="trailing" secondItem="2Fv-aT-yF4" secondAttribute="trailing" id="a6c-F8-Kez"/>
                                         <constraint firstItem="Bf9-95-LZa" firstAttribute="top" secondItem="2Fv-aT-yF4" secondAttribute="bottom" constant="6" id="axc-Dw-sq8"/>
+                                        <constraint firstItem="veL-o2-wMz" firstAttribute="top" secondItem="Dnb-jj-AQO" secondAttribute="bottom" constant="8" id="cBj-6T-BqZ"/>
                                         <constraint firstAttribute="trailing" secondItem="ih0-ST-chg" secondAttribute="trailing" id="cuj-fX-BUJ"/>
                                         <constraint firstItem="Bf9-95-LZa" firstAttribute="leading" secondItem="vmh-tU-E0c" secondAttribute="leading" id="dup-2G-Gpc"/>
                                         <constraint firstItem="O9F-uH-62i" firstAttribute="top" secondItem="W7H-2A-riS" secondAttribute="bottom" constant="20" id="fem-IW-e9b"/>
-                                        <constraint firstItem="ih0-ST-chg" firstAttribute="top" secondItem="Dnb-jj-AQO" secondAttribute="bottom" constant="8" id="fgX-Uz-vCy"/>
                                         <constraint firstItem="W7H-2A-riS" firstAttribute="top" secondItem="ih0-ST-chg" secondAttribute="bottom" constant="4" id="l30-oM-OZT"/>
                                         <constraint firstItem="NiL-sj-flK" firstAttribute="leading" secondItem="vmh-tU-E0c" secondAttribute="leading" id="n7b-Cy-OZW"/>
                                         <constraint firstAttribute="trailing" secondItem="NiL-sj-flK" secondAttribute="trailing" id="phN-wQ-Ba3"/>

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

@@ -72,6 +72,7 @@ typedef void(^ActivityComplention)(ActivityStatus status, NSDictionary *info, NS
 @property (nonatomic, readonly) NSInteger trialTimes;
 
 @property (nonatomic, readonly) NSString *email;
+@property (nonatomic, readonly) NSString *subscriptionEmail;
 
 @property (nonatomic, readonly) NSString *accountName;
 
@@ -159,6 +160,7 @@ typedef void(^ActivityComplention)(ActivityStatus status, NSDictionary *info, NS
 @property (nonatomic, readonly) BOOL repeatTrial;
 
 @property (nonatomic, readonly) NSString *email;
+@property (nonatomic, readonly) NSString *subscriptionEmail;
 
 @property (nonatomic, readonly) NSString *accountName;
 

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

@@ -103,6 +103,10 @@ static VerificationManager *__verificationManager = nil;
     return self.detailInfo.email?:@"";
 }
 
+- (NSString *)subscriptionEmail {
+    return self.detailInfo.subscriptionEmail?:@"";
+}
+
 - (NSString *)accountName {
     return self.detailInfo.accountName;
 }
@@ -1120,6 +1124,10 @@ static VerificationManager *__verificationManager = nil;
     return self[@"device"][@"email"]?:@"";
 }
 
+- (NSString *)subscriptionEmail {
+    return self[@"subscription"][@"email"]?:@"";
+}
+
 - (NSString *)accountName {
     return self[@"device"][@"contact_name"]?:@"";
 }

+ 2 - 0
PDF Office/PDF Master/Strings/en.lproj/Localizable.strings

@@ -4230,3 +4230,5 @@
 "Scan QR Code with WeChat" = "Scan QR Code with WeChat";
 "The coupon code has expired." = "The coupon code has expired.";
 "The coupon code has been used, please change your coupon code." = "The coupon code has been used, please change your coupon code.";
+"Purchased" = "Purchased";
+"Successfully" = "Successfully";

+ 2 - 0
PDF Office/PDF Master/Strings/zh-Hans.lproj/Localizable.strings

@@ -4132,3 +4132,5 @@
 "Scan QR Code with WeChat" = "打开微信扫描二维码";
 "The coupon code has expired." = "您的优惠券已过期。";
 "The coupon code has been used, please change your coupon code." = "您的优惠券已被使用,请更换优惠券码。";
+"Purchased" = "购买";
+"Successfully" = "成功";

+ 2 - 0
PDF Office/PDF Master/Strings/zh-Hant.lproj/Localizable.strings

@@ -4262,3 +4262,5 @@
 "Scan QR Code with WeChat" = "打開微信掃描二維碼";
 "The coupon code has expired." = "您的優惠券已過期。";
 "The coupon code has been used, please change your coupon code." = "您的優惠券已被使用,請更換優惠券碼。";
+"Purchased" = "購買";
+"Successfully" = "成功";