mirror of
https://github.com/nextcloud/desktop.git
synced 2024-11-21 12:35:52 +03:00
Process target item on init of lock view controller
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
This commit is contained in:
parent
fdbc52b83b
commit
3b33b2651b
1 changed files with 31 additions and 0 deletions
|
@ -29,6 +29,16 @@ class LockViewController: NSViewController {
|
|||
self.itemIdentifiers = itemIdentifiers
|
||||
self.locking = locking
|
||||
super.init(nibName: nil, bundle: nil)
|
||||
|
||||
guard let firstItem = itemIdentifiers.first else {
|
||||
Logger.shareViewController.error("called without items")
|
||||
closeAction(self)
|
||||
return
|
||||
}
|
||||
|
||||
Task {
|
||||
await processItemIdentifier(firstItem)
|
||||
}
|
||||
}
|
||||
|
||||
required init?(coder: NSCoder) {
|
||||
|
@ -44,6 +54,27 @@ class LockViewController: NSViewController {
|
|||
descriptionLabel.stringValue = "Error: \(error)"
|
||||
}
|
||||
|
||||
private func processItemIdentifier(_ itemIdentifier: NSFileProviderItemIdentifier) async {
|
||||
guard let manager = NSFileProviderManager(for: actionViewController.domain) else {
|
||||
fatalError("NSFileProviderManager isn't expected to fail")
|
||||
}
|
||||
|
||||
do {
|
||||
let itemUrl = try await manager.getUserVisibleURL(for: itemIdentifier)
|
||||
guard itemUrl.startAccessingSecurityScopedResource() else {
|
||||
Logger.lockViewController.error("Could not access scoped resource for item url!")
|
||||
return
|
||||
}
|
||||
await updateFileDetailsDisplay(itemUrl: itemUrl)
|
||||
itemUrl.stopAccessingSecurityScopedResource()
|
||||
} catch let error {
|
||||
let errorString = "Error processing item: \(error)"
|
||||
Logger.lockViewController.error("\(errorString, privacy: .public)")
|
||||
fileNameLabel.stringValue = "Could not lock unknown item…"
|
||||
descriptionLabel.stringValue = errorString
|
||||
}
|
||||
}
|
||||
|
||||
private func updateFileDetailsDisplay(itemUrl: URL) async {
|
||||
let lockAction = locking ? "Locking" : "Unlocking"
|
||||
fileNameLabel.stringValue = "\(lockAction) file \(itemUrl.lastPathComponent)…"
|
||||
|
|
Loading…
Reference in a new issue