Browse Source

certificate detail

marinofaggiana 3 years ago
parent
commit
2cdfc2b0a4

+ 8 - 8
Nextcloud.xcodeproj/project.pbxproj

@@ -289,8 +289,8 @@
 		F7BAADC91ED5A87C00B7EAD4 /* NCDatabase.swift in Sources */ = {isa = PBXBuildFile; fileRef = F7BAADB41ED5A87C00B7EAD4 /* NCDatabase.swift */; };
 		F7BAADCB1ED5A87C00B7EAD4 /* NCManageDatabase.swift in Sources */ = {isa = PBXBuildFile; fileRef = F7BAADB51ED5A87C00B7EAD4 /* NCManageDatabase.swift */; };
 		F7BAADCC1ED5A87C00B7EAD4 /* NCManageDatabase.swift in Sources */ = {isa = PBXBuildFile; fileRef = F7BAADB51ED5A87C00B7EAD4 /* NCManageDatabase.swift */; };
-		F7BC287E26663F6C004D46C5 /* NCViewCertificateInfo.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = F7BC287D26663F6C004D46C5 /* NCViewCertificateInfo.storyboard */; };
-		F7BC288026663F85004D46C5 /* NCViewCertificateInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = F7BC287F26663F85004D46C5 /* NCViewCertificateInfo.swift */; };
+		F7BC287E26663F6C004D46C5 /* NCViewCertificateDetail.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = F7BC287D26663F6C004D46C5 /* NCViewCertificateDetail.storyboard */; };
+		F7BC288026663F85004D46C5 /* NCViewCertificateDetail.swift in Sources */ = {isa = PBXBuildFile; fileRef = F7BC287F26663F85004D46C5 /* NCViewCertificateDetail.swift */; };
 		F7BD71E62636EAFC00643C34 /* NCNetworkingE2EE.swift in Sources */ = {isa = PBXBuildFile; fileRef = F785EE9C246196DF00B3F945 /* NCNetworkingE2EE.swift */; };
 		F7C1EEA525053A9C00866ACC /* NCDataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = F7C1EEA425053A9C00866ACC /* NCDataSource.swift */; };
 		F7C4D88D2534887E00C142DA /* Parchment in Frameworks */ = {isa = PBXBuildFile; productRef = F7C4D88C2534887E00C142DA /* Parchment */; };
@@ -693,8 +693,8 @@
 		F7BAADB41ED5A87C00B7EAD4 /* NCDatabase.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NCDatabase.swift; sourceTree = "<group>"; };
 		F7BAADB51ED5A87C00B7EAD4 /* NCManageDatabase.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NCManageDatabase.swift; sourceTree = "<group>"; };
 		F7BB04851FD58ACB00BBFD2A /* cs-CZ */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "cs-CZ"; path = "cs-CZ.lproj/Localizable.strings"; sourceTree = "<group>"; };
-		F7BC287D26663F6C004D46C5 /* NCViewCertificateInfo.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = NCViewCertificateInfo.storyboard; sourceTree = "<group>"; };
-		F7BC287F26663F85004D46C5 /* NCViewCertificateInfo.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NCViewCertificateInfo.swift; sourceTree = "<group>"; };
+		F7BC287D26663F6C004D46C5 /* NCViewCertificateDetail.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = NCViewCertificateDetail.storyboard; sourceTree = "<group>"; };
+		F7BC287F26663F85004D46C5 /* NCViewCertificateDetail.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NCViewCertificateDetail.swift; sourceTree = "<group>"; };
 		F7C1EEA425053A9C00866ACC /* NCDataSource.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NCDataSource.swift; sourceTree = "<group>"; };
 		F7C40BE221998C050004137E /* PDFGenerator.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = PDFGenerator.framework; path = Carthage/Build/iOS/PDFGenerator.framework; sourceTree = "<group>"; };
 		F7C40BE421998D5A0004137E /* MGSwipeTableCell.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MGSwipeTableCell.framework; path = Carthage/Build/iOS/MGSwipeTableCell.framework; sourceTree = "<group>"; };
@@ -1621,8 +1621,8 @@
 				F7F878AD1FB9E3B900599E4F /* NCEndToEndMetadata.swift */,
 				F72D1006210B6882009C96B7 /* NCPushNotificationEncryption.h */,
 				F72D1005210B6882009C96B7 /* NCPushNotificationEncryption.m */,
-				F7BC287D26663F6C004D46C5 /* NCViewCertificateInfo.storyboard */,
-				F7BC287F26663F85004D46C5 /* NCViewCertificateInfo.swift */,
+				F7BC287D26663F6C004D46C5 /* NCViewCertificateDetail.storyboard */,
+				F7BC287F26663F85004D46C5 /* NCViewCertificateDetail.swift */,
 			);
 			path = Security;
 			sourceTree = "<group>";
@@ -1948,7 +1948,7 @@
 				F79728D622F9A0B1003CACA7 /* NCShareUserFolderMenuView.xib in Resources */,
 				F7DFAA8A22E22EF100FC4527 /* NCShareLinkMenuView.xib in Resources */,
 				F7C9555321F0C4CA0024296E /* NCActivity.storyboard in Resources */,
-				F7BC287E26663F6C004D46C5 /* NCViewCertificateInfo.storyboard in Resources */,
+				F7BC287E26663F6C004D46C5 /* NCViewCertificateDetail.storyboard in Resources */,
 				F78ACD54219047D40088454D /* NCSectionFooter.xib in Resources */,
 				F704B5E32430AA6F00632F5F /* NCCreateFormUploadConflict.storyboard in Resources */,
 				F77B0F611D118A16002130FE /* Acknowledgements.rtf in Resources */,
@@ -2191,7 +2191,7 @@
 				F707C26521A2DC5200F6181E /* NCStoreReview.swift in Sources */,
 				F7BAADCB1ED5A87C00B7EAD4 /* NCManageDatabase.swift in Sources */,
 				F70968A424212C4E00ED60E5 /* NCLivePhoto.swift in Sources */,
-				F7BC288026663F85004D46C5 /* NCViewCertificateInfo.swift in Sources */,
+				F7BC288026663F85004D46C5 /* NCViewCertificateDetail.swift in Sources */,
 				F702F2E625EE5C86008F8E80 /* NCAudioRecorderViewController.swift in Sources */,
 				F745B253222D88AE00346520 /* NCLoginQRCode.swift in Sources */,
 				F7CBC31C24F78E79004D3812 /* NCSortMenu.swift in Sources */,

+ 21 - 2
iOSClient/Security/NCViewCertificateInfo.storyboard → iOSClient/Security/NCViewCertificateDetail.storyboard

@@ -9,15 +9,30 @@
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
     <scenes>
-        <!--View Certificate Info-->
+        <!--View Certificate Detail-->
         <scene sceneID="s0d-6b-0kx">
             <objects>
-                <viewController id="Y6W-OH-hqX" customClass="NCViewCertificateInfo" customModule="Nextcloud" customModuleProvider="target" sceneMemberID="viewController">
+                <viewController id="Y6W-OH-hqX" customClass="NCViewCertificateDetail" sceneMemberID="viewController">
                     <view key="view" contentMode="scaleToFill" id="5EZ-qb-Rvc">
                         <rect key="frame" x="0.0" y="0.0" width="414" height="896"/>
                         <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                        <subviews>
+                            <textView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" editable="NO" textAlignment="natural" selectable="NO" translatesAutoresizingMaskIntoConstraints="NO" id="jEf-af-ZVo">
+                                <rect key="frame" x="0.0" y="88" width="414" height="774"/>
+                                <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                                <color key="textColor" systemColor="labelColor"/>
+                                <fontDescription key="fontDescription" type="system" pointSize="14"/>
+                                <textInputTraits key="textInputTraits" autocapitalizationType="sentences"/>
+                            </textView>
+                        </subviews>
                         <viewLayoutGuide key="safeArea" id="vDu-zF-Fre"/>
                         <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                        <constraints>
+                            <constraint firstItem="jEf-af-ZVo" firstAttribute="trailing" secondItem="vDu-zF-Fre" secondAttribute="trailing" id="5mL-CL-tTj"/>
+                            <constraint firstItem="jEf-af-ZVo" firstAttribute="leading" secondItem="vDu-zF-Fre" secondAttribute="leading" id="5pm-Pn-Li7"/>
+                            <constraint firstItem="jEf-af-ZVo" firstAttribute="bottom" secondItem="vDu-zF-Fre" secondAttribute="bottom" id="P6Y-Um-lnc"/>
+                            <constraint firstItem="jEf-af-ZVo" firstAttribute="top" secondItem="vDu-zF-Fre" secondAttribute="top" id="ViP-hZ-vg0"/>
+                        </constraints>
                     </view>
                     <navigationItem key="navigationItem" id="nvl-dP-SdZ">
                         <barButtonItem key="leftBarButtonItem" title="close" id="6nS-TU-cxF">
@@ -28,6 +43,7 @@
                     </navigationItem>
                     <connections>
                         <outlet property="buttonCancel" destination="6nS-TU-cxF" id="1GQ-8Q-PRL"/>
+                        <outlet property="textView" destination="jEf-af-ZVo" id="IHH-0r-ijp"/>
                     </connections>
                 </viewController>
                 <placeholder placeholderIdentifier="IBFirstResponder" id="Ief-a0-LHa" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/>
@@ -54,6 +70,9 @@
         </scene>
     </scenes>
     <resources>
+        <systemColor name="labelColor">
+            <color white="0.0" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+        </systemColor>
         <systemColor name="systemBackgroundColor">
             <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
         </systemColor>

+ 19 - 4
iOSClient/Security/NCViewCertificateInfo.swift → iOSClient/Security/NCViewCertificateDetail.swift

@@ -1,5 +1,5 @@
 //
-//  NCViewCertificateInfo.swift
+//  NCViewCertificateDetail.swift
 //  Nextcloud
 //
 //  Created by Marino Faggiana on 01/06/21.
@@ -23,18 +23,34 @@
 
 import UIKit
 
-class NCViewCertificateInfo: UIViewController {
+class NCViewCertificateDetail: UIViewController {
 
     @IBOutlet weak var buttonCancel: UIBarButtonItem!
+    @IBOutlet weak var textView: UITextView!
 
     // MARK: - View Life Cycle
 
     override func viewDidLoad() {
         super.viewDidLoad()
         
-        self.navigationItem.title = NSLocalizedString("_certificate_", comment: "")
+        self.navigationItem.title = NSLocalizedString("_certificate_details_", comment: "")
         
         buttonCancel.title = NSLocalizedString("_close_", comment: "")
+        
+        let directoryCertificate = CCUtility.getDirectoryCerificates()!
+        let certificatePath = directoryCertificate + "/" + NCGlobal.shared.certificateTmpV2 + ".txt"
+        if FileManager.default.fileExists(atPath: certificatePath) {
+            do {
+                let text = try String(contentsOfFile: certificatePath, encoding: .utf8)
+                textView.text = text
+            } catch {
+                print("error")
+            }
+        } else {
+            DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) {
+                self.dismiss(animated: true, completion: nil)
+            }
+        }
     }
     
     // MARK: ACTION
@@ -42,5 +58,4 @@ class NCViewCertificateInfo: UIViewController {
     @IBAction func actionCancel(_ sender: UIBarButtonItem) {
         self.dismiss(animated: true, completion: nil)
     }
-    
 }

+ 22 - 1
iOSClient/Settings/CCManageAccount.m

@@ -140,6 +140,15 @@
                 [section addFormRow:row];
             }
         }
+        
+        row = [XLFormRowDescriptor formRowDescriptorWithTag:@"certificateDetail" rowType:XLFormRowDescriptorTypeButton title:NSLocalizedString(@"_certificate_details_", nil)];
+        row.cellConfigAtConfigure[@"backgroundColor"] = NCBrandColor.shared.secondarySystemGroupedBackground;
+        [row.cellConfig setObject:[UIFont systemFontOfSize:15.0] forKey:@"textLabel.font"];
+        [row.cellConfig setObject:[[UIImage imageNamed:@"lock"] imageWithColor:NCBrandColor.shared.gray size:25] forKey:@"imageView.image"];
+        [row.cellConfig setObject:@(NSTextAlignmentLeft) forKey:@"textLabel.textAlignment"];
+        [row.cellConfig setObject:NCBrandColor.shared.label forKey:@"textLabel.textColor"];
+        row.action.formSelector = @selector(certificateDetails:);
+        [section addFormRow:row];
     }
     
     // Section : USER INFORMATION -------------------------------------------
@@ -479,10 +488,22 @@
     
     if (@available(iOS 13.0, *)) {
         
-        NCUserStatus *navigationController = [[UIStoryboard storyboardWithName:@"NCUserStatus" bundle:nil] instantiateInitialViewController];
+        UINavigationController *navigationController = [[UIStoryboard storyboardWithName:@"NCUserStatus" bundle:nil] instantiateInitialViewController];
         
         [self presentViewController:navigationController animated:YES completion:nil];
     }
 }
 
+#pragma mark -
+
+- (void)certificateDetails:(XLFormRowDescriptor *)sender
+{
+    [self deselectFormRow:sender];
+    
+        
+    UINavigationController *navigationController = [[UIStoryboard storyboardWithName:@"NCViewCertificateDetail" bundle:nil] instantiateInitialViewController];
+        
+    [self presentViewController:navigationController animated:YES completion:nil];
+}
+
 @end

+ 1 - 1
iOSClient/Supporting Files/en.lproj/Localizable.strings

@@ -796,7 +796,7 @@
 "Passcodes didn't match. Try again." = "Passcodes didn't match. Try again.";
 "Delete"                    = "Delete";
 "Cancel"                    = "Cancel";
-"_certificate_"             = "Certificate";
+"_certificate_details_"     = "Certificate details";
 
 // ----------------------------------------------------------------------------------------------------------------------------------
 // IM