Browse Source

new share view

marinofaggiana 5 years ago
parent
commit
73cd09e755
3 changed files with 84 additions and 25 deletions
  1. 67 13
      iOSClient/Share/NCShare.swift
  2. 17 11
      iOSClient/Share/NCShareLinkCell.xib
  3. 0 1
      iOSClient/Utility/NCUtility.swift

+ 67 - 13
iOSClient/Share/NCShare.swift

@@ -228,14 +228,13 @@ class NCShareComments: UIViewController {
 
 // MARK: - Share
 
-class NCShare: UIViewController, UIGestureRecognizerDelegate {
+class NCShare: UIViewController, UIGestureRecognizerDelegate, NCShareLinkCellDelegate {
     
     var metadata: tableMetadata?
     private let appDelegate = UIApplication.shared.delegate as! AppDelegate
 
     public var height: CGFloat = 0
     
-    private let iconShare: CGFloat = 200
     private var viewMenuShareLink: UIView?
     private var shareLinkMenuView: NCShareLinkMenuView?
     private var sharesTable: [tableShare]?
@@ -258,22 +257,26 @@ class NCShare: UIViewController, UIGestureRecognizerDelegate {
         returnSearchButton.setImage(CCGraphics.changeThemingColorImage(UIImage.init(named: "arrowRight"), width: 40, height: 40, color: UIColor.gray), for: .normal)
         shareLinkLabel.text = NSLocalizedString("_share_link_", comment: "")
         addShareLinkButton.setImage(CCGraphics.changeThemingColorImage(UIImage.init(named: "add"), width: 40, height: 40, color: UIColor.gray), for: .normal)
-
-        let bottomImage = CCGraphics.changeThemingColorImage(UIImage.init(named: "circle"), width: 200, height: 200, color: NCBrandColor.sharedInstance.customer)
-        let topImage = CCGraphics.changeThemingColorImage(UIImage.init(named: "sharebylink"), width: 200, height: 200, color: UIColor.white)
-        UIGraphicsBeginImageContextWithOptions(CGSize(width: iconShare, height: iconShare), false, 0.0)
-        bottomImage?.draw(in: CGRect(origin: CGPoint.zero, size: CGSize(width: iconShare, height: iconShare)))
-        topImage?.draw(in: CGRect(origin:  CGPoint(x: iconShare/4, y: iconShare/4), size: CGSize(width: iconShare/2, height: iconShare/2)))
-        shareLinkImage.image = UIGraphicsGetImageFromCurrentImageContext()
-        UIGraphicsEndImageContext()
+        shareLinkImage.image = NCShareUtility.sharedInstance.createLinkAvatar()
         
         tableView.dataSource = self
         tableView.delegate = self
+        tableView.allowsSelection = false
+        
+        tableView.register(UINib.init(nibName: "NCShareLinkCell", bundle: nil), forCellReuseIdentifier: "cellLink")
     }
     
     override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {
         viewMenuShareLink?.removeFromSuperview()
     }
+    
+    func tapCopy(with idRemoteShared: Int, sender: Any) {
+        
+    }
+    
+    func tapMenu(with idRemoteShared: Int, sender: Any) {
+        
+    }
 }
 
 extension NCShare: UITableViewDelegate {
@@ -307,9 +310,9 @@ extension NCShare: UITableViewDataSource {
         let tableShare = shares.share![indexPath.row]
         
         if tableShare.shareLink != "" {
-            if let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as? NCShareLinkCell {
-                
-                
+            if let cell = tableView.dequeueReusableCell(withIdentifier: "cellLink", for: indexPath) as? NCShareLinkCell {
+                cell.idRemoteShared = tableShare.idRemoteShared
+                cell.delegate = self
                 return cell
             }
         }
@@ -320,10 +323,37 @@ extension NCShare: UITableViewDataSource {
 
 class NCShareLinkCell: UITableViewCell {
     
+    private let iconShare: CGFloat = 200
+    
+    var idRemoteShared: Int = 0
+    var delegate: NCShareLinkCellDelegate?
+
     @IBOutlet weak var imageItem: UIImageView!
     @IBOutlet weak var labelTitle: UILabel!
     @IBOutlet weak var buttonCopy: UIButton!
     @IBOutlet weak var buttonMenu: UIButton!
+    
+    override func awakeFromNib() {
+        super.awakeFromNib()
+        
+        imageItem.image = NCShareUtility.sharedInstance.createLinkAvatar()
+        labelTitle.text = NSLocalizedString("_share_link_", comment: "")
+        buttonCopy.setImage(CCGraphics.changeThemingColorImage(UIImage.init(named: "shareCopy"), width:100, height: 100, color: UIColor.gray), for: .normal)
+        buttonMenu.setImage(CCGraphics.changeThemingColorImage(UIImage.init(named: "shareMenu"), width:100, height: 100, color: UIColor.gray), for: .normal)
+    }
+    
+    @IBAction func touchUpInsideCopy(_ sender: Any) {
+        delegate?.tapCopy(with: idRemoteShared, sender: sender)
+    }
+    
+    @IBAction func touchUpInsideMenu(_ sender: Any) {
+        delegate?.tapMenu(with: idRemoteShared, sender: sender)
+    }
+}
+
+protocol NCShareLinkCellDelegate {
+    func tapCopy(with idRemoteShared: Int, sender: Any)
+    func tapMenu(with idRemoteShared: Int, sender: Any)
 }
 
 // MARK: - AddShareLink
@@ -391,6 +421,7 @@ class NCShareLinkMenuView: UIView {
     
     public let width: CGFloat = 250
     public let height: CGFloat = 470
+    public var idRemoteShared: Int = 0
     
     override func awakeFromNib() {
         
@@ -415,3 +446,26 @@ class NCShareLinkMenuView: UIView {
         buttonAddAnotherLink.setImage(CCGraphics.changeThemingColorImage(UIImage.init(named: "add"), width: 100, height: 100, color: UIColor.black), for: .normal)
     }
 }
+
+class NCShareUtility: NSObject {
+    @objc static let sharedInstance: NCShareUtility = {
+        let instance = NCShareUtility()
+        return instance
+    }()
+    
+    func createLinkAvatar() -> UIImage? {
+        
+        let size: CGFloat = 200
+        
+        let bottomImage = CCGraphics.changeThemingColorImage(UIImage.init(named: "circle"), width: size, height: size, color: NCBrandColor.sharedInstance.brand)
+        let topImage = CCGraphics.changeThemingColorImage(UIImage.init(named: "sharebylink"), width: size, height: size, color: UIColor.white)
+        UIGraphicsBeginImageContextWithOptions(CGSize(width: size, height: size), false, 0.0)
+        bottomImage?.draw(in: CGRect(origin: CGPoint.zero, size: CGSize(width: size, height: size)))
+        topImage?.draw(in: CGRect(origin:  CGPoint(x: size/4, y: size/4), size: CGSize(width: size/2, height: size/2)))
+        let image = UIGraphicsGetImageFromCurrentImageContext()
+        UIGraphicsEndImageContext()
+        
+        return image
+    }
+}
+

+ 17 - 11
iOSClient/Share/NCShareLinkCell.xib

@@ -11,7 +11,7 @@
     <objects>
         <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
         <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
-        <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" preservesSuperviewLayoutMargins="YES" selectionStyle="default" indentationWidth="10" reuseIdentifier="cell" rowHeight="90" id="qJF-Yc-gKE" customClass="NCShareLinkCell" customModule="Nextcloud" customModuleProvider="target">
+        <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" preservesSuperviewLayoutMargins="YES" selectionStyle="default" indentationWidth="10" reuseIdentifier="cellLink" rowHeight="90" id="qJF-Yc-gKE" customClass="NCShareLinkCell" customModule="Nextcloud" customModuleProvider="target">
             <rect key="frame" x="0.0" y="0.0" width="600" height="90"/>
             <autoresizingMask key="autoresizingMask"/>
             <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" preservesSuperviewLayoutMargins="YES" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="qJF-Yc-gKE" id="3Oe-gU-3Nk">
@@ -19,14 +19,14 @@
                 <autoresizingMask key="autoresizingMask"/>
                 <subviews>
                     <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" image="circle" translatesAutoresizingMaskIntoConstraints="NO" id="qDs-UG-Mn7" userLabel="ImageItem">
-                        <rect key="frame" x="10" y="25" width="40" height="40"/>
+                        <rect key="frame" x="5" y="25" width="40" height="40"/>
                         <constraints>
                             <constraint firstAttribute="height" constant="40" id="8et-YH-T1D"/>
                             <constraint firstAttribute="width" constant="40" id="GNY-Va-SIJ"/>
                         </constraints>
                     </imageView>
                     <label opaque="NO" userInteractionEnabled="NO" tag="101" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Share link" lineBreakMode="middleTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="otH-mT-7Z4" userLabel="labelTitle">
-                        <rect key="frame" x="60" y="36" width="150" height="18"/>
+                        <rect key="frame" x="55" y="36" width="150" height="18"/>
                         <constraints>
                             <constraint firstAttribute="width" constant="150" id="4Oa-yZ-HZK"/>
                             <constraint firstAttribute="height" constant="18" id="iet-xr-SX6"/>
@@ -36,31 +36,37 @@
                         <nil key="highlightedColor"/>
                     </label>
                     <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="xaz-vY-Jzu" userLabel="ButtonCopy">
-                        <rect key="frame" x="490" y="30" width="30" height="30"/>
+                        <rect key="frame" x="520" y="35" width="20" height="20"/>
                         <constraints>
-                            <constraint firstAttribute="width" constant="30" id="0JR-eM-oir"/>
-                            <constraint firstAttribute="height" constant="30" id="HVo-ht-9m6"/>
+                            <constraint firstAttribute="width" constant="20" id="0JR-eM-oir"/>
+                            <constraint firstAttribute="height" constant="20" id="HVo-ht-9m6"/>
                         </constraints>
                         <state key="normal" image="shareCopy"/>
+                        <connections>
+                            <action selector="touchUpInsideCopy:" destination="qJF-Yc-gKE" eventType="touchUpInside" id="hSV-RK-FAe"/>
+                        </connections>
                     </button>
                     <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="J1z-RG-U4A" userLabel="ButtonMenu">
-                        <rect key="frame" x="550" y="30" width="30" height="30"/>
+                        <rect key="frame" x="570" y="35" width="20" height="20"/>
                         <constraints>
-                            <constraint firstAttribute="height" constant="30" id="G48-LB-BsD"/>
-                            <constraint firstAttribute="width" constant="30" id="vLI-cJ-Jqx"/>
+                            <constraint firstAttribute="height" constant="20" id="G48-LB-BsD"/>
+                            <constraint firstAttribute="width" constant="20" id="vLI-cJ-Jqx"/>
                         </constraints>
                         <state key="normal" image="shareMenu"/>
+                        <connections>
+                            <action selector="touchUpInsideMenu:" destination="qJF-Yc-gKE" eventType="touchUpInside" id="GT2-Ef-FfR"/>
+                        </connections>
                     </button>
                 </subviews>
                 <constraints>
                     <constraint firstItem="otH-mT-7Z4" firstAttribute="leading" secondItem="qDs-UG-Mn7" secondAttribute="trailing" constant="10" id="7o5-Rj-6lV"/>
                     <constraint firstItem="otH-mT-7Z4" firstAttribute="centerY" secondItem="3Oe-gU-3Nk" secondAttribute="centerY" id="JNE-HJ-E36"/>
-                    <constraint firstItem="qDs-UG-Mn7" firstAttribute="leading" secondItem="3Oe-gU-3Nk" secondAttribute="leading" constant="10" id="KOm-wo-CBa"/>
+                    <constraint firstItem="qDs-UG-Mn7" firstAttribute="leading" secondItem="3Oe-gU-3Nk" secondAttribute="leading" constant="5" id="KOm-wo-CBa"/>
                     <constraint firstItem="J1z-RG-U4A" firstAttribute="centerY" secondItem="3Oe-gU-3Nk" secondAttribute="centerY" id="TvQ-yn-L5w"/>
                     <constraint firstItem="qDs-UG-Mn7" firstAttribute="centerY" secondItem="3Oe-gU-3Nk" secondAttribute="centerY" id="ZrD-Aw-xkx"/>
                     <constraint firstItem="J1z-RG-U4A" firstAttribute="leading" secondItem="xaz-vY-Jzu" secondAttribute="trailing" constant="30" id="gGI-DA-dwq"/>
                     <constraint firstItem="xaz-vY-Jzu" firstAttribute="centerY" secondItem="3Oe-gU-3Nk" secondAttribute="centerY" id="o6o-Zj-1aU"/>
-                    <constraint firstAttribute="trailing" secondItem="J1z-RG-U4A" secondAttribute="trailing" constant="20" id="pQA-B9-MM5"/>
+                    <constraint firstAttribute="trailing" secondItem="J1z-RG-U4A" secondAttribute="trailing" constant="10" id="pQA-B9-MM5"/>
                 </constraints>
             </tableViewCellContentView>
             <connections>

+ 0 - 1
iOSClient/Utility/NCUtility.swift

@@ -26,7 +26,6 @@ import SVGKit
 import KTVHTTPCache
 
 class NCUtility: NSObject {
-
     @objc static let sharedInstance: NCUtility = {
         let instance = NCUtility()
         return instance