Browse Source

coding

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>
Marino Faggiana 2 years ago
parent
commit
e21f3e9092
2 changed files with 53 additions and 7 deletions
  1. 11 7
      iOSClient/Main/Create cloud/NCUploadAssets.swift
  2. 42 0
      iOSClient/Select/NCSelect.swift

+ 11 - 7
iOSClient/Main/Create cloud/NCUploadAssets.swift

@@ -29,7 +29,7 @@ class NCHostingUploadAssetsView: NSObject {
     @objc func makeShipDetailsUI(assets: [PHAsset], cryptated: Bool, session: String, userBaseUrl: NCUserBaseUrl, serverUrl: String) -> UIViewController {
 
         let uploadAssets = NCUploadAssets(assets: assets, session: session, userBaseUrl: userBaseUrl, serverUrl: serverUrl)
-        let details = UploadAssetsView(uploadAssets: uploadAssets)
+        let details = UploadAssetsView(uploadAssets: uploadAssets, serverUrl: serverUrl)
         let vc = UIHostingController(rootView: details)
         return vc
     }
@@ -212,14 +212,16 @@ extension NCUploadAssets: NCCreateFormUploadConflictDelegate {
 
 struct UploadAssetsView: View {
 
+    @State private var serverUrl: String
     @State var fileName: String = CCUtility.getFileNameMask(NCGlobal.shared.keyFileNameMask)
     @State var isPresentedSelect = false
     @State var isPresentedUploadConflict = false
 
     @ObservedObject var uploadAssets: NCUploadAssets
 
-    init(uploadAssets: NCUploadAssets) {
+    init(uploadAssets: NCUploadAssets, serverUrl: String) {
         self.uploadAssets = uploadAssets
+        self.serverUrl = serverUrl
     }
 
     var body: some View {
@@ -228,11 +230,11 @@ struct UploadAssetsView: View {
                 Section(header: Text(NSLocalizedString("_save_path_", comment: ""))) {
                     HStack {
                         Label {
-                            if NCUtilityFileSystem.shared.getHomeServer(urlBase: uploadAssets.userBaseUrl.urlBase, userId: uploadAssets.userBaseUrl.userId) == uploadAssets.serverUrl {
+                            if NCUtilityFileSystem.shared.getHomeServer(urlBase: uploadAssets.userBaseUrl.urlBase, userId: uploadAssets.userBaseUrl.userId) == serverUrl {
                                 Text("/")
                                     .frame(maxWidth: .infinity, alignment: .trailing)
                             } else {
-                                Text((uploadAssets.serverUrl as NSString).lastPathComponent)
+                                Text((serverUrl as NSString).lastPathComponent)
                                     .frame(maxWidth: .infinity, alignment: .trailing)
                             }
                         } icon: {
@@ -293,10 +295,12 @@ struct UploadAssetsView: View {
             .navigationBarTitleDisplayMode(.inline)
         }
         .sheet(isPresented: $isPresentedSelect) {
-            NCSelectViewControllerRepresentable(delegate: uploadAssets)
+            NCSelectView(serverUrl: $serverUrl)
         }
         .sheet(isPresented: $isPresentedUploadConflict) {
-            NCUploadConflictRepresentedView(delegate: uploadAssets, serverUrl: uploadAssets.serverUrl, metadatasUploadInConflict: [uploadAssets.metadata])
+            if let serverUrl = serverUrl {
+                NCUploadConflictRepresentedView(delegate: uploadAssets, serverUrl: serverUrl, metadatasUploadInConflict: []) // uploadAssets.metadata
+            }
         }
     }
 }
@@ -307,7 +311,7 @@ struct UploadAssetsView_Previews: PreviewProvider {
     static var previews: some View {
         if let appDelegate = UIApplication.shared.delegate as? AppDelegate {
             let uploadAssets = NCUploadAssets(assets: [], session: "", userBaseUrl: appDelegate, serverUrl: "/")
-            UploadAssetsView(uploadAssets: uploadAssets)
+            UploadAssetsView(uploadAssets: uploadAssets, serverUrl: "/")
         }
     }
 }

+ 42 - 0
iOSClient/Select/NCSelect.swift

@@ -860,3 +860,45 @@ struct NCSelectViewControllerRepresentable: UIViewControllerRepresentable {
 
     func updateUIViewController(_ uiViewController: UINavigationController, context: Context) { }
 }
+
+struct NCSelectView: UIViewControllerRepresentable {
+
+    typealias UIViewControllerType = UINavigationController
+    @Binding var serverUrl: String
+
+    class Coordinator: NSObject, NCSelectDelegate {
+
+        var parent: NCSelectView
+
+        init(_ parent: NCSelectView) {
+            self.parent = parent
+        }
+
+        func dismissSelect(serverUrl: String?, metadata: tableMetadata?, type: String, items: [Any], overwrite: Bool, copy: Bool, move: Bool) {
+            if let serverUrl = serverUrl {
+                self.parent.serverUrl  = serverUrl
+            }
+        }
+    }
+
+    func makeUIViewController(context: Context) -> UINavigationController {
+
+        let storyboard = UIStoryboard(name: "NCSelect", bundle: nil)
+        let navigationController = storyboard.instantiateInitialViewController() as? UINavigationController
+        let viewController = navigationController?.topViewController as? NCSelect
+
+        viewController?.delegate = context.coordinator
+        viewController?.typeOfCommandView = .selectCreateFolder
+        viewController?.includeDirectoryE2EEncryption = true
+
+        return navigationController!
+    }
+
+    func updateUIViewController(_ uiViewController: UINavigationController, context: Context) { }
+
+    func makeCoordinator() -> Coordinator {
+        Coordinator(self)
+    }
+}
+
+