|
@@ -0,0 +1,110 @@
|
|
|
+//
|
|
|
+// NCRichWorkspaceCommon.swift
|
|
|
+// Nextcloud
|
|
|
+//
|
|
|
+// Created by Marino Faggiana on 17/01/2020.
|
|
|
+// Copyright © 2020 Marino Faggiana. All rights reserved.
|
|
|
+//
|
|
|
+// Author Marino Faggiana <marino.faggiana@nextcloud.com>
|
|
|
+//
|
|
|
+// This program is free software: you can redistribute it and/or modify
|
|
|
+// it under the terms of the GNU General Public License as published by
|
|
|
+// the Free Software Foundation, either version 3 of the License, or
|
|
|
+// (at your option) any later version.
|
|
|
+//
|
|
|
+// This program is distributed in the hope that it will be useful,
|
|
|
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
+// GNU General Public License for more details.
|
|
|
+//
|
|
|
+// You should have received a copy of the GNU General Public License
|
|
|
+// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
|
+//
|
|
|
+
|
|
|
+import Foundation
|
|
|
+import NCCommunication
|
|
|
+
|
|
|
+@objc class NCRichWorkspaceTextCommon: NSObject {
|
|
|
+
|
|
|
+ let appDelegate = UIApplication.shared.delegate as! AppDelegate
|
|
|
+
|
|
|
+ @objc func createViewerNextcloudText(serverUrl: String,viewController: UIViewController) {
|
|
|
+
|
|
|
+ if !appDelegate.reachability.isReachable() {
|
|
|
+
|
|
|
+ NCContentPresenter.shared.messageNotification("_error_", description: "_go_online_", delay: TimeInterval(k_dismissAfterSecond), type: NCContentPresenter.messageType.info, errorCode: 0)
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ NCUtility.sharedInstance.startActivityIndicator(view: viewController.view, bottom: 0)
|
|
|
+
|
|
|
+ let fileNamePath = CCUtility.returnFileNamePath(fromFileName: k_fileNameRichWorkspace, serverUrl: serverUrl, activeUrl: appDelegate.activeUrl)!
|
|
|
+ NCCommunication.sharedInstance.NCTextCreateFile(urlString: appDelegate.activeUrl, fileNamePath: fileNamePath, editor: "text", templateId: "", account: appDelegate.activeAccount) { (account, url, errorCode, errorMessage) in
|
|
|
+
|
|
|
+ NCUtility.sharedInstance.stopActivityIndicator()
|
|
|
+
|
|
|
+ if errorCode == 0 && account == self.appDelegate.activeAccount {
|
|
|
+
|
|
|
+ if let viewerNextcloudText = UIStoryboard.init(name: "NCViewerRichWorkspace", bundle: nil).instantiateViewController(withIdentifier: "NCViewerNextcloudText") as? NCViewerNextcloudText {
|
|
|
+
|
|
|
+ viewerNextcloudText.url = url!
|
|
|
+ viewerNextcloudText.presentationController?.delegate = viewController as? UIAdaptivePresentationControllerDelegate
|
|
|
+
|
|
|
+ viewController.present(viewerNextcloudText, animated: true, completion: nil)
|
|
|
+ }
|
|
|
+
|
|
|
+ } else if errorCode != 0 {
|
|
|
+ NCContentPresenter.shared.messageNotification("_error_", description: errorMessage, delay: TimeInterval(k_dismissAfterSecond), type: NCContentPresenter.messageType.info, errorCode: errorCode)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @objc func openViewerNextcloudText(serverUrl: String, viewController: UIViewController) {
|
|
|
+
|
|
|
+ if !appDelegate.reachability.isReachable() {
|
|
|
+
|
|
|
+ NCContentPresenter.shared.messageNotification("_error_", description: "_go_online_", delay: TimeInterval(k_dismissAfterSecond), type: NCContentPresenter.messageType.info, errorCode: 0)
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ if let metadata = NCManageDatabase.sharedInstance.getMetadata(predicate: NSPredicate(format: "account == %@ AND serverUrl == %@ AND fileNameView LIKE[c] %@", appDelegate.activeAccount, serverUrl, k_fileNameRichWorkspace.lowercased())) {
|
|
|
+
|
|
|
+ if metadata.url == "" {
|
|
|
+
|
|
|
+ NCUtility.sharedInstance.startActivityIndicator(view: viewController.view, bottom: 0)
|
|
|
+
|
|
|
+ let fileNamePath = CCUtility.returnFileNamePath(fromFileName: metadata.fileName, serverUrl: metadata.serverUrl, activeUrl: appDelegate.activeUrl)!
|
|
|
+ NCCommunication.sharedInstance.NCTextOpenFile(urlString: appDelegate.activeUrl, fileNamePath: fileNamePath, editor: "text", account: appDelegate.activeAccount) { (account, url, errorCode, errorMessage) in
|
|
|
+
|
|
|
+ NCUtility.sharedInstance.stopActivityIndicator()
|
|
|
+
|
|
|
+ if errorCode == 0 && account == self.appDelegate.activeAccount {
|
|
|
+
|
|
|
+ if let viewerNextcloudText = UIStoryboard.init(name: "NCViewerRichWorkspace", bundle: nil).instantiateViewController(withIdentifier: "NCViewerNextcloudText") as? NCViewerNextcloudText {
|
|
|
+
|
|
|
+ viewerNextcloudText.url = url!
|
|
|
+ viewerNextcloudText.metadata = metadata
|
|
|
+ viewerNextcloudText.presentationController?.delegate = viewController as? UIAdaptivePresentationControllerDelegate
|
|
|
+
|
|
|
+ viewController.present(viewerNextcloudText, animated: true, completion: nil)
|
|
|
+ }
|
|
|
+
|
|
|
+ } else if errorCode != 0 {
|
|
|
+ NCContentPresenter.shared.messageNotification("_error_", description: errorMessage, delay: TimeInterval(k_dismissAfterSecond), type: NCContentPresenter.messageType.info, errorCode: errorCode)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ } else {
|
|
|
+
|
|
|
+ if let viewerNextcloudText = UIStoryboard.init(name: "NCViewerRichWorkspace", bundle: nil).instantiateViewController(withIdentifier: "NCViewerNextcloudText") as? NCViewerNextcloudText {
|
|
|
+
|
|
|
+ viewerNextcloudText.url = metadata.url
|
|
|
+ viewerNextcloudText.metadata = metadata
|
|
|
+ viewerNextcloudText.presentationController?.delegate = viewController as? UIAdaptivePresentationControllerDelegate
|
|
|
+
|
|
|
+ viewController.present(viewerNextcloudText, animated: true, completion: nil)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|