Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
645 commits
Select commit Hold shift + click to select a range
a78b0b3
clean old code
marinofaggiana May 11, 2024
8530de5
clean old code
marinofaggiana May 11, 2024
dff4d0d
clear old code
marinofaggiana May 11, 2024
5246796
cleaning
marinofaggiana May 11, 2024
be7065e
cleaning
marinofaggiana May 11, 2024
b91c9b6
cleaning
marinofaggiana May 11, 2024
09801f7
fix
marinofaggiana May 11, 2024
404b614
some improvements
marinofaggiana May 12, 2024
96894b0
use light weight
marinofaggiana May 12, 2024
552ce5a
improved code
marinofaggiana May 12, 2024
a4a64ae
code improvements
marinofaggiana May 12, 2024
eb4180f
improvements
marinofaggiana May 12, 2024
65c516d
image
marinofaggiana May 12, 2024
9d1e43b
code improved
marinofaggiana May 12, 2024
9231735
improved
marinofaggiana May 12, 2024
a21be21
images
marinofaggiana May 12, 2024
524667f
images
marinofaggiana May 12, 2024
fc23fea
Fix(l10n): Update translations from Transifex
nextcloud-bot May 13, 2024
d99fcfc
Build new
marinofaggiana May 13, 2024
383a710
Merge branch 'develop' of https://github.com/nextcloud/ios into develop
marinofaggiana May 13, 2024
9e77bfa
New icons (#2921)
mpivchev May 14, 2024
bd458aa
Varie (#2922)
marinofaggiana May 15, 2024
2effb73
Section header (#2923)
marinofaggiana May 15, 2024
0898988
cod
marinofaggiana May 15, 2024
5216dd0
cod
marinofaggiana May 15, 2024
1d08ab6
fix trash images
marinofaggiana May 15, 2024
e0def6c
Fix(l10n): Update translations from Transifex
nextcloud-bot May 16, 2024
384fb19
fix
marinofaggiana May 16, 2024
f35bc93
fix widget
marinofaggiana May 16, 2024
68291b0
fix widget
marinofaggiana May 16, 2024
7e051f6
fix fileProviderStorageExists
marinofaggiana May 16, 2024
843fc10
build 15
marinofaggiana May 16, 2024
b2a3860
Varie (#2925)
marinofaggiana May 16, 2024
a19109c
small fix
marinofaggiana May 17, 2024
3a98b64
gui widget
marinofaggiana May 17, 2024
6ffbd55
tabbar images
marinofaggiana May 17, 2024
95f2df2
remove old code
marinofaggiana May 18, 2024
91236d2
remove old images
marinofaggiana May 18, 2024
f150022
cleaning
marinofaggiana May 18, 2024
7d2d4ca
clear old code
marinofaggiana May 18, 2024
a65efe2
build 16
marinofaggiana May 18, 2024
74a987d
cleaning
marinofaggiana May 18, 2024
1b0fd66
cleaning
marinofaggiana May 18, 2024
c2f9e0f
cleaning
marinofaggiana May 18, 2024
d8bde93
cleaning
marinofaggiana May 18, 2024
66a16ee
cleaning
marinofaggiana May 18, 2024
5773509
cleaning
marinofaggiana May 18, 2024
8b30f72
fix color
marinofaggiana May 19, 2024
b893a32
coding
marinofaggiana May 19, 2024
a87c1b5
coding color
marinofaggiana May 19, 2024
c0e9101
coding color
marinofaggiana May 19, 2024
647f967
coding color
marinofaggiana May 19, 2024
53c6e00
coding color
marinofaggiana May 19, 2024
7555f14
swiftUI Images std
marinofaggiana May 20, 2024
e458015
improved images
marinofaggiana May 20, 2024
2c13172
images
marinofaggiana May 20, 2024
06065a5
images
marinofaggiana May 20, 2024
6ee9c30
image
marinofaggiana May 20, 2024
ec0b41b
image
marinofaggiana May 20, 2024
2482a14
https://github.com/nextcloud/ios/issues/2291
marinofaggiana May 20, 2024
9563c8f
cleaning
marinofaggiana May 20, 2024
624b361
Fix(l10n): Update translations from Transifex
nextcloud-bot May 21, 2024
d31b039
fic color
marinofaggiana May 21, 2024
edf05cc
improvements
marinofaggiana May 21, 2024
e398bad
images
marinofaggiana May 21, 2024
a7a092d
images
marinofaggiana May 21, 2024
32e2d18
images
marinofaggiana May 21, 2024
dd1491a
Build 17
marinofaggiana May 21, 2024
ef1137a
fix Login disable_intro
marinofaggiana May 21, 2024
88b1f67
Build 18
marinofaggiana May 21, 2024
6004a9c
Fix(l10n): Update translations from Transifex
nextcloud-bot May 22, 2024
cc46e83
fix login
marinofaggiana May 22, 2024
51d060f
windowForRootViewController
marinofaggiana May 22, 2024
a28556f
Build 19
marinofaggiana May 22, 2024
540a67a
fix PRJ
marinofaggiana May 22, 2024
0b8fe16
Service not in backgrounf
marinofaggiana May 22, 2024
7f6cf8e
Fix(l10n): Update translations from Transifex
nextcloud-bot May 23, 2024
7762461
fix localized
marinofaggiana May 23, 2024
e328ca8
new check background task
marinofaggiana May 23, 2024
473bcad
fix
marinofaggiana May 23, 2024
726072d
new build
marinofaggiana May 23, 2024
c2d7c8a
Fix(l10n): Update translations from Transifex
nextcloud-bot May 24, 2024
c65ec86
NextcloudKit V 3.0.1
marinofaggiana May 24, 2024
6c9d8f7
Merge remote-tracking branch 'origin/master' into develop
marinofaggiana May 24, 2024
6ef29ff
fix Error: invalid redeclaration of 'scrollViewWillBeginDragging'
marinofaggiana May 24, 2024
73c9d97
Fix(l10n): Update translations from Transifex
nextcloud-bot May 25, 2024
c154327
NavigationRightItems crash (#2934)
marinofaggiana May 28, 2024
f48e050
Build 1 (small fix)
marinofaggiana May 29, 2024
95c8f81
Build 2
marinofaggiana May 29, 2024
e320138
Merge remote-tracking branch 'origin/master' into develop
marinofaggiana May 30, 2024
4bc08ff
coding
marinofaggiana May 31, 2024
a37b32f
Revamp settings section (#2938)
marinofaggiana Jun 4, 2024
a5dd79b
content mode
marinofaggiana Jun 5, 2024
08c2dd7
fix
marinofaggiana Jun 5, 2024
622e88a
fix upload (replace)
marinofaggiana Jun 5, 2024
b07a962
Fix(l10n): Update translations from Transifex
nextcloud-bot Jun 5, 2024
ec127de
Fix(l10n): Update translations from Transifex
nextcloud-bot Jun 5, 2024
463dfff
localizable
marinofaggiana Jun 5, 2024
98d15d7
cleaning
marinofaggiana Jun 5, 2024
98264e8
Version 5.4.0
marinofaggiana Jun 5, 2024
b90cec2
cleaning
marinofaggiana Jun 5, 2024
f3762b0
Fix(l10n): Update translations from Transifex
nextcloud-bot Jun 6, 2024
b325796
Cleaning old code (#2941)
marinofaggiana Jun 6, 2024
2b2cc81
remove old code (cleaning)
marinofaggiana Jun 6, 2024
42c713e
remove old code
marinofaggiana Jun 6, 2024
9d8b6a4
cleaning code
marinofaggiana Jun 6, 2024
db82c9c
cleaning
marinofaggiana Jun 6, 2024
b6afa60
new build
marinofaggiana Jun 6, 2024
ab74fc7
Fix(l10n): Update translations from Transifex
nextcloud-bot Jun 7, 2024
9ba2062
Fix(l10n): Update translations from Transifex
nextcloud-bot Jun 8, 2024
e626763
Fix(l10n): Update translations from Transifex
nextcloud-bot Jun 9, 2024
0fd93dc
https://github.com/nextcloud/ios/issues/2937
marinofaggiana Jun 10, 2024
e4223e8
Fix(l10n): Update translations from Transifex
nextcloud-bot Jun 11, 2024
55041f6
Fix(l10n): Update translations from Transifex
nextcloud-bot Jun 12, 2024
919b989
Fix(l10n): Update translations from Transifex
nextcloud-bot Jun 13, 2024
391dc2d
Fix(l10n): Update translations from Transifex
nextcloud-bot Jun 15, 2024
5a4e710
Fix(l10n): Update translations from Transifex
nextcloud-bot Jun 21, 2024
d3b57b2
Revamp manageaccount (#2951)
marinofaggiana Jun 21, 2024
13c3059
fix
marinofaggiana Jun 21, 2024
811fd63
build 2
marinofaggiana Jun 21, 2024
cf8e3ef
cleaning
marinofaggiana Jun 21, 2024
8ccbb60
add title
marinofaggiana Jun 21, 2024
ca02662
Improved settings
marinofaggiana Jun 21, 2024
d7cfecf
Fix(l10n): Update translations from Transifex
nextcloud-bot Jun 21, 2024
a8e8950
fix icons scan
marinofaggiana Jun 21, 2024
4a63a99
Fix(l10n): Update translations from Transifex
nextcloud-bot Jun 22, 2024
63aadae
Update Realm + OpenSSL
marinofaggiana Jun 22, 2024
0f2174d
Create document (#2954)
marinofaggiana Jun 22, 2024
c06b0e3
fix proj
marinofaggiana Jun 22, 2024
68f2c7d
cleaning
marinofaggiana Jun 22, 2024
7797d3e
fix directory
marinofaggiana Jun 22, 2024
7139dc7
Revert "cleaning"
marinofaggiana Jun 22, 2024
cc6a56d
improvements
marinofaggiana Jun 22, 2024
11702bd
normalized + fix
marinofaggiana Jun 22, 2024
54ba57d
normalized
marinofaggiana Jun 22, 2024
5c67204
armonized
marinofaggiana Jun 22, 2024
e6c45eb
Fix(l10n): Update translations from Transifex
nextcloud-bot Jun 23, 2024
1d4d982
mask filename
marinofaggiana Jun 23, 2024
dd990c6
build 4
marinofaggiana Jun 23, 2024
58b5430
Fix(l10n): Update translations from Transifex
nextcloud-bot Jun 24, 2024
38c26ef
Enable Login v2 (#2908)
mpivchev Jun 24, 2024
793bcfc
Improved image & code (#2958)
marinofaggiana Jun 24, 2024
af20510
cleaning
marinofaggiana Jun 24, 2024
c2b65f0
Code improvements
marinofaggiana Jun 24, 2024
56f2925
build 5
marinofaggiana Jun 24, 2024
44cdde6
lint
marinofaggiana Jun 24, 2024
1d331c2
Fix(l10n): Update translations from Transifex
nextcloud-bot Jun 25, 2024
755e07d
cleaning
marinofaggiana Jun 25, 2024
02eb6e8
cleaning
marinofaggiana Jun 25, 2024
4f7e168
Fix(l10n): Update translations from Transifex
nextcloud-bot Jun 26, 2024
c825e74
Fix(l10n): Update translations from Transifex
nextcloud-bot Jun 27, 2024
b0c2803
Scan document: added the modify (#2959)
marinofaggiana Jun 27, 2024
28143d8
Filename + move object-c to swift (#2961)
marinofaggiana Jun 27, 2024
2ab2059
Build 6
marinofaggiana Jun 27, 2024
ec001ee
fix
marinofaggiana Jun 27, 2024
562f242
icon changed
marinofaggiana Jun 27, 2024
6849606
Fix(l10n): Update translations from Transifex
nextcloud-bot Jun 28, 2024
aae2a7d
Deep link support for screens navigation (#2963)
marinofaggiana Jun 28, 2024
78da6ed
new build
marinofaggiana Jun 28, 2024
45f800b
Improved strings
marinofaggiana Jun 28, 2024
561691e
improvements
marinofaggiana Jun 28, 2024
28f2407
Fix(l10n): Update translations from Transifex
nextcloud-bot Jun 29, 2024
f6ddebf
Fix(l10n): Update translations from Transifex
nextcloud-bot Jun 30, 2024
366e410
Fix(l10n): Update translations from Transifex
nextcloud-bot Jul 1, 2024
1cbcfb5
build 9
marinofaggiana Jul 1, 2024
64e30af
Merge remote-tracking branch 'origin/master' into develop
marinofaggiana Jul 1, 2024
b39ec1a
Fix(l10n): Update translations from Transifex
nextcloud-bot Jul 2, 2024
fa5abe6
NextcloudKit Swift (#2970)
marinofaggiana Jul 2, 2024
14f3c55
cleaning code
marinofaggiana Jul 2, 2024
887fb31
improvements
marinofaggiana Jul 2, 2024
7886b55
fix
marinofaggiana Jul 2, 2024
d63670e
cleaning
marinofaggiana Jul 2, 2024
553f481
Fix(l10n): Update translations from Transifex
nextcloud-bot Jul 3, 2024
789567d
Improvements varie (#2973)
marinofaggiana Jul 3, 2024
dad0c09
fix
marinofaggiana Jul 3, 2024
84f9efa
https://github.com/nextcloud/ios/issues/2971
marinofaggiana Jul 3, 2024
a1118df
revert
marinofaggiana Jul 3, 2024
039cf67
Fix(l10n): Update translations from Transifex
nextcloud-bot Jul 4, 2024
96de02b
Share screen redesign (#2967)
mpivchev Jul 4, 2024
d82c797
(revert)
marinofaggiana Jul 4, 2024
f1af4a1
lint
marinofaggiana Jul 4, 2024
6aa60c4
fix
marinofaggiana Jul 4, 2024
1b85d5a
fix color
marinofaggiana Jul 4, 2024
9bd73a3
lint
marinofaggiana Jul 4, 2024
8c5b870
lint
marinofaggiana Jul 4, 2024
6f841e9
lint
marinofaggiana Jul 4, 2024
32743b6
cod
marinofaggiana Jul 4, 2024
650189f
Fix(l10n): Update translations from Transifex
nextcloud-bot Jul 5, 2024
6d38161
File is downloaded when opening text editor (#2976)
marinofaggiana Jul 5, 2024
383b05a
build 1
marinofaggiana Jul 5, 2024
267444c
lint
marinofaggiana Jul 5, 2024
082b900
Fix(l10n): Update translations from Transifex
nextcloud-bot Jul 6, 2024
3856b57
improvements
marinofaggiana Jul 6, 2024
1a2d2ea
Merge branch 'develop' of https://github.com/nextcloud/ios into develop
marinofaggiana Jul 6, 2024
a0a8e19
lint
marinofaggiana Jul 6, 2024
7875c83
lint
marinofaggiana Jul 6, 2024
dafb384
lint
marinofaggiana Jul 6, 2024
f3af759
Fix(l10n): Update translations from Transifex
nextcloud-bot Jul 7, 2024
31131b7
fix
marinofaggiana Jul 8, 2024
6c8bcc4
fix
marinofaggiana Jul 8, 2024
d23e4aa
Build 2
marinofaggiana Jul 8, 2024
d1789fe
Fix(l10n): Update translations from Transifex
nextcloud-bot Jul 9, 2024
0e975a9
Fix(l10n): Update translations from Transifex
nextcloud-bot Jul 10, 2024
1c8854a
File provider extension (fix & improvements) (#2978)
marinofaggiana Jul 10, 2024
8577a50
5.5.0 build 3
marinofaggiana Jul 10, 2024
a1a06ea
File provider extension (#2979)
marinofaggiana Jul 11, 2024
8533179
Fix(l10n): Update translations from Transifex
nextcloud-bot Jul 13, 2024
9b9b09a
File provider extension (#2980)
marinofaggiana Jul 13, 2024
a91fbfe
Fix(l10n): Update translations from Transifex
nextcloud-bot Jul 14, 2024
e2d80d5
Photo view (#2981)
marinofaggiana Jul 15, 2024
7c3ab8d
Fix(l10n): Update translations from Transifex
nextcloud-bot Jul 17, 2024
53d8e4c
Improvements varie (#2983)
marinofaggiana Jul 17, 2024
7315867
build 5
marinofaggiana Jul 17, 2024
a477bc3
fix db -> new build
marinofaggiana Jul 18, 2024
213e902
Fix(l10n): Update translations from Transifex
nextcloud-bot Jul 19, 2024
95cd7c7
Cookies (#2985)
marinofaggiana Jul 19, 2024
4080815
Fix(l10n): Update translations from Transifex
nextcloud-bot Jul 20, 2024
3efb493
Nc media layout header (#2986)
marinofaggiana Jul 20, 2024
3b198ea
Lint
marinofaggiana Jul 20, 2024
610c1a0
Account create (#2987)
marinofaggiana Jul 21, 2024
c7e4f79
Fix(l10n): Update translations from Transifex
nextcloud-bot Jul 22, 2024
ec1f537
cod
marinofaggiana Jul 22, 2024
9577885
new build
marinofaggiana Jul 22, 2024
9ecc768
improvements
marinofaggiana Jul 23, 2024
189eb47
Build 8
marinofaggiana Jul 23, 2024
0b94717
Fix(l10n): Update translations from Transifex
nextcloud-bot Jul 24, 2024
86812b6
fix name
marinofaggiana Jul 24, 2024
40abaa3
cod
marinofaggiana Jul 24, 2024
b91dab2
cod
marinofaggiana Jul 24, 2024
0a55d3f
header
marinofaggiana Jul 24, 2024
454525b
footer
marinofaggiana Jul 24, 2024
b84852a
footer
marinofaggiana Jul 24, 2024
70cd82c
build 9
marinofaggiana Jul 24, 2024
f7fe80d
fix autoupload
marinofaggiana Jul 24, 2024
670b737
build 10
marinofaggiana Jul 24, 2024
e0a5d42
Fix crash (#2992)
mpivchev Jul 24, 2024
dedda73
fix
marinofaggiana Jul 24, 2024
3241edb
Fix (#2993)
mpivchev Jul 24, 2024
b401ca6
Build 11
marinofaggiana Jul 25, 2024
3493a50
Fix(l10n): Update translations from Transifex
nextcloud-bot Jul 26, 2024
9084164
Merge remote-tracking branch 'origin/master' into develop
marinofaggiana Jul 26, 2024
60bde88
Revert "Merge remote-tracking branch 'origin/master' into develop"
marinofaggiana Jul 26, 2024
9be001c
Version 5.5.0 (#2994) (#2996)
marinofaggiana Jul 26, 2024
f337c31
Fix(l10n): Update translations from Transifex
nextcloud-bot Jul 27, 2024
74249b1
Fix(l10n): Update translations from Transifex
nextcloud-bot Jul 28, 2024
d026880
capabilities button in settings / certificate settings user (#3003)
marinofaggiana Jul 30, 2024
42bf6af
fix (#3001)
marinofaggiana Jul 30, 2024
dc11f0a
FileProviderExtension (#3004)
marinofaggiana Jul 30, 2024
a156077
new build
marinofaggiana Jul 30, 2024
68fcde0
Merge remote-tracking branch 'origin/master' into develop
marinofaggiana Jul 30, 2024
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
21 changes: 21 additions & 0 deletions File Provider Extension/FileProviderData.swift
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,14 @@ class fileProviderData: NSObject {
case workingSet
}

struct UploadMetadata {
var id: String
var metadata: tableMetadata
var task: URLSessionUploadTask?
}

var uploadMetadata: [UploadMetadata] = []

// MARK: -

func setupAccount(domain: NSFileProviderDomain?, providerExtension: NSFileProviderExtension) -> tableAccount? {
Expand Down Expand Up @@ -140,4 +148,17 @@ class fileProviderData: NSObject {
fileProviderManager.signalEnumerator(for: .workingSet) { _ in }
return item
}

// MARK: -

func appendUploadMetadata(id: String, metadata: tableMetadata, task: URLSessionUploadTask?) {
if let index = uploadMetadata.firstIndex(where: { $0.id == id }) {
uploadMetadata.remove(at: index)
}
uploadMetadata.append(UploadMetadata(id: id, metadata: metadata, task: task))
}

func getUploadMetadata(id: String) -> UploadMetadata? {
return uploadMetadata.filter({ $0.id == id }).first
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -36,37 +36,45 @@ extension FileProviderExtension: NCNetworkingDelegate {
func uploadComplete(fileName: String, serverUrl: String, ocId: String?, etag: String?, date: Date?, size: Int64, task: URLSessionTask, error: NKError) {
guard let url = task.currentRequest?.url,
let metadata = NCManageDatabase.shared.getMetadata(from: url, sessionTaskIdentifier: task.taskIdentifier) else { return }
if error == .success, let ocId {
/// SIGNAL
fileProviderData.shared.signalEnumerator(ocId: metadata.ocIdTemp, type: .delete)
metadata.fileName = fileName
metadata.serverUrl = serverUrl
metadata.uploadDate = (date as? NSDate) ?? NSDate()
metadata.etag = etag ?? ""
metadata.ocId = ocId
metadata.size = size
if let fileId = NCUtility().ocIdToFileId(ocId: ocId) {
metadata.fileId = fileId
}
metadata.session = ""
metadata.sessionError = ""
metadata.status = NCGlobal.shared.metadataStatusNormal

NCManageDatabase.shared.addMetadata(metadata)
NCManageDatabase.shared.addLocalFile(metadata: metadata)
/// NEW File
if ocId != metadata.ocIdTemp {
let atPath = utilityFileSystem.getDirectoryProviderStorageOcId(metadata.ocIdTemp)
let toPath = utilityFileSystem.getDirectoryProviderStorageOcId(ocId)
utilityFileSystem.copyFile(atPath: atPath, toPath: toPath)
DispatchQueue.global(qos: .userInteractive).async {
if error == .success, let ocId {
/// SIGNAL
fileProviderData.shared.signalEnumerator(ocId: metadata.ocIdTemp, type: .delete)
metadata.fileName = fileName
metadata.serverUrl = serverUrl
metadata.uploadDate = (date as? NSDate) ?? NSDate()
metadata.etag = etag ?? ""
metadata.ocId = ocId
metadata.size = size
if let fileId = NCUtility().ocIdToFileId(ocId: ocId) {
metadata.fileId = fileId
}

metadata.sceneIdentifier = nil
metadata.session = ""
metadata.sessionError = ""
metadata.sessionSelector = ""
metadata.sessionDate = nil
metadata.sessionTaskIdentifier = 0
metadata.status = NCGlobal.shared.metadataStatusNormal

NCManageDatabase.shared.addMetadata(metadata)
NCManageDatabase.shared.addLocalFile(metadata: metadata)
/// NEW File
if !metadata.ocIdTemp.isEmpty, ocId != metadata.ocIdTemp {
let atPath = self.utilityFileSystem.getDirectoryProviderStorageOcId(metadata.ocIdTemp)
let toPath = self.utilityFileSystem.getDirectoryProviderStorageOcId(ocId)
self.utilityFileSystem.copyFile(atPath: atPath, toPath: toPath)
NCManageDatabase.shared.deleteMetadata(predicate: NSPredicate(format: "ocId == %@", metadata.ocIdTemp))
}
/// SIGNAL
fileProviderData.shared.signalEnumerator(ocId: metadata.ocId, type: .update)
} else {
NCManageDatabase.shared.deleteMetadata(predicate: NSPredicate(format: "ocId == %@", metadata.ocIdTemp))
/// SIGNAL
fileProviderData.shared.signalEnumerator(ocId: metadata.ocIdTemp, type: .delete)
}
/// SIGNAL
fileProviderData.shared.signalEnumerator(ocId: metadata.ocId, type: .update)
} else {
NCManageDatabase.shared.deleteMetadata(predicate: NSPredicate(format: "ocId == %@", metadata.ocIdTemp))
/// SIGNAL
fileProviderData.shared.signalEnumerator(ocId: metadata.ocIdTemp, type: .delete)
}
}
}
30 changes: 25 additions & 5 deletions File Provider Extension/FileProviderExtension.swift
Original file line number Diff line number Diff line change
Expand Up @@ -166,7 +166,13 @@ class FileProviderExtension: NSFileProviderExtension {
override func startProvidingItem(at url: URL, completionHandler: @escaping ((_ error: Error?) -> Void)) {
let pathComponents = url.pathComponents
let itemIdentifier = NSFileProviderItemIdentifier(pathComponents[pathComponents.count - 2])
guard let metadata = providerUtility.getTableMetadataFromItemIdentifier(itemIdentifier) else {
var metadata: tableMetadata?
if let result = fileProviderData.shared.getUploadMetadata(id: itemIdentifier.rawValue) {
metadata = result.metadata
} else {
metadata = NCManageDatabase.shared.getMetadataFromOcIdAndOcIdTemp(itemIdentifier.rawValue)
}
guard let metadata else {
return completionHandler(NSFileProviderError(.noSuchItem))
}
if metadata.session == NCNetworking.shared.sessionUploadBackgroundExtension {
Expand Down Expand Up @@ -200,6 +206,12 @@ class FileProviderExtension: NSFileProviderExtension {
return completionHandler(NSFileProviderError(.noSuchItem))
}
if error == .success {
metadata.sceneIdentifier = nil
metadata.session = ""
metadata.sessionError = ""
metadata.sessionSelector = ""
metadata.sessionDate = nil
metadata.sessionTaskIdentifier = 0
metadata.status = NCGlobal.shared.metadataStatusNormal
metadata.date = (date as? NSDate) ?? NSDate()
metadata.etag = etag ?? ""
Expand All @@ -226,16 +238,23 @@ class FileProviderExtension: NSFileProviderExtension {
assert(pathComponents.count > 2)
let itemIdentifier = NSFileProviderItemIdentifier(pathComponents[pathComponents.count - 2])
let fileName = pathComponents[pathComponents.count - 1]
guard let metadata = NCManageDatabase.shared.getMetadataFromOcIdAndOcIdTemp(itemIdentifier.rawValue) else { return }
var metadata: tableMetadata?
if let result = fileProviderData.shared.getUploadMetadata(id: itemIdentifier.rawValue) {
metadata = result.metadata
} else {
metadata = NCManageDatabase.shared.getMetadataFromOcIdAndOcIdTemp(itemIdentifier.rawValue)
}
guard let metadata else {
return
}
let serverUrlFileName = metadata.serverUrl + "/" + fileName
let fileNameLocalPath = utilityFileSystem.getDirectoryProviderStorageOcId(metadata.ocId, fileNameView: fileName)
utilityFileSystem.copyFile(atPath: url.path, toPath: fileNameLocalPath)

NCManageDatabase.shared.setMetadataSession(ocId: metadata.ocId,
session: NCNetworking.shared.sessionUploadBackgroundExtension,
sessionError: "",
selector: "",
status: NCGlobal.shared.metadataStatusUploading)
if let task = NKBackground(nkCommonInstance: NextcloudKit.shared.nkCommonInstance).upload(serverUrlFileName: serverUrlFileName, fileNameLocalPath: fileNameLocalPath, dateCreationFile: nil, dateModificationFile: nil, session: NCNetworking.shared.sessionManagerUploadBackgroundExtension) {
if let task = NKBackground(nkCommonInstance: NextcloudKit.shared.nkCommonInstance).upload(serverUrlFileName: serverUrlFileName, fileNameLocalPath: url.path, dateCreationFile: nil, dateModificationFile: nil, session: NCNetworking.shared.sessionManagerUploadBackgroundExtension) {
NCManageDatabase.shared.setMetadataSession(ocId: metadata.ocId,
status: NCGlobal.shared.metadataStatusUploading,
taskIdentifier: task.taskIdentifier)
Expand Down Expand Up @@ -304,6 +323,7 @@ class FileProviderExtension: NSFileProviderExtension {
status: NCGlobal.shared.metadataStatusUploading,
taskIdentifier: task.taskIdentifier)
fileProviderData.shared.fileProviderManager.register(task, forItemWithIdentifier: NSFileProviderItemIdentifier(ocIdTemp)) { _ in }
fileProviderData.shared.appendUploadMetadata(id: ocIdTemp, metadata: metadata, task: task)
}

let item = FileProviderItem(metadata: tableMetadata.init(value: metadata), parentItemIdentifier: parentItemIdentifier)
Expand Down
24 changes: 20 additions & 4 deletions File Provider Extension/FileProviderUtility.swift
Original file line number Diff line number Diff line change
Expand Up @@ -75,12 +75,12 @@ class fileProviderUtility: NSObject {
do {
try fileManager.removeItem(atPath: toPath)
} catch let error {
print("error: \(error)")
print("Error: \(error.localizedDescription)")
}
do {
try fileManager.copyItem(atPath: atPath, toPath: toPath)
} catch let error {
print("error: \(error)")
print("Error: \(error.localizedDescription)")
}
}

Expand All @@ -90,12 +90,28 @@ class fileProviderUtility: NSObject {
do {
try fileManager.removeItem(atPath: toPath)
} catch let error {
print("error: \(error)")
print("Error: \(error.localizedDescription)")
}
do {
try fileManager.moveItem(atPath: atPath, toPath: toPath)
} catch let error {
print("error: \(error)")
print("Error: \(error.localizedDescription)")
}
}

func getFileSize(from url: URL) -> Int64? {
do {
let attributes = try fileManager.attributesOfItem(atPath: url.path)

if let fileSize = attributes[FileAttributeKey.size] as? Int64 {
return fileSize
} else {
print("Failed to retrieve file size.")
return nil
}
} catch {
print("Error: \(error.localizedDescription)")
return nil
}
}
}
8 changes: 4 additions & 4 deletions Nextcloud.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -5414,7 +5414,7 @@
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
COPY_PHASE_STRIP = NO;
CURRENT_PROJECT_VERSION = 11;
CURRENT_PROJECT_VERSION = 2;
DEBUG_INFORMATION_FORMAT = dwarf;
DEVELOPMENT_TEAM = NKUJUXUJ3B;
ENABLE_STRICT_OBJC_MSGSEND = YES;
Expand All @@ -5441,7 +5441,7 @@
"@executable_path/Frameworks",
"@executable_path/../../Frameworks",
);
MARKETING_VERSION = 5.5.0;
MARKETING_VERSION = 5.5.2;
ONLY_ACTIVE_ARCH = YES;
OTHER_CFLAGS = "-v";
OTHER_LDFLAGS = "";
Expand Down Expand Up @@ -5480,7 +5480,7 @@
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
COPY_PHASE_STRIP = NO;
CURRENT_PROJECT_VERSION = 11;
CURRENT_PROJECT_VERSION = 2;
DEVELOPMENT_TEAM = NKUJUXUJ3B;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
Expand All @@ -5504,7 +5504,7 @@
"@executable_path/Frameworks",
"@executable_path/../../Frameworks",
);
MARKETING_VERSION = 5.5.0;
MARKETING_VERSION = 5.5.2;
ONLY_ACTIVE_ARCH = YES;
OTHER_CFLAGS = "-v";
OTHER_LDFLAGS = "";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,9 @@
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "F771E3CF20E2392D00AFB62D"
BuildableName = "File Provider Extension.appex"
BlueprintName = "File Provider Extension"
BlueprintIdentifier = "F77B0DEB1D118A16002130FE"
BuildableName = "Nextcloud.app"
BlueprintName = "Nextcloud"
ReferencedContainer = "container:Nextcloud.xcodeproj">
</BuildableReference>
</BuildActionEntry>
Expand All @@ -29,9 +29,9 @@
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "F77B0DEB1D118A16002130FE"
BuildableName = "Nextcloud.app"
BlueprintName = "Nextcloud"
BlueprintIdentifier = "F771E3CF20E2392D00AFB62D"
BuildableName = "File Provider Extension.appex"
BlueprintName = "File Provider Extension"
ReferencedContainer = "container:Nextcloud.xcodeproj">
</BuildableReference>
</BuildActionEntry>
Expand Down
7 changes: 7 additions & 0 deletions iOSClient/Account Settings/NCAccountSettingsModel.swift
Original file line number Diff line number Diff line change
Expand Up @@ -140,6 +140,13 @@ class NCAccountSettingsModel: ObservableObject, ViewOnAppearHandling {
return (nil, "", "")
}

/// Is the user an Admin
func isAdminGroup() -> Bool {
guard let activeAccount else { return false }
let groups = NCManageDatabase.shared.getAccountGroups(account: activeAccount.account)
return groups.contains(NCGlobal.shared.groupAdmin)
}

/// Function to know the height of "account" data
func getTableViewHeight() -> CGFloat {
guard let activeAccount else { return 0 }
Expand Down
92 changes: 47 additions & 45 deletions iOSClient/Account Settings/NCAccountSettingsView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -181,52 +181,54 @@ struct NCAccountSettingsView: View {
}
///
/// Certificate server
Button(action: {
showServerCertificate.toggle()
}, label: {
HStack {
Image(systemName: "lock")
.resizable()
.scaledToFit()
.font(Font.system(.body).weight(.light))
.frame(width: 20, height: 20)
.foregroundStyle(Color(NCBrandColor.shared.iconImageColor))
Text(NSLocalizedString("_certificate_details_", comment: ""))
.lineLimit(1)
.truncationMode(.middle)
.foregroundStyle(Color(NCBrandColor.shared.textColor))
.padding(EdgeInsets(top: 0, leading: 0, bottom: 0, trailing: 20))
}
.font(.system(size: 14))
})
.sheet(isPresented: $showServerCertificate) {
if let url = URL(string: model.activeAccount?.urlBase), let host = url.host {
certificateDetailsView(host: host, title: NSLocalizedString("_certificate_view_", comment: ""))
}
}
///
/// Certificate push
Button(action: {
showPushCertificate.toggle()
}, label: {
HStack {
Image(systemName: "lock")
.resizable()
.scaledToFit()
.font(Font.system(.body).weight(.light))
.frame(width: 20, height: 20)
.foregroundStyle(Color(NCBrandColor.shared.iconImageColor))
Text(NSLocalizedString("_certificate_pn_details_", comment: ""))
.lineLimit(1)
.truncationMode(.middle)
.foregroundStyle(Color(NCBrandColor.shared.textColor))
.padding(EdgeInsets(top: 0, leading: 0, bottom: 0, trailing: 20))
if model.isAdminGroup() {
Button(action: {
showServerCertificate.toggle()
}, label: {
HStack {
Image(systemName: "lock")
.resizable()
.scaledToFit()
.font(Font.system(.body).weight(.light))
.frame(width: 20, height: 20)
.foregroundStyle(Color(NCBrandColor.shared.iconImageColor))
Text(NSLocalizedString("_certificate_details_", comment: ""))
.lineLimit(1)
.truncationMode(.middle)
.foregroundStyle(Color(NCBrandColor.shared.textColor))
.padding(EdgeInsets(top: 0, leading: 0, bottom: 0, trailing: 20))
}
.font(.system(size: 14))
})
.sheet(isPresented: $showServerCertificate) {
if let url = URL(string: model.activeAccount?.urlBase), let host = url.host {
certificateDetailsView(host: host, title: NSLocalizedString("_certificate_view_", comment: ""))
}
}
.font(.system(size: 14))
})
.sheet(isPresented: $showPushCertificate) {
if let url = URL(string: NCBrandOptions.shared.pushNotificationServerProxy), let host = url.host {
certificateDetailsView(host: host, title: NSLocalizedString("_certificate_pn_view_", comment: ""))
///
/// Certificate push
Button(action: {
showPushCertificate.toggle()
}, label: {
HStack {
Image(systemName: "lock")
.resizable()
.scaledToFit()
.font(Font.system(.body).weight(.light))
.frame(width: 20, height: 20)
.foregroundStyle(Color(NCBrandColor.shared.iconImageColor))
Text(NSLocalizedString("_certificate_pn_details_", comment: ""))
.lineLimit(1)
.truncationMode(.middle)
.foregroundStyle(Color(NCBrandColor.shared.textColor))
.padding(EdgeInsets(top: 0, leading: 0, bottom: 0, trailing: 20))
}
.font(.system(size: 14))
})
.sheet(isPresented: $showPushCertificate) {
if let url = URL(string: NCBrandOptions.shared.pushNotificationServerProxy), let host = url.host {
certificateDetailsView(host: host, title: NSLocalizedString("_certificate_pn_view_", comment: ""))
}
}
}
})
Expand Down
Loading