Эх сурвалжийг харах

added lock title image for the e2ee folder

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>
Marino Faggiana 2 жил өмнө
parent
commit
d16981937c

+ 42 - 0
iOSClient/Main/Collection Common/NCSelectableNavigationView.swift

@@ -66,6 +66,9 @@ extension NCSelectableNavigationView {
         } else {
             navigationItem.rightBarButtonItem = UIBarButtonItem(title: NSLocalizedString("_select_", comment: ""), style: UIBarButtonItem.Style.plain, action: tapSelect)
             navigationItem.leftBarButtonItem = nil
+            if NCUtility.shared.isFolderEncrypted(serverUrl: appDelegate.activeServerUrl, userBase: appDelegate), let image = UIImage(systemName: "lock.circle") {
+                navigationItem.titleView = createViewImageAndText(image: image.withTintColor(NCBrandColor.shared.brand, renderingMode: .alwaysOriginal), title: titleCurrentFolder)
+            }
             navigationItem.title = titleCurrentFolder
         }
     }
@@ -82,6 +85,45 @@ extension NCSelectableNavigationView {
         navigationItem.title = NSLocalizedString("_selected_", comment: "") + " : \(selectOcId.count)" + " / \(selectableDataSource.count)"
         collectionView.reloadData()
     }
+
+    func createViewImageAndText(image: UIImage, title: String) -> UIView {
+
+        // Creates a new UIView
+        let titleView = UIView()
+
+        // Creates a new text label
+        let label = UILabel()
+        label.text = title + " "
+        label.sizeToFit()
+        label.center = titleView.center
+        label.textAlignment = NSTextAlignment.center
+
+        // Creates the image view
+        let imageView = UIImageView()
+        imageView.image = image
+
+        // Maintains the image's aspect ratio:
+        let imageAspect = (imageView.image?.size.width ?? 0) / (imageView.image?.size.height ?? 0)
+
+        // Sets the image frame so that it's immediately before the text:
+        let imageX = label.frame.origin.x - label.frame.size.height * imageAspect
+        let imageY = label.frame.origin.y
+
+        let imageWidth = label.frame.size.height * imageAspect
+        let imageHeight = label.frame.size.height
+
+        imageView.frame = CGRect(x: imageX, y: imageY, width: imageWidth, height: imageHeight)
+        imageView.contentMode = UIView.ContentMode.scaleAspectFit
+
+        // Adds both the label and image view to the titleView
+        titleView.addSubview(label)
+        titleView.addSubview(imageView)
+
+        // Sets the titleView frame to fit within the UINavigation Title
+        titleView.sizeToFit()
+
+        return titleView
+    }
 }
 
 extension NCSelectableNavigationView where Self: UIViewController {