marinofaggiana 5 سال پیش
والد
کامیت
5ae78cdeb4

+ 1 - 0
iOSClient/Main/CCMain.h

@@ -56,6 +56,7 @@
 
 @property (nonatomic, strong) NSString *serverUrl;
 @property (nonatomic, strong) NSString *titleMain;
+@property (nonatomic, strong) NSString *richWorkspace;
 @property (nonatomic, weak) CCDetail *detailViewController;
 @property (nonatomic, strong) UISearchController *searchController;
 @property (nonatomic, strong) UIView *reMenuBackgroundView;

+ 13 - 17
iOSClient/Main/CCMain.m

@@ -70,9 +70,7 @@
     
     // Folder
     BOOL _loadingFolder;
-    tableMetadata *_metadataFolder;
-    
-    NSString *richWorkspace;
+    tableMetadata *_metadataFolder;    
 }
 @end
 
@@ -195,6 +193,10 @@
     // Get Shares
     appDelegate.shares = [[NCManageDatabase sharedInstance] getTableSharesWithAccount:appDelegate.activeAccount serverUrl:self.serverUrl];
     
+    // Get RichWorkspace
+    tableDirectory *directory = [[NCManageDatabase sharedInstance] getTableDirectoryWithPredicate:[NSPredicate predicateWithFormat:@"account == %@ AND serverUrl == %@", appDelegate.activeAccount, self.serverUrl]];
+    self.richWorkspace = directory.richWorkspace;
+    
     // Query data source
     if (self.searchController.isActive == false) {
         [self queryDatasourceWithReloadData:YES serverUrl:self.serverUrl];
@@ -1117,14 +1119,13 @@
           
         if (errorCode == 0 && [account isEqualToString:appDelegate.activeAccount]) {
             
-            tableMetadata *metadataFolder;
+            tableMetadata *metadataFolder = [tableMetadata new];
             (void)[[NCNetworking sharedInstance] convertFiles:files urlString:appDelegate.activeUrl serverUrl:self.serverUrl user:appDelegate.activeUser metadataFolder:&metadataFolder];
             
             // Rich Workspace
-            if (metadataFolder != nil) {
-                [[NCManageDatabase sharedInstance] setDirectoryWithOcId:metadataFolder.ocId serverUrl:self.serverUrl richWorkspace:metadataFolder.richWorkspace account:account];
-                [self setTableViewHeader];
-            }
+            [[NCManageDatabase sharedInstance] setDirectoryWithOcId:metadataFolder.ocId serverUrl:self.serverUrl richWorkspace:metadataFolder.richWorkspace account:account];
+            self.richWorkspace = metadataFolder.richWorkspace;
+            [self setTableViewHeader];
             
             tableDirectory *directory = [[NCManageDatabase sharedInstance] getTableDirectoryWithPredicate:[NSPredicate predicateWithFormat:@"account == %@ AND serverUrl == %@", account, metadataFolder.serverUrl]];
             
@@ -1936,11 +1937,9 @@
 
 - (void)viewRichWorkspaceTapAction:(UITapGestureRecognizer *)tapGesture
 {
-   tableDirectory *directory = [[NCManageDatabase sharedInstance] getTableDirectoryWithPredicate:[NSPredicate predicateWithFormat:@"account == %@ AND serverUrl == %@", appDelegate.activeAccount, self.serverUrl]];
-    
     UINavigationController *navigationController = [[UIStoryboard storyboardWithName:@"NCViewerRichWorkspace" bundle:nil] instantiateInitialViewController];
     NCViewerRichWorkspace *viewerRichWorkspace = (NCViewerRichWorkspace *)[navigationController topViewController];
-    viewerRichWorkspace.richWorkspace = directory.richWorkspace;
+    viewerRichWorkspace.richWorkspace = self.richWorkspace;
     viewerRichWorkspace.serverUrl = self.serverUrl;
     viewerRichWorkspace.titleCloseItem = NSLocalizedString(@"_back_", nil);
     
@@ -2197,7 +2196,6 @@
     //NSString *groupBy = [CCUtility getGroupBySettings];
     NSString *sorted = [CCUtility getOrderSettings];
     BOOL ascending = [CCUtility getAscendingSettings];
-    tableDirectory *directory = [[NCManageDatabase sharedInstance] getTableDirectoryWithPredicate:[NSPredicate predicateWithFormat:@"account == %@ AND serverUrl == %@", appDelegate.activeAccount, self.serverUrl]];
     tableCapabilities *capabilities = [[NCManageDatabase sharedInstance] getCapabilitesWithAccount:appDelegate.activeAccount];
     
     // ITEM SELECT ----------------------------------------------------------------------------------------------------
@@ -2318,7 +2316,7 @@
                                  
     // REMENU --------------------------------------------------------------------------------------------------------------
 
-    if (capabilities.versionMajor >= k_nextcloud_version_18_0 && directory.richWorkspace.length == 0) {
+    if (capabilities.versionMajor >= k_nextcloud_version_18_0 && self.richWorkspace.length == 0) {
         appDelegate.reMainMenu = [[REMenu alloc] initWithItems:@[appDelegate.selezionaItem, appDelegate.sortFileNameAZItem, appDelegate.sortFileNameZAItem, appDelegate.sortDateMoreRecentItem, appDelegate.sortDateLessRecentItem, appDelegate.sortSmallestItem, appDelegate.sortLargestItem, appDelegate.directoryOnTopItem, appDelegate.addFolderInfo]];
     } else {
         appDelegate.reMainMenu = [[REMenu alloc] initWithItems:@[appDelegate.selezionaItem, appDelegate.sortFileNameAZItem, appDelegate.sortFileNameZAItem, appDelegate.sortDateMoreRecentItem, appDelegate.sortDateLessRecentItem, appDelegate.sortSmallestItem, appDelegate.sortLargestItem, appDelegate.directoryOnTopItem]];
@@ -3889,15 +3887,13 @@
         
     } else {
     
-        tableDirectory *directory = [[NCManageDatabase sharedInstance] getTableDirectoryWithPredicate:[NSPredicate predicateWithFormat:@"account == %@ AND serverUrl == %@", appDelegate.activeAccount, self.serverUrl]];
-        
-        if (directory.richWorkspace.length == 0) {
+        if (self.richWorkspace.length == 0) {
             
             [self.tableView setTableHeaderView:nil];
             
         } else {
             
-            [self.viewRichWorkspace setRichWorkspaceText:directory.richWorkspace gradient:true];
+            [self.viewRichWorkspace setRichWorkspaceText:self.richWorkspace gradient:true];
             [self.viewRichWorkspace setFrame:CGRectMake(0, 0, self.tableView.frame.size.width, height)];
             [self.tableView setTableHeaderView:self.viewRichWorkspace];
         }

+ 4 - 2
iOSClient/RichWorkspace/NCViewerNextcloudText.swift

@@ -72,7 +72,10 @@ class NCViewerNextcloudText: UIViewController, WKNavigationDelegate, WKScriptMes
             
             if message.body as? String == "close" {
                 
-                dismiss(animated: true, completion: nil)
+                if #available(iOS 13.0, *) {
+                    self.presentationController?.delegate?.presentationControllerWillDismiss?(self.presentationController!)
+                }
+                dismiss(animated: true)
             }
             
             if message.body as? String == "share" {
@@ -93,7 +96,6 @@ class NCViewerNextcloudText: UIViewController, WKNavigationDelegate, WKScriptMes
         }
     }
         
-    
     //MARK: -
 
     public func webView(_ webView: WKWebView, didReceive challenge: URLAuthenticationChallenge, completionHandler: @escaping (URLSession.AuthChallengeDisposition, URLCredential?) -> Void) {

+ 24 - 1
iOSClient/RichWorkspace/NCViewerRichWorkspace.swift

@@ -24,7 +24,7 @@
 import Foundation
 import NCCommunication
 
-@objc class NCViewerRichWorkspace: UIViewController {
+@objc class NCViewerRichWorkspace: UIViewController, UIAdaptivePresentationControllerDelegate {
 
     @IBOutlet weak var viewRichWorkspace: NCViewRichWorkspace!
     @IBOutlet weak var editItem: UIBarButtonItem!
@@ -37,6 +37,7 @@ import NCCommunication
     override func viewDidLoad() {
         super.viewDidLoad()
         
+        presentationController?.delegate = self
         let closeItem = UIBarButtonItem(title: titleCloseItem, style: .plain, target: self, action: #selector(closeItemTapped(_:)))
         self.navigationItem.leftBarButtonItem = closeItem
         editItem.image = UIImage(named: "actionSheetModify")
@@ -47,6 +48,26 @@ import NCCommunication
         changeTheming()
     }
     
+    override func viewWillAppear(_ animated: Bool) {
+        super.viewWillAppear(animated)
+        
+        NCCommunication.sharedInstance.readFileOrFolder(serverUrlFileName: serverUrl, depth: "0", account: appDelegate.activeAccount) { (account, files, errorCode, errorMessage) in
+            
+            if errorCode == 0 && account == self.appDelegate.activeAccount {
+                
+                var metadataFolder = tableMetadata()
+                _ = NCNetworking.sharedInstance.convertFiles(files!, urlString: self.appDelegate.activeUrl, serverUrl: self.serverUrl, user: self.appDelegate.activeUser, metadataFolder: &metadataFolder)
+                NCManageDatabase.sharedInstance.setDirectory(ocId: metadataFolder.ocId, serverUrl: metadataFolder.serverUrl, richWorkspace: metadataFolder.richWorkspace, account: account)
+                self.richWorkspace = metadataFolder.richWorkspace
+                self.viewRichWorkspace.setRichWorkspaceText(self.richWorkspace, gradient: false)
+            }
+        }
+    }
+    
+    public func presentationControllerWillDismiss(_ presentationController: UIPresentationController) {
+        self.viewWillAppear(true)
+    }
+    
     @objc func changeTheming() {
         appDelegate.changeTheming(self, tableView: nil, collectionView: nil, form: false)
     }
@@ -72,6 +93,7 @@ import NCCommunication
                             
                             viewerNextcloudText.url = url!
                             viewerNextcloudText.metadata = metadata
+                            viewerNextcloudText.presentationController?.delegate = self
                             
                             self.present(viewerNextcloudText, animated: true, completion: nil)
                         }
@@ -87,6 +109,7 @@ import NCCommunication
                     
                     viewerNextcloudText.url = metadata.url
                     viewerNextcloudText.metadata = metadata
+                    viewerNextcloudText.presentationController?.delegate = self
                     
                     self.present(viewerNextcloudText, animated: true, completion: nil)
                 }