Skip to content

Conversation

@claucambra
Copy link
Contributor

@claucambra claucambra commented Jan 22, 2025

This PR makes it possible to build NextcloudKit with Swift 6.

Some types have been changed from classes into structs. I believe the API impacts of this should not be very big, though client code will probably need to change some lets into vars.

I have refactored the code of some of the filename-related classes to make them sendable compliant. API changes are not huge here either

The biggest change is the removal of the shared NextcloudKit singleton which is just not compatible with the Swift 6 safety model

@claucambra claucambra self-assigned this Jan 22, 2025
@claucambra claucambra force-pushed the feature/sendable-struct-types branch from b93b919 to cedcb5a Compare January 22, 2025 07:35
@i2h3
Copy link
Collaborator

i2h3 commented Jan 22, 2025

The biggest change is the removal of the shared NextcloudKit singleton which is just not compatible with the Swift 6 safety model

Nice, that was one of the reasons why I decided to not use NextcloudKit in the new iOS app UI tests I am currently working on (test isolation is easier without global state).

@marinofaggiana
Copy link
Member

This PR makes it possible to build NextcloudKit with Swift 6.

Some types have been changed from classes into structs. I believe the API impacts of this should not be very big, though client code will probably need to change some lets into vars.

I have refactored the code of some of the filename-related classes to make them sendable compliant. API changes are not huge here either

The biggest change is the removal of the shared NextcloudKit singleton which is just not compatible with the Swift 6 safety model

Great !

Copy link
Collaborator

@i2h3 i2h3 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I reviewed to read all the changes and learn what is going on but I am not as experienced as my colleagues with the package yet. @marinofaggiana and @mpivchev should also review, I guess.


class NKDataFileXML: NSObject {
let nkCommonInstance: NKCommon
var nkCommonInstance: NKCommon
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why change to vars here?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@claucambra could you please elaborate on this :)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry for missing this!

This is a var because NKCommon is now a struct (to make it more easily Sendable) and we use functions that mutate the struct instance (mainly getInternalType, which modifies the cache)

Copy link
Collaborator

@mpivchev mpivchev left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good :)

@marinofaggiana
Copy link
Member

I must try it ... please do not merge

@claucambra
Copy link
Contributor Author

I must try it ... please do not merge

I won't, no rush :)

@marinofaggiana
Copy link
Member

@claucambra can you rebase it ?

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>

f

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
This also modifies the behaviour of its methods to be sendable compliant
by using locking instead of a dispatch queue

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>

f autorenamer

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>

f autorenamer

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>

f autorenamer 3

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>

f filenamevalidator

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>

f shared nckit

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>

f nkfileproperty

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
This required modifying the caches into standard maps. Unfortunately
NSCache is not sendable compliant. I have made the changes take effect
only when building with Swift 6

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
This is seemingly expected by the autotests

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
@claucambra claucambra force-pushed the feature/sendable-struct-types branch from afa8745 to 0d3f5bb Compare January 30, 2025 04:00
@claucambra
Copy link
Contributor Author

@claucambra can you rebase it ?

Yes, done now

@marinofaggiana
Copy link
Member

@mpivchev Build with iOS/develop but I have an error in FileNameValidator, can you check ?

@marinofaggiana
Copy link
Member

We can merge it in develop please @claucambra @i2h3 @mpivchev

Work in the respective clients to adapt the requested changes, in case you need to create fixes to the current version that uses the previous library please use the 5.0.4 (which is the last one before this Swift 6 )

@marinofaggiana marinofaggiana merged commit 9924a98 into develop Jan 31, 2025
4 checks passed
marinofaggiana added a commit that referenced this pull request Mar 18, 2025
* nextcloud/ios#2390

Signed-off-by: Marino Faggiana <8616947+marinofaggiana@users.noreply.github.com>

* add async/await searchMedia

Signed-off-by: Marino Faggiana <8616947+marinofaggiana@users.noreply.github.com>

* Livephoto detect (#51)

* Update NKModel.swift

* cleaning

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* Fix build on macOS broken by freeDisk change (#53)

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>

* livePhotoFile -> fileId

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* rollback

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* rollback

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* Fix error description chunk

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* chunk error fix

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* errorDescription

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* added description

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* Change to markdown

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* Added e2ee options versionApi

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* change variable name

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* endpoint update

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* Fix chunk S3 (#56)

* cod

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* fix

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

---------

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* public func

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* lint

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* remove description

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* fix

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* fix

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* fix log

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* Resolution - GPS (#59)

* fix resolution-gps

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

---------

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* set h, w to Double

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* coding (#61)

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* normalized taskHandler
            taskHandler(task)
        }.

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* add filename in trash (#63)

* add filename

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* disable Build and test

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

---------

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* Nextcloud Assistant (#66)

* getTextProcessingTaskTypes

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* getTextProcessingTaskTypes

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* NKTextProcessingTaskTypes

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* coding

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* coding

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* coding

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* coding

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* fix

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* Add init

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* Change model

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

---------

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>
Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>
Co-authored-by: Milen Pivchev <milen.pivchev@gmail.com>

* Add support for visionOS, fix tvOS and watchOS support (#67)

* Add CoreServices import for visionOS

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>

* Fix screen scaling calculation when UIScreen is not available (for visionOS)

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>

* Fix availability of UIImage.resizeImage on non iOS platforms

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>

* Add visionOS target support to NextcloudKit

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>

* Bump watchOS version up, per dependency requirements

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>

* Remove reachability observation on watchOS, as this is unsupported in Alamofire

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>

* Remove free disk calculation on watchOS which cannot be done

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>

* Bump up tvOS version per dependencies

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>

* Also restrict free space calculation on tvOS, as unavailable

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>

---------

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>

* Task description (#70)

* coding

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* task.taskDescription

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* DownloadingFinish

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* fix

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* improvements

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* fix

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

---------

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* change TypeIconFile (#71)

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* Core Preview Improvements and use only fileId

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* fix

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* improvements

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* Improvements

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* added compressionQuality

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* Improvements (#76)



Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* improved code

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* fix paramenters default

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* fix paramenters default

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* improvements

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* cod

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* improvements

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* downloadPreview

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* added downloadPreview url

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* httpCookieStorage (#80)


Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* new getUserProfile()

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* change paramenter name

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* Account (#82)

* cod

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* cod

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* cod

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

---------

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* cod

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* Revert "cod"

This reverts commit 83b75a1.

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* Filename validator (#83)

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* cleanup

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* Make singleton

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

---------

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* fix session delegate

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* fix

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* Filename validator (#92)

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* cleanup

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* Make singleton

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

---------

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>
Co-authored-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* NextcloudKit Version 5 - Multisession  (#94)


---------

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>
Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>
Co-authored-by: Milen Pivchev <milen.pivchev@gmail.com>

* NextcloudKit V 5

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* fix

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* requestCachePolicy

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* cache

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* cache

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* cache

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* Add optional spaces and periods - WCF

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* Response (#97)

* API

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* assistant

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* comments

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* dashboard

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* e2ee

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* groupfolders

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* hovercard

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* login

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* nctext

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* pn

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* richdocuments

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* search

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* share

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* userstatus

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* webdav

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* upload

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* API

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* download

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* upload

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* NextcloudKitSessionDelegate

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* normalized

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

---------

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* ThreadSafeArray

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* logger delegate

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* fix message 503

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* public

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* fix error

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* Add reuse compliance (#96)

* Auto rename (#99)

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* License

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* Licenses

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* Swiftlint fixes

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* Fix lint issue

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* Fix ordering

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* Refactor

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* License

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* Licenses

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* Swiftlint fixes

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* Fix lint issue

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* Fix ordering

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* Refactor

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

---------

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>
Co-authored-by: Marino Faggiana <marino@marinofaggiana.com>

* Keep original extension

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* Refactor

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* License (#102)

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* ( multipathServiceType )

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* Add more extensive test for AutoRenamer (#101)

* Add more extensive test

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* Force check

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* Revert "Force check"

This reverts commit b7fadf6.

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

---------

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>
Co-authored-by: Marino Faggiana <marino@marinofaggiana.com>

* Split NKModel.swift into designated source code files for every contained type.

Signed-off-by: Iva Horn <iva.horn@icloud.com>

* Update README.md (#106)

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* Prettier Landing Page (#108)

- Replaced logo with an self-created image based on the Apple symbol design for frameworks.
- Removed the "V 2" in the top level heading because it contradicts the current major version 5.
- Corrected alt text of image which appears to be copied and pasted from Nextcloud iOS app README.
- Improved orthography on testing headings.
- Added syntax definitions to some code fences.
- Minor formatting improvements.

* Reenabled build on macOS. (#109)

Certain APIs used were not available on macOS in general or the currently supported version per package manifest. I added necessary code switches to make the code at least build again.

Co-authored-by: Marino Faggiana <marino@marinofaggiana.com>

* Track ocId in NKTrash items (#110)

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>

* Dav pagination (#111)

* add paginate

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* StandardHeaders

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* code

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* fix

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

---------

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* Terms of Service (#112)

* tos

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* getTermsOfService

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* getTermsOfService

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* cod

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* code

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* cod

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* signTermsOfService

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* cod

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* cod

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* cod

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* cleaning

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

---------

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* Added capabilities to manage share download limits. (#107)

- Requesting share download limit capability of files_downloadlimit app.
- Augmented WebDAV metadata requests and responses with optional share download limits.
- Extended NextcloudKit with methods to manage share download limits via OCS.

Signed-off-by: Iva Horn <iva.horn@icloud.com>

* Recommended files (#115)

* cod

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* cod

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* cod

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

---------

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* improvements

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* Allow setting custom destinations in chunked upload (#116)

* Allow setting a different destination file name from local file name in chunked upload

Using macOS File Provider APIs we rely on the system to provide us with
a URL pointing the an item's local modified contents. This URL last path
component is a UUID and does not represent the expected file name of the
item.

The current API of uploadChunk presents a problem because it assumes the
local content file's filename is the same as what will eventually be
uploaded to the server. This commit addresses the issue by allowing
users of this function to provide a destination file name which will
replace the provided local filename, if used.

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>

* Make file chunks output directory customisable

Currently the chunking procedure produces file chunks within the
directory of the input file. However, this fails in cases where the
directory is read-only.

This can be fixed by allowing the chunked files output directory to be
changed

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>

---------

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>

* added httpMaximumConnectionsPerHost

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* httpMaximumConnectionsPerHost

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* appendSession

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* cod

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* Added feature to get download limits explicitly via OCS API.

Signed-off-by: Iva Horn <iva.horn@icloud.com>

* Update FileNameValidator.swift

* Make NextcloudKit Swift 6 compatible (#119)

* Define NKDownloadLimit as a sendable struct

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>

* Define NKFile as a sendable struct

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>

* Define NKSession as a sendable struct

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>

f

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>

* Define UTTypeConformsToServer as a sendable struct

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>

* Define NKError as a sendable, equatable struct

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>

* Convert ThreadSafeArray into a sendable struct

This also modifies the behaviour of its methods to be sendable compliant
by using locking instead of a dispatch queue

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>

* Make FileAutoRenamer Sendable compliant

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>

f autorenamer

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>

f autorenamer

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>

f autorenamer 3

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>

* Make FileNameValidator Sendable compliant

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>

f filenamevalidator

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>

* Fix copyright header in NSLock extension

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>

* Use self createFolder rather than going for shared instance

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>

* Make NextcloudKitDelegate protocol sendable

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>

* Make NKBackground a final class

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>

* Make NextcloudKitSessionDelegate conform to sendable

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>

* Use the appropriate nkCommonInstance in NKSession initialiser

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>

* Make nkCommonInstance mutable in NextcloudKit

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>

* Only provide shared NextcloudKit instance on swift <6

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>

f shared nckit

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>

* When using swift 6, use a task to retrieve screen scale on iOS

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>

* Make NKFileProperty a sendable struct

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>

f nkfileproperty

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>

* Convert NKCommon into a sendable struct

This required modifying the caches into standard maps. Unfortunately
NSCache is not sendable compliant. I have made the changes take effect
only when building with Swift 6

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>

* Fix whitespace handling in FileAutoRenamer

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>

* Remove leading dot for hidden file filenames in autorenamer

This is seemingly expected by the autotests

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>

---------

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
Co-authored-by: Milen Pivchev <milen.pivchev@gmail.com>

* Add static/refactor

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* NextcloudKitDelegate

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* change Name to NKMonitor

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* Added NKInterceptor

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* Interceptor

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* Interceptor

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* interceptor

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* cleaning

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* Interceptor

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* INterceptor

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* sendable

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* test

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* cleaning

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* checkUnauthorized

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* debug

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* X-NC-CheckUnauthorized

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* test

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* cod

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* cod

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* cod

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* common (#121)

* fix

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* cod

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

---------

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* cleaning

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* cleaning

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* added checkUnauthorized options

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* cod

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* fix

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* cleaning

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* cod

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* setupLog

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* dependencies version updated

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* improved code

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* improved

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* cleaning

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* debugPrint

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* debugprint

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* cod

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* log

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* cleaning

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* LOG (#123)

* cod

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* cod

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

---------

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* added request delagate

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* cleaning

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* protocol NextcloudKitDelegate optional

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* added getRequestBodyFileExists

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* public

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* fix

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* init

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* Interceptor & Monitor Improved   (#126)

* cod

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* cod

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* code

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* fix

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* improvements

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* cod

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

---------

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>
Co-authored-by: Marino Faggiana <marino@marinofaggiana.com>

* Improved code

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* Improvements

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* Upload fix multisession (#129)

* fix

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* fix

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

---------

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>
Co-authored-by: Marino Faggiana <marino@marinofaggiana.com>

* Fix: Login poll without cached responses.

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* Assistant V2

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

Fix compile

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

Refactor

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

Refactor

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

Refactor

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

Finish

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

Compliance

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

PR fixes

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

Assistant API v2 (#124)

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* Fix compile

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* Refactor

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* Refactor

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* Refactor

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* Finish

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* Compliance

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* PR fixes

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* Upload fix multisession (#129)

* fix

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* fix

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

---------

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>
Co-authored-by: Marino Faggiana <marino@marinofaggiana.com>

* Fix: Login poll without cached responses.

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* Linter

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

---------

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>
Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>
Co-authored-by: Marino Faggiana <marino.faggiana@nextcloud.com>
Co-authored-by: Marino Faggiana <marino@marinofaggiana.com>

---------

Signed-off-by: Marino Faggiana <8616947+marinofaggiana@users.noreply.github.com>
Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>
Signed-off-by: Iva Horn <iva.horn@icloud.com>
Co-authored-by: Marino Faggiana <8616947+marinofaggiana@users.noreply.github.com>
Co-authored-by: Marino Faggiana <marino@marinofaggiana.com>
Co-authored-by: Claudio Cambra <claudio.cambra@nextcloud.com>
Co-authored-by: Milen Pivchev <milen.pivchev@gmail.com>
Co-authored-by: Andy Scherzinger <info@andy-scherzinger.de>
Co-authored-by: Iva Horn <iva.horn@icloud.com>
marinofaggiana added a commit that referenced this pull request Apr 24, 2025
* Version 6.0.4 (#131)

* nextcloud/ios#2390

Signed-off-by: Marino Faggiana <8616947+marinofaggiana@users.noreply.github.com>

* add async/await searchMedia

Signed-off-by: Marino Faggiana <8616947+marinofaggiana@users.noreply.github.com>

* Livephoto detect (#51)

* Update NKModel.swift

* cleaning

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* Fix build on macOS broken by freeDisk change (#53)

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>

* livePhotoFile -> fileId

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* rollback

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* rollback

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* Fix error description chunk

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* chunk error fix

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* errorDescription

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* added description

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* Change to markdown

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* Added e2ee options versionApi

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* change variable name

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* endpoint update

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* Fix chunk S3 (#56)

* cod

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* fix

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

---------

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* public func

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* lint

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* remove description

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* fix

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* fix

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* fix log

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* Resolution - GPS (#59)

* fix resolution-gps

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

---------

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* set h, w to Double

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* coding (#61)

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* normalized taskHandler
            taskHandler(task)
        }.

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* add filename in trash (#63)

* add filename

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* disable Build and test

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

---------

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* Nextcloud Assistant (#66)

* getTextProcessingTaskTypes

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* getTextProcessingTaskTypes

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* NKTextProcessingTaskTypes

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* coding

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* coding

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* coding

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* coding

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* fix

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* Add init

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* Change model

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

---------

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>
Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>
Co-authored-by: Milen Pivchev <milen.pivchev@gmail.com>

* Add support for visionOS, fix tvOS and watchOS support (#67)

* Add CoreServices import for visionOS

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>

* Fix screen scaling calculation when UIScreen is not available (for visionOS)

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>

* Fix availability of UIImage.resizeImage on non iOS platforms

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>

* Add visionOS target support to NextcloudKit

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>

* Bump watchOS version up, per dependency requirements

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>

* Remove reachability observation on watchOS, as this is unsupported in Alamofire

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>

* Remove free disk calculation on watchOS which cannot be done

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>

* Bump up tvOS version per dependencies

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>

* Also restrict free space calculation on tvOS, as unavailable

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>

---------

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>

* Task description (#70)

* coding

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* task.taskDescription

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* DownloadingFinish

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* fix

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* improvements

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* fix

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

---------

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* change TypeIconFile (#71)

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* Core Preview Improvements and use only fileId

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* fix

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* improvements

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* Improvements

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* added compressionQuality

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* Improvements (#76)



Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* improved code

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* fix paramenters default

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* fix paramenters default

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* improvements

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* cod

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* improvements

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* downloadPreview

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* added downloadPreview url

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* httpCookieStorage (#80)


Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* new getUserProfile()

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* change paramenter name

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* Account (#82)

* cod

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* cod

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* cod

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

---------

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* cod

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* Revert "cod"

This reverts commit 83b75a1.

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* Filename validator (#83)

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* cleanup

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* Make singleton

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

---------

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* fix session delegate

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* fix

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* Filename validator (#92)

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* cleanup

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* Make singleton

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

---------

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>
Co-authored-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* NextcloudKit Version 5 - Multisession  (#94)


---------

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>
Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>
Co-authored-by: Milen Pivchev <milen.pivchev@gmail.com>

* NextcloudKit V 5

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* fix

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* requestCachePolicy

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* cache

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* cache

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* cache

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* Add optional spaces and periods - WCF

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* Response (#97)

* API

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* assistant

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* comments

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* dashboard

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* e2ee

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* groupfolders

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* hovercard

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* login

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* nctext

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* pn

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* richdocuments

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* search

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* share

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* userstatus

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* webdav

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* upload

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* API

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* download

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* upload

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* NextcloudKitSessionDelegate

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* normalized

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

---------

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* ThreadSafeArray

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* logger delegate

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* fix message 503

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* public

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* fix error

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* Add reuse compliance (#96)

* Auto rename (#99)

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* License

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* Licenses

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* Swiftlint fixes

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* Fix lint issue

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* Fix ordering

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* Refactor

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* License

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* Licenses

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* Swiftlint fixes

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* Fix lint issue

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* Fix ordering

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* Refactor

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

---------

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>
Co-authored-by: Marino Faggiana <marino@marinofaggiana.com>

* Keep original extension

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* Refactor

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* License (#102)

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* ( multipathServiceType )

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* Add more extensive test for AutoRenamer (#101)

* Add more extensive test

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* Force check

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* Revert "Force check"

This reverts commit b7fadf6.

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

---------

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>
Co-authored-by: Marino Faggiana <marino@marinofaggiana.com>

* Split NKModel.swift into designated source code files for every contained type.

Signed-off-by: Iva Horn <iva.horn@icloud.com>

* Update README.md (#106)

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* Prettier Landing Page (#108)

- Replaced logo with an self-created image based on the Apple symbol design for frameworks.
- Removed the "V 2" in the top level heading because it contradicts the current major version 5.
- Corrected alt text of image which appears to be copied and pasted from Nextcloud iOS app README.
- Improved orthography on testing headings.
- Added syntax definitions to some code fences.
- Minor formatting improvements.

* Reenabled build on macOS. (#109)

Certain APIs used were not available on macOS in general or the currently supported version per package manifest. I added necessary code switches to make the code at least build again.

Co-authored-by: Marino Faggiana <marino@marinofaggiana.com>

* Track ocId in NKTrash items (#110)

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>

* Dav pagination (#111)

* add paginate

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* StandardHeaders

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* code

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* fix

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

---------

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* Terms of Service (#112)

* tos

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* getTermsOfService

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* getTermsOfService

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* cod

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* code

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* cod

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* signTermsOfService

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* cod

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* cod

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* cod

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* cleaning

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

---------

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* Added capabilities to manage share download limits. (#107)

- Requesting share download limit capability of files_downloadlimit app.
- Augmented WebDAV metadata requests and responses with optional share download limits.
- Extended NextcloudKit with methods to manage share download limits via OCS.

Signed-off-by: Iva Horn <iva.horn@icloud.com>

* Recommended files (#115)

* cod

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* cod

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* cod

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

---------

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* improvements

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* Allow setting custom destinations in chunked upload (#116)

* Allow setting a different destination file name from local file name in chunked upload

Using macOS File Provider APIs we rely on the system to provide us with
a URL pointing the an item's local modified contents. This URL last path
component is a UUID and does not represent the expected file name of the
item.

The current API of uploadChunk presents a problem because it assumes the
local content file's filename is the same as what will eventually be
uploaded to the server. This commit addresses the issue by allowing
users of this function to provide a destination file name which will
replace the provided local filename, if used.

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>

* Make file chunks output directory customisable

Currently the chunking procedure produces file chunks within the
directory of the input file. However, this fails in cases where the
directory is read-only.

This can be fixed by allowing the chunked files output directory to be
changed

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>

---------

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>

* added httpMaximumConnectionsPerHost

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* httpMaximumConnectionsPerHost

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* appendSession

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* cod

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* Added feature to get download limits explicitly via OCS API.

Signed-off-by: Iva Horn <iva.horn@icloud.com>

* Update FileNameValidator.swift

* Make NextcloudKit Swift 6 compatible (#119)

* Define NKDownloadLimit as a sendable struct

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>

* Define NKFile as a sendable struct

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>

* Define NKSession as a sendable struct

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>

f

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>

* Define UTTypeConformsToServer as a sendable struct

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>

* Define NKError as a sendable, equatable struct

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>

* Convert ThreadSafeArray into a sendable struct

This also modifies the behaviour of its methods to be sendable compliant
by using locking instead of a dispatch queue

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>

* Make FileAutoRenamer Sendable compliant

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>

f autorenamer

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>

f autorenamer

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>

f autorenamer 3

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>

* Make FileNameValidator Sendable compliant

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>

f filenamevalidator

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>

* Fix copyright header in NSLock extension

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>

* Use self createFolder rather than going for shared instance

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>

* Make NextcloudKitDelegate protocol sendable

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>

* Make NKBackground a final class

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>

* Make NextcloudKitSessionDelegate conform to sendable

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>

* Use the appropriate nkCommonInstance in NKSession initialiser

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>

* Make nkCommonInstance mutable in NextcloudKit

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>

* Only provide shared NextcloudKit instance on swift <6

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>

f shared nckit

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>

* When using swift 6, use a task to retrieve screen scale on iOS

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>

* Make NKFileProperty a sendable struct

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>

f nkfileproperty

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>

* Convert NKCommon into a sendable struct

This required modifying the caches into standard maps. Unfortunately
NSCache is not sendable compliant. I have made the changes take effect
only when building with Swift 6

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>

* Fix whitespace handling in FileAutoRenamer

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>

* Remove leading dot for hidden file filenames in autorenamer

This is seemingly expected by the autotests

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>

---------

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
Co-authored-by: Milen Pivchev <milen.pivchev@gmail.com>

* Add static/refactor

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* NextcloudKitDelegate

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* change Name to NKMonitor

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* Added NKInterceptor

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* Interceptor

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* Interceptor

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* interceptor

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* cleaning

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* Interceptor

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* INterceptor

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* sendable

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* test

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* cleaning

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* checkUnauthorized

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* debug

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* X-NC-CheckUnauthorized

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* test

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* cod

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* cod

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* cod

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* common (#121)

* fix

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* cod

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

---------

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* cleaning

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* cleaning

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* added checkUnauthorized options

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* cod

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* fix

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* cleaning

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* cod

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* setupLog

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* dependencies version updated

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* improved code

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* improved

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* cleaning

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* debugPrint

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* debugprint

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* cod

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* log

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* cleaning

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* LOG (#123)

* cod

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* cod

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

---------

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* added request delagate

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* cleaning

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* protocol NextcloudKitDelegate optional

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* added getRequestBodyFileExists

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* public

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* fix

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* init

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* Interceptor & Monitor Improved   (#126)

* cod

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* cod

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* code

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* fix

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* improvements

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* cod

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

---------

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>
Co-authored-by: Marino Faggiana <marino@marinofaggiana.com>

* Improved code

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* Improvements

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* Upload fix multisession (#129)

* fix

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* fix

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

---------

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>
Co-authored-by: Marino Faggiana <marino@marinofaggiana.com>

* Fix: Login poll without cached responses.

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* Assistant V2

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

Fix compile

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

Refactor

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

Refactor

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

Refactor

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

Finish

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

Compliance

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

PR fixes

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

Assistant API v2 (#124)

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* Fix compile

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* Refactor

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* Refactor

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* WIP

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* Refactor

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* Finish

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* Compliance

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* PR fixes

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* Upload fix multisession (#129)

* fix

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* fix

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

---------

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>
Co-authored-by: Marino Faggiana <marino@marinofaggiana.com>

* Fix: Login poll without cached responses.

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

* Linter

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

---------

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>
Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>
Co-authored-by: Marino Faggiana <marino.faggiana@nextcloud.com>
Co-authored-by: Marino Faggiana <marino@marinofaggiana.com>

---------

Signed-off-by: Marino Faggiana <8616947+marinofaggiana@users.noreply.github.com>
Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>
Signed-off-by: Iva Horn <iva.horn@icloud.com>
Co-authored-by: Marino Faggiana <8616947+marinofaggiana@users.noreply.github.com>
Co-authored-by: Marino Faggiana <marino@marinofaggiana.com>
Co-authored-by: Claudio Cambra <claudio.cambra@nextcloud.com>
Co-authored-by: Milen Pivchev <milen.pivchev@gmail.com>
Co-authored-by: Andy Scherzinger <info@andy-scherzinger.de>
Co-authored-by: Iva Horn <iva.horn@icloud.com>

* cod

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

* remove unused parameter

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>

---------

Signed-off-by: Marino Faggiana <8616947+marinofaggiana@users.noreply.github.com>
Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>
Signed-off-by: Iva Horn <iva.horn@icloud.com>
Co-authored-by: Marino Faggiana <8616947+marinofaggiana@users.noreply.github.com>
Co-authored-by: Marino Faggiana <marino@marinofaggiana.com>
Co-authored-by: Claudio Cambra <claudio.cambra@nextcloud.com>
Co-authored-by: Milen Pivchev <milen.pivchev@gmail.com>
Co-authored-by: Andy Scherzinger <info@andy-scherzinger.de>
Co-authored-by: Iva Horn <iva.horn@icloud.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants