Skip to content

Commit d2d1825

Browse files
committed
Merge branch 'release/2.6.3'
2 parents eb62ce2 + c24513e commit d2d1825

File tree

96 files changed

+537
-213
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

96 files changed

+537
-213
lines changed

.github/SUPPORT.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,5 +14,5 @@ For _everything else_, please visit our official [Cryptomator Community](https:/
1414
- Discussions about the apps
1515
- [Development discussions](https://community.cryptomator.org/c/development)
1616
- General questions
17-
- Discussions regarding our design decissions
17+
- Discussions regarding our design decisions
1818
- Our roadmap

Cryptomator.xcodeproj/project.pbxproj

+10-10
Original file line numberDiff line numberDiff line change
@@ -290,8 +290,6 @@
290290
4ABCF3522726D24800A7FBB7 /* MoveVaultViewModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4ABCF3512726D24800A7FBB7 /* MoveVaultViewModelTests.swift */; };
291291
4AC005F127C3D80B006FFE87 /* PremiumManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4AC005F027C3D80B006FFE87 /* PremiumManager.swift */; };
292292
4AC005F327C3D932006FFE87 /* PremiumManagerMock.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4AC005F227C3D932006FFE87 /* PremiumManagerMock.swift */; };
293-
4AC1157627F5BD890023F51B /* Promise+AllIgnoringResult.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4AC1157527F5BD890023F51B /* Promise+AllIgnoringResult.swift */; };
294-
4AC1157827F5BEFD0023F51B /* Promise+AllIgnoringResultsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4AC1157727F5BEFD0023F51B /* Promise+AllIgnoringResultsTests.swift */; };
295293
4AC86270273598CC00E15BA5 /* UIViewController+ProgressHUDError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4AC8626F273598CC00E15BA5 /* UIViewController+ProgressHUDError.swift */; };
296294
4AD0F61C24AF203F0026B765 /* FileProvider+Actions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4AD0F61B24AF203F0026B765 /* FileProvider+Actions.swift */; };
297295
4AD3D7D6282EBDE7008188CD /* Intents.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4AD3D7D5282EBDE7008188CD /* Intents.framework */; };
@@ -434,6 +432,8 @@
434432
74F5DC1C26DCD2FB00AFE989 /* StoreObserver.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74F5DC1B26DCD2FB00AFE989 /* StoreObserver.swift */; };
435433
74F5DC1F26DD036D00AFE989 /* StoreManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74F5DC1E26DD036D00AFE989 /* StoreManager.swift */; };
436434
74FC576125ADED030003ED27 /* VaultCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74FC576025ADED030003ED27 /* VaultCell.swift */; };
435+
B330CB452CB5735300C21E03 /* UnauthorizedErrorViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = B330CB442CB5735000C21E03 /* UnauthorizedErrorViewController.swift */; };
436+
B3D19A442CB937C700CD18A5 /* FileProviderCoordinatorError.swift in Sources */ = {isa = PBXBuildFile; fileRef = B3D19A432CB937BF00CD18A5 /* FileProviderCoordinatorError.swift */; };
437437
/* End PBXBuildFile section */
438438

439439
/* Begin PBXContainerItemProxy section */
@@ -828,8 +828,6 @@
828828
4ABCF3512726D24800A7FBB7 /* MoveVaultViewModelTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MoveVaultViewModelTests.swift; sourceTree = "<group>"; };
829829
4AC005F027C3D80B006FFE87 /* PremiumManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PremiumManager.swift; sourceTree = "<group>"; };
830830
4AC005F227C3D932006FFE87 /* PremiumManagerMock.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PremiumManagerMock.swift; sourceTree = "<group>"; };
831-
4AC1157527F5BD890023F51B /* Promise+AllIgnoringResult.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Promise+AllIgnoringResult.swift"; sourceTree = "<group>"; };
832-
4AC1157727F5BEFD0023F51B /* Promise+AllIgnoringResultsTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Promise+AllIgnoringResultsTests.swift"; sourceTree = "<group>"; };
833831
4AC8626F273598CC00E15BA5 /* UIViewController+ProgressHUDError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIViewController+ProgressHUDError.swift"; sourceTree = "<group>"; };
834832
4AD0F61B24AF203F0026B765 /* FileProvider+Actions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "FileProvider+Actions.swift"; sourceTree = "<group>"; };
835833
4AD3D7D4282EBDE7008188CD /* CryptomatorIntents.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = CryptomatorIntents.appex; sourceTree = BUILT_PRODUCTS_DIR; };
@@ -1041,6 +1039,8 @@
10411039
74F5DC1B26DCD2FB00AFE989 /* StoreObserver.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StoreObserver.swift; sourceTree = "<group>"; };
10421040
74F5DC1E26DD036D00AFE989 /* StoreManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StoreManager.swift; sourceTree = "<group>"; };
10431041
74FC576025ADED030003ED27 /* VaultCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VaultCell.swift; sourceTree = "<group>"; };
1042+
B330CB442CB5735000C21E03 /* UnauthorizedErrorViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UnauthorizedErrorViewController.swift; sourceTree = "<group>"; };
1043+
B3D19A432CB937BF00CD18A5 /* FileProviderCoordinatorError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FileProviderCoordinatorError.swift; sourceTree = "<group>"; };
10441044
/* End PBXFileReference section */
10451045

10461046
/* Begin PBXFrameworksBuildPhase section */
@@ -1214,7 +1214,6 @@
12141214
4AFBFA19282946BF00E30818 /* InMemoryProgressManagerTests.swift */,
12151215
4AB1D4EF27D20420009060AB /* LocalURLProviderTests.swift */,
12161216
4A0AA12C2ABA277800CF24FD /* PermissionProviderImplTests.swift */,
1217-
4AC1157727F5BEFD0023F51B /* Promise+AllIgnoringResultsTests.swift */,
12181217
4ADC66C427A7F6D6002E6CC7 /* UnlockMonitorTests.swift */,
12191218
4A4F47F224B875070033328B /* URL+NameCollisionExtensionTests.swift */,
12201219
4AE5196427F48D6600BA6E4A /* WorkflowDependencyFactoryTests.swift */,
@@ -1663,7 +1662,9 @@
16631662
4A9FCB0B251A02A3002A8B41 /* FileProviderExtensionUI.entitlements */,
16641663
4AA621EB249A6A8400A0BCBD /* Info.plist */,
16651664
4A6A521A268B7147006F7368 /* FileProviderCoordinator.swift */,
1665+
B3D19A432CB937BF00CD18A5 /* FileProviderCoordinatorError.swift */,
16661666
4A6A5218268B6D31006F7368 /* OnboardingViewController.swift */,
1667+
B330CB442CB5735000C21E03 /* UnauthorizedErrorViewController.swift */,
16671668
4A6A520C268B5EF7006F7368 /* RootViewController.swift */,
16681669
4A9BED65268F2D9C00721BAA /* UnlockVaultViewController.swift */,
16691670
4AFD8C0E269304A700F77BA6 /* UnlockVaultViewModel.swift */,
@@ -1926,7 +1927,6 @@
19261927
4AEE6EE02822A33400E1B35E /* NSFileProviderItemIdentifier+Database.swift */,
19271928
4A0AA12A2AB8DB1800CF24FD /* PermissionProvider.swift */,
19281929
4AEE6EE92825716400E1B35E /* ProgressManager.swift */,
1929-
4AC1157527F5BD890023F51B /* Promise+AllIgnoringResult.swift */,
19301930
4ADD233F26737CD400374E4E /* RootFileProviderItem.swift */,
19311931
4A7514A02937F777002E802E /* SessionTaskRegistrator.swift */,
19321932
4ADC66C027A7F426002E6CC7 /* UnlockMonitor.swift */,
@@ -2572,7 +2572,6 @@
25722572
4AB1C33C265E9DBC00DC7A49 /* CloudTaskExecutorTestCase.swift in Sources */,
25732573
4AE5196727F495BF00BA6E4A /* WorkflowDependencyTasksCollectionMock.swift in Sources */,
25742574
4A0AA12F2ABA2A1600CF24FD /* PermissionProviderMock.swift in Sources */,
2575-
4AC1157827F5BEFD0023F51B /* Promise+AllIgnoringResultsTests.swift in Sources */,
25762575
4AE5196527F48D6600BA6E4A /* WorkflowDependencyFactoryTests.swift in Sources */,
25772576
4A49FABE271ECDE80069A0CC /* ItemEnumerationTaskManagerTests.swift in Sources */,
25782577
4A248229266E2DD6002D9F59 /* FileProviderAdapterCreateDirectoryTests.swift in Sources */,
@@ -2670,6 +2669,8 @@
26702669
4A804082276952C300D7D999 /* FileProviderCoordinatorSnapshotMock.swift in Sources */,
26712670
4A9BED66268F2D9D00721BAA /* UnlockVaultViewController.swift in Sources */,
26722671
4A6A521B268B7147006F7368 /* FileProviderCoordinator.swift in Sources */,
2672+
B330CB452CB5735300C21E03 /* UnauthorizedErrorViewController.swift in Sources */,
2673+
B3D19A442CB937C700CD18A5 /* FileProviderCoordinatorError.swift in Sources */,
26732674
4A6A5219268B6D32006F7368 /* OnboardingViewController.swift in Sources */,
26742675
4AFD8C0F269304A700F77BA6 /* UnlockVaultViewModel.swift in Sources */,
26752676
);
@@ -2955,7 +2956,6 @@
29552956
4ADD234026737CD400374E4E /* RootFileProviderItem.swift in Sources */,
29562957
747F2F232587BC250072FB30 /* ItemMetadataDBManager.swift in Sources */,
29572958
4A511D47265FEFBE000A0E01 /* DownloadTask.swift in Sources */,
2958-
4AC1157627F5BD890023F51B /* Promise+AllIgnoringResult.swift in Sources */,
29592959
4A09E54E27071F4F0056D32A /* ErrorMapper.swift in Sources */,
29602960
4AEECD35279EB0FD00C6E2B5 /* FileProviderEnumerator.swift in Sources */,
29612961
4AE0D8DC2653DF1300DF5D22 /* DownloadTaskExecutor.swift in Sources */,
@@ -3320,7 +3320,7 @@
33203320
GCC_WARN_UNUSED_FUNCTION = YES;
33213321
GCC_WARN_UNUSED_VARIABLE = YES;
33223322
IPHONEOS_DEPLOYMENT_TARGET = 14.0;
3323-
MARKETING_VERSION = 2.6.2;
3323+
MARKETING_VERSION = 2.6.3;
33243324
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
33253325
MTL_FAST_MATH = YES;
33263326
ONLY_ACTIVE_ARCH = YES;
@@ -3382,7 +3382,7 @@
33823382
GCC_WARN_UNUSED_FUNCTION = YES;
33833383
GCC_WARN_UNUSED_VARIABLE = YES;
33843384
IPHONEOS_DEPLOYMENT_TARGET = 14.0;
3385-
MARKETING_VERSION = 2.6.2;
3385+
MARKETING_VERSION = 2.6.3;
33863386
MTL_ENABLE_DEBUG_INFO = NO;
33873387
MTL_FAST_MATH = YES;
33883388
OTHER_SWIFT_FLAGS = "-Xfrontend -warn-long-expression-type-checking=200 -Xfrontend -warn-long-function-bodies=200";

Cryptomator.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved

+16-16
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
"kind" : "remoteSourceControl",
66
"location" : "https://github.com/openid/AppAuth-iOS.git",
77
"state" : {
8-
"revision" : "71cde449f13d453227e687458144bde372d30fc7",
9-
"version" : "1.6.2"
8+
"revision" : "c89ed571ae140f8eb1142735e6e23d7bb8c34cb2",
9+
"version" : "1.7.5"
1010
}
1111
},
1212
{
@@ -32,8 +32,8 @@
3232
"kind" : "remoteSourceControl",
3333
"location" : "https://github.com/aws-amplify/aws-sdk-ios-spm.git",
3434
"state" : {
35-
"revision" : "8ff8bebfe24271f7b16c5abaeb78daf82bee3a80",
36-
"version" : "2.34.2"
35+
"revision" : "6e23b91609f9ddf988fda58bf711896a6062d4ff",
36+
"version" : "2.35.0"
3737
}
3838
},
3939
{
@@ -68,8 +68,8 @@
6868
"kind" : "remoteSourceControl",
6969
"location" : "https://github.com/cryptomator/cloud-access-swift.git",
7070
"state" : {
71-
"revision" : "2d8444001a4b2c2ccf396942fd78680eefa9dc52",
72-
"version" : "1.11.3"
71+
"revision" : "299be2306bc133b6eefbf18c172a1b5ed9808a44",
72+
"version" : "1.12.1"
7373
}
7474
},
7575
{
@@ -95,8 +95,8 @@
9595
"kind" : "remoteSourceControl",
9696
"location" : "https://github.com/leif-ibsen/Digest",
9797
"state" : {
98-
"revision" : "bb5de567a7b109a473ef5fddd3f02f1e5b9e2a41",
99-
"version" : "1.7.0"
98+
"revision" : "844a17be22efaa443130d081f2c4fa5f12c68e91",
99+
"version" : "1.8.0"
100100
}
101101
},
102102
{
@@ -122,26 +122,26 @@
122122
"kind" : "remoteSourceControl",
123123
"location" : "https://github.com/groue/GRDB.swift.git",
124124
"state" : {
125-
"revision" : "dd7e7f39e8e4d7a22d258d9809a882f914690b01",
126-
"version" : "5.26.1"
125+
"revision" : "2cf6c756e1e5ef6901ebae16576a7e4e4b834622",
126+
"version" : "6.29.3"
127127
}
128128
},
129129
{
130130
"identity" : "gtm-session-fetcher",
131131
"kind" : "remoteSourceControl",
132132
"location" : "https://github.com/google/gtm-session-fetcher.git",
133133
"state" : {
134-
"revision" : "d415594121c9e8a4f9d79cecee0965cf35e74dbd",
135-
"version" : "3.1.1"
134+
"revision" : "a2ab612cb980066ee56d90d60d8462992c07f24b",
135+
"version" : "3.5.0"
136136
}
137137
},
138138
{
139139
"identity" : "gtmappauth",
140140
"kind" : "remoteSourceControl",
141141
"location" : "https://github.com/google/GTMAppAuth.git",
142142
"state" : {
143-
"revision" : "41aba100f28395ebe842cd66e5d371cdd46c6792",
144-
"version" : "4.0.0"
143+
"revision" : "5d7d66f647400952b1758b230e019b07c0b4b22a",
144+
"version" : "4.1.1"
145145
}
146146
},
147147
{
@@ -158,8 +158,8 @@
158158
"kind" : "remoteSourceControl",
159159
"location" : "https://github.com/AzureAD/microsoft-authentication-library-for-objc.git",
160160
"state" : {
161-
"revision" : "d2f81ded070ac6452b2a6acb5bc45eb566427fe7",
162-
"version" : "1.3.3"
161+
"revision" : "b8733236bfd16e10849f4752a4d1c4621e4bf930",
162+
"version" : "1.5.0"
163163
}
164164
},
165165
{

Cryptomator/Common/CloudAccountList/AccountListPosition.swift

+4-4
Original file line numberDiff line numberDiff line change
@@ -20,17 +20,17 @@ extension AccountListPosition: FetchableRecord, MutablePersistableRecord {
2020
static let databaseSelection: [SQLSelectable] = [AllColumns(), Column.rowID]
2121
static let account = belongsTo(CloudProviderAccount.self)
2222

23-
mutating func didInsert(with rowID: Int64, for column: String?) {
24-
id = rowID
23+
mutating func didInsert(_ inserted: InsertionSuccess) {
24+
id = inserted.rowID
2525
}
2626

27-
init(row: Row) {
27+
init(row: Row) throws {
2828
self.id = row[Column.rowID]
2929
self.position = row[Columns.position]
3030
self.accountUID = row[Columns.accountUID]
3131
}
3232

33-
func encode(to container: inout PersistenceContainer) {
33+
func encode(to container: inout PersistenceContainer) throws {
3434
container[Column.rowID] = id
3535
container[Columns.position] = position
3636
container[Columns.accountUID] = accountUID

Cryptomator/Common/DatabaseManager.swift

+1-1
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ class DatabaseManager {
9797
let observation = ValueObservation
9898
.tracking { db in try Row.fetchAll(db, request) }
9999
.removeDuplicates()
100-
.map { rows in rows.map(AccountWithDisplayName.init(row:)) }
100+
.map { rows in try rows.map(AccountWithDisplayName.init(row:)) }
101101
.map { annotatedAccounts in annotatedAccounts.map(\.account) }
102102
return observation.start(in: database, scheduling: .immediate, onError: onError, onChange: onChange)
103103
}

Cryptomator/Snapshots/SnapshotCoordinator.swift

-4
Original file line numberDiff line numberDiff line change
@@ -100,10 +100,6 @@ private class SnapshotVaultLockingMock: VaultLocking {
100100
reply(true)
101101
}
102102

103-
func getUnlockedVaultDomainIdentifiers(reply: @escaping ([NSFileProviderDomainIdentifier]) -> Void) {
104-
fatalError()
105-
}
106-
107103
var serviceName: NSFileProviderServiceName = .init("org.cryptomator.ios.vault-locking")
108104

109105
func makeListenerEndpoint() throws -> NSXPCListenerEndpoint {

Cryptomator/VaultList/VaultCellViewModel.swift

+1-6
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ protocol VaultCellViewModelProtocol: TableViewCellViewModel, ViewModel {
1616
var vault: VaultInfo { get }
1717
var lockButtonIsHidden: AnyPublisher<Bool, Never> { get }
1818
func lockVault() -> Promise<Void>
19-
func setVaultUnlockStatus(unlocked: Bool)
2019
}
2120

2221
class VaultCellViewModel: TableViewCellViewModel, VaultCellViewModelProtocol {
@@ -46,18 +45,14 @@ class VaultCellViewModel: TableViewCellViewModel, VaultCellViewModelProtocol {
4645
return getXPCPromise.then { xpc in
4746
xpc.proxy.lockVault(domainIdentifier: domainIdentifier)
4847
}.then {
49-
self.setVaultUnlockStatus(unlocked: false)
48+
self.vault.vaultIsUnlocked.value = false
5049
}.catch { error in
5150
self.errorPublisher.send(error)
5251
}.always {
5352
self.fileProviderConnector.invalidateXPC(getXPCPromise)
5453
}
5554
}
5655

57-
func setVaultUnlockStatus(unlocked: Bool) {
58-
vault.vaultIsUnlocked.value = unlocked
59-
}
60-
6156
override func hash(into hasher: inout Hasher) {
6257
hasher.combine(vault.vaultUID)
6358
}

Cryptomator/VaultList/VaultListPosition.swift

+4-4
Original file line numberDiff line numberDiff line change
@@ -18,17 +18,17 @@ struct VaultListPosition: Codable {
1818
extension VaultListPosition: FetchableRecord, MutablePersistableRecord {
1919
static let databaseSelection: [SQLSelectable] = [AllColumns(), Column.rowID]
2020

21-
mutating func didInsert(with rowID: Int64, for column: String?) {
22-
id = rowID
21+
mutating func didInsert(_ inserted: InsertionSuccess) {
22+
id = inserted.rowID
2323
}
2424

25-
init(row: Row) {
25+
init(row: Row) throws {
2626
self.id = row[Column.rowID]
2727
self.position = row[Columns.position]
2828
self.vaultUID = row[Columns.vaultUID]
2929
}
3030

31-
func encode(to container: inout PersistenceContainer) {
31+
func encode(to container: inout PersistenceContainer) throws {
3232
container[Column.rowID] = id
3333
container[Columns.position] = position
3434
container[Columns.vaultUID] = vaultUID

Cryptomator/VaultList/VaultListViewModel.swift

+15-16
Original file line numberDiff line numberDiff line change
@@ -104,24 +104,23 @@ class VaultListViewModel: ViewModel, VaultListViewModelProtocol {
104104
}
105105

106106
func refreshVaultLockStates() -> Promise<Void> {
107-
let getXPCPromise: Promise<XPC<VaultLocking>> = fileProviderConnector.getXPC(serviceName: .vaultLocking, domain: nil)
107+
let promises = vaultCellViewModels.map { vaultCellViewModel in
108+
return checkVaultUnlockStatus(for: vaultCellViewModel.vault)
109+
}
110+
return all(ignoringResult: promises)
111+
}
112+
113+
private func checkVaultUnlockStatus(for vault: VaultInfo) -> Promise<Void> {
114+
let domainIdentifier = NSFileProviderDomainIdentifier(vault.vaultUID)
115+
let getXPCPromise: Promise<XPC<VaultLocking>> = fileProviderConnector.getXPC(serviceName: .vaultLocking, domainIdentifier: domainIdentifier)
108116

109117
return getXPCPromise.then { xpc in
110-
return wrap { handler in
111-
xpc.proxy.getUnlockedVaultDomainIdentifiers(reply: handler)
112-
}
113-
}.then { unlockedVaultDomainIdentifiers -> Void in
114-
for domainIdentifier in unlockedVaultDomainIdentifiers {
115-
let vaultInfo = self.vaultCellViewModels.first { $0.vault.vaultUID == domainIdentifier.rawValue }
116-
vaultInfo?.setVaultUnlockStatus(unlocked: true)
117-
}
118-
self.vaultCellViewModels.filter { vaultCellViewModel in
119-
unlockedVaultDomainIdentifiers.allSatisfy { domainIdentifier in
120-
vaultCellViewModel.vault.vaultUID != domainIdentifier.rawValue
121-
}
122-
}.forEach { vaultCellViewModel in
123-
vaultCellViewModel.setVaultUnlockStatus(unlocked: false)
124-
}
118+
return xpc.proxy.getIsUnlockedVault(domainIdentifier: domainIdentifier)
119+
}.then { isUnlocked -> Void in
120+
DDLogDebug("Vault \(vault.vaultUID) unlock status: \(isUnlocked ? "Unlocked" : "Locked")")
121+
vault.vaultIsUnlocked.value = isUnlocked
122+
}.catch { error in
123+
DDLogError("Failed to check unlock status for vault \(vault.vaultUID): \(error)")
125124
}.always {
126125
self.fileProviderConnector.invalidateXPC(getXPCPromise)
127126
}

CryptomatorCommon/Package.swift

+2-2
Original file line numberDiff line numberDiff line change
@@ -26,11 +26,11 @@ let package = Package(
2626
)
2727
],
2828
dependencies: [
29-
.package(url: "https://github.com/cryptomator/cloud-access-swift.git", .upToNextMinor(from: "1.11.0")),
29+
.package(url: "https://github.com/cryptomator/cloud-access-swift.git", .upToNextMinor(from: "1.12.0")),
3030
.package(url: "https://github.com/CocoaLumberjack/CocoaLumberjack.git", .upToNextMinor(from: "3.8.0")),
3131
.package(url: "https://github.com/PhilLibs/simple-swift-dependencies", .upToNextMajor(from: "0.1.0")),
3232
.package(url: "https://github.com/siteline/SwiftUI-Introspect.git", .upToNextMajor(from: "0.3.0")),
33-
.package(url: "https://github.com/leif-ibsen/SwiftECC", from: "5.0.0")
33+
.package(url: "https://github.com/leif-ibsen/SwiftECC", .upToNextMinor(from: "5.3.0"))
3434
],
3535
targets: [
3636
.target(

CryptomatorCommon/Sources/CryptomatorCommonCore/CryptomatorDatabase.swift

+4-3
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,14 @@ private enum CryptomatorDatabaseKey: DependencyKey {
1515
static let liveValue: DatabaseWriter = CryptomatorDatabase.live
1616

1717
static var testValue: DatabaseWriter {
18-
let inMemoryDB = DatabaseQueue(configuration: .defaultCryptomatorConfiguration)
1918
do {
19+
let inMemoryDB = try DatabaseQueue(configuration: .defaultCryptomatorConfiguration)
2020
try CryptomatorDatabase.migrator.migrate(inMemoryDB)
21+
return inMemoryDB
2122
} catch {
22-
DDLogError("Failed to migrate in-memory database: \(error)")
23+
DDLogError("Failed to initialize in-memory database: \(error)")
24+
fatalError("Failed to initialize in-memory database")
2325
}
24-
return inMemoryDB
2526
}
2627
}
2728

CryptomatorCommon/Sources/CryptomatorCommonCore/FileProviderXPC/VaultLocking.swift

-7
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ import Promises
1414
func lockVault(domainIdentifier: NSFileProviderDomainIdentifier)
1515
func gracefulLockVault(domainIdentifier: NSFileProviderDomainIdentifier, reply: @escaping (Error?) -> Void)
1616
func getIsUnlockedVault(domainIdentifier: NSFileProviderDomainIdentifier, reply: @escaping (Bool) -> Void)
17-
func getUnlockedVaultDomainIdentifiers(reply: @escaping ([NSFileProviderDomainIdentifier]) -> Void)
1817
}
1918

2019
public extension NSFileProviderServiceName {
@@ -41,10 +40,4 @@ public extension VaultLocking {
4140
self.getIsUnlockedVault(domainIdentifier: domainIdentifier, reply: replyHandler)
4241
}
4342
}
44-
45-
func getUnlockedVaultDomainIdentifiers() -> Promise<[NSFileProviderDomainIdentifier]> {
46-
return wrap { replyHandler in
47-
self.getUnlockedVaultDomainIdentifiers(reply: replyHandler)
48-
}
49-
}
5043
}

CryptomatorCommon/Sources/CryptomatorCommonCore/Hub/HubRepository.swift

+1-1
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ private struct HubVaultRow: Codable, Equatable, PersistableRecord, FetchableReco
3131
case vaultUID, subscriptionState
3232
}
3333

34-
public func encode(to container: inout PersistenceContainer) {
34+
public func encode(to container: inout PersistenceContainer) throws {
3535
container[Columns.vaultUID] = vaultUID
3636
container[Columns.subscriptionState] = subscriptionState
3737
}

0 commit comments

Comments
 (0)