Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion iOSClient/Supporting Files/en.lproj/Localizable.strings
Original file line number Diff line number Diff line change
Expand Up @@ -526,10 +526,11 @@
"_certificate_view_" = "Certificate Server";
"_certificate_pn_view_" = "Certificate Push Notification";
"_save_as_scan_" = "Save as scan";
"_save_changes_" = "Save changes?";
"_modify_" = "Modify";
"_overwrite_original_" = "Overwrite original";
"_save_as_copy_" = "Save as copy";
"_discard_changes_" = "Close and discard changes";
"_discard_changes_" = "Discard changes";
"_message_disable_overwrite_livephoto_" = "This image is a Live Photo, overwrite will not be possible.";
"_discard_changes_info_" = "Your changes will be discarded.";
"_delete_files_desc_" = "Delete files to free up space";
Expand Down
39 changes: 18 additions & 21 deletions iOSClient/Viewer/NCViewerQuickLook/NCViewerQuickLook.swift
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,12 @@ public protocol NCViewerQuickLookDelegate: AnyObject {
func dismissQuickLook(fileNameSource: String, hasChangesQuickLook: Bool)
}

// optional func
/// Optional implementation
public extension NCViewerQuickLookDelegate {
func dismissQuickLook(fileNameSource: String, hasChangesQuickLook: Bool) {}
}

// if the document has any changes
/// Flag indicating If the document has any changes
private var hasChangesQuickLook: Bool = false

@objc class NCViewerQuickLook: QLPreviewController {
Expand All @@ -27,7 +27,7 @@ private var hasChangesQuickLook: Bool = false
private var isEditingEnabled: Bool
private var metadata: tableMetadata?
private var timer: Timer?
// used to display the save alert
/// Used to display the save alert
private var parentVC: UIViewController?
private let utilityFileSystem = NCUtilityFileSystem()
private let database = NCManageDatabase.shared
Expand Down Expand Up @@ -107,12 +107,10 @@ private var hasChangesQuickLook: Bool = false
})
}

@objc private func dismissView(_ sender: Any?) {
guard isEditingEnabled, hasChangesQuickLook, let metadata = metadata else {
dismiss(animated: true)
return
}
let alertController = UIAlertController(title: NSLocalizedString("_save_", comment: ""), message: nil, preferredStyle: .alert)
private func showSaveAlert() {
guard let metadata = metadata else { return }

let alertController = UIAlertController(title: NSLocalizedString("_save_changes_", comment: ""), message: nil, preferredStyle: .alert)
var message: String?

if metadata.isLivePhoto {
Expand Down Expand Up @@ -140,10 +138,14 @@ private var hasChangesQuickLook: Bool = false
self.dismiss(animated: true)
})

if metadata.isImage {
present(alertController, animated: true)
} else {
parentVC?.present(alertController, animated: true)
parentVC?.present(alertController, animated: true)
}

@objc private func dismissView(_ sender: Any?) {
dismiss(animated: true) {
if hasChangesQuickLook {
self.showSaveAlert()
}
}
}

Expand Down Expand Up @@ -193,7 +195,7 @@ extension NCViewerQuickLook: QLPreviewControllerDataSource, QLPreviewControllerD
}

func previewController(_ controller: QLPreviewController, editingModeFor previewItem: QLPreviewItem) -> QLPreviewItemEditingMode {
return isEditingEnabled ? .createCopy : .disabled
return isEditingEnabled ? .createCopy : .disabled // File is in private storage, so .updateContents is not possible and will still act as .createCopy.
}

fileprivate func saveModifiedFile(override: Bool) {
Expand All @@ -212,10 +214,7 @@ extension NCViewerQuickLook: QLPreviewControllerDataSource, QLPreviewControllerD
}

Task { @MainActor in
let fileNamePath = utilityFileSystem.getDirectoryProviderStorageOcId(ocId,
fileName: metadata.fileNameView,
userId: metadata.userId,
urlBase: metadata.urlBase)
let fileNamePath = utilityFileSystem.getDirectoryProviderStorageOcId(ocId, fileName: metadata.fileNameView, userId: metadata.userId, urlBase: metadata.urlBase)
guard utilityFileSystem.copyFile(atPath: url.path, toPath: fileNamePath) else { return }

let metadataForUpload = await NCManageDatabaseCreateMetadata().createMetadataAsync(
Expand All @@ -242,9 +241,7 @@ extension NCViewerQuickLook: QLPreviewControllerDataSource, QLPreviewControllerD
}

func previewController(_ controller: QLPreviewController, didSaveEditedCopyOf previewItem: QLPreviewItem, at modifiedContentsURL: URL) {
// easier to handle that way than to use `.updateContents`
// needs to be moved otherwise it will only be called once!
guard utilityFileSystem.moveFile(atPath: modifiedContentsURL.path, toPath: url.path) else { return }
guard utilityFileSystem.copyFile(atPath: modifiedContentsURL.path, toPath: url.path) else { return }
Comment thread
mpivchev marked this conversation as resolved.
hasChangesQuickLook = true
}
}
Expand Down
Loading