Skip to content

Commit 277f3a7

Browse files
committed
Merge branch 'release/2.7.0'
2 parents bcccf02 + 04292e0 commit 277f3a7

File tree

105 files changed

+1554
-209
lines changed

Some content is hidden

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

105 files changed

+1554
-209
lines changed

.github/CONTRIBUTING.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,10 @@
1414

1515
- Suggest your change by [submitting a new issue](https://github.com/cryptomator/ios/issues/new/choose) and start writing code.
1616

17+
## Do you intend to add a new translation or change an existing one?
18+
19+
Translations are not managed directly in this repository. Instead, we use [Crowdin](https://translate.cryptomator.org/), which automatically synchronizes translations with this repository. If you want to help us with translations, please visit our translation project on Crowdin.
20+
1721
## Code of Conduct
1822

1923
Help us keep Cryptomator open and inclusive. Please read and follow our [Code of Conduct](CODE_OF_CONDUCT.md).

.github/ISSUE_TEMPLATE/bug.yml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,14 @@
11
name: Bug Report
22
description: Create a report to help us improve
3-
labels: ["type:bug"]
3+
type: "Bug"
44
body:
5+
- type: input
6+
id: summary
7+
attributes:
8+
label: Summary
9+
placeholder: Please summarize your problem.
10+
validations:
11+
required: true
512
- type: checkboxes
613
id: terms
714
attributes:
@@ -11,13 +18,6 @@ body:
1118
required: true
1219
- label: I agree to follow this project's [Code of Conduct](https://github.com/cryptomator/ios/blob/develop/.github/CODE_OF_CONDUCT.md)
1320
required: true
14-
- type: input
15-
id: summary
16-
attributes:
17-
label: Summary
18-
placeholder: Please summarize your problem.
19-
validations:
20-
required: true
2121
- type: textarea
2222
id: software-versions
2323
attributes:

.github/ISSUE_TEMPLATE/feature.yml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,14 @@
11
name: Feature Request
22
description: Suggest an idea for this project
3-
labels: ["type:feature-request"]
3+
type: "Feature"
44
body:
5+
- type: input
6+
id: summary
7+
attributes:
8+
label: Summary
9+
placeholder: Please summarize your feature request.
10+
validations:
11+
required: true
512
- type: checkboxes
613
id: terms
714
attributes:
@@ -11,13 +18,6 @@ body:
1118
required: true
1219
- label: I agree to follow this project's [Code of Conduct](https://github.com/cryptomator/ios/blob/develop/.github/CODE_OF_CONDUCT.md)
1320
required: true
14-
- type: input
15-
id: summary
16-
attributes:
17-
label: Summary
18-
placeholder: Please summarize your feature request.
19-
validations:
20-
required: true
2121
- type: textarea
2222
id: motivation
2323
attributes:

Cryptomator.xcodeproj/project.pbxproj

Lines changed: 62 additions & 6 deletions
Large diffs are not rendered by default.

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

Lines changed: 18 additions & 18 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cryptomator/AddVault/CloudCell.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ class CloudCell: UITableViewCell {
2626
func configure(with cloudProviderType: CloudProviderType) {
2727
imageView?.image = UIImage(storageIconFor: cloudProviderType)
2828
textLabel?.text = cloudProviderType.localizedString()
29+
detailTextLabel?.text = cloudProviderType.localizedSecondaryString()
2930
}
3031

3132
@available(iOS 14, *)
@@ -36,6 +37,7 @@ class CloudCell: UITableViewCell {
3637
var content = defaultContentConfiguration().updated(for: state)
3738
content.image = UIImage(storageIconFor: cloudProviderType)
3839
content.text = cloudProviderType.localizedString()
40+
content.secondaryText = cloudProviderType.localizedSecondaryString()
3941
contentConfiguration = content
4042
}
4143
}

Cryptomator/AddVault/CreateNewVault/CreateNewVaultChooseFolderViewController.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,8 @@ private class CreateNewVaultChooseFolderViewModelMock: ChooseFolderViewModelProt
7272
}
7373

7474
func refreshItems() {}
75+
76+
func addItem(_ item: CloudItemMetadata) {}
7577
}
7678

7779
struct CreateNewVaultChooseFolderVCPreview: PreviewProvider {

Cryptomator/AddVault/CreateNewVault/CreateNewVaultCoordinator.swift

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ class CreateNewVaultCoordinator: AccountListing, CloudChoosing, DefaultShowEditA
2424
}
2525

2626
func start() {
27-
let viewModel = ChooseCloudViewModel(clouds: [.localFileSystem(type: .iCloudDrive), .dropbox, .googleDrive, .oneDrive, .pCloud, .box, .webDAV(type: .custom), .s3(type: .custom), .localFileSystem(type: .custom)], headerTitle: LocalizedString.getValue("addVault.createNewVault.chooseCloud.header"))
27+
let viewModel = ChooseCloudViewModel(clouds: [.localFileSystem(type: .iCloudDrive), .dropbox, .googleDrive, .microsoftGraph(type: .oneDrive), .microsoftGraph(type: .sharePoint), .pCloud, .box, .webDAV(type: .custom), .s3(type: .custom), .localFileSystem(type: .custom)], headerTitle: LocalizedString.getValue("addVault.createNewVault.chooseCloud.header"))
2828
let chooseCloudVC = ChooseCloudViewController(viewModel: viewModel)
2929
chooseCloudVC.title = LocalizedString.getValue("addVault.createNewVault.title")
3030
chooseCloudVC.coordinator = self
@@ -47,6 +47,11 @@ class CreateNewVaultCoordinator: AccountListing, CloudChoosing, DefaultShowEditA
4747
authenticator.authenticate(cloudProviderType, from: viewController).then { account in
4848
let provider = try CloudProviderDBManager.shared.getProvider(with: account.accountUID)
4949
self.startFolderChooser(with: provider, account: account)
50+
}.catch { error in
51+
guard case CocoaError.userCancelled = error else {
52+
self.handleError(error, for: self.navigationController)
53+
return
54+
}
5055
}
5156
}
5257

@@ -135,10 +140,11 @@ private class AuthenticatedCreateNewVaultCoordinator: FolderChoosing, VaultInsta
135140
navigationController.pushViewController(passwordVC, animated: true)
136141
}
137142

138-
func showCreateNewFolder(parentPath: CloudPath) {
143+
func showCreateNewFolder(parentPath: CloudPath, delegate: ChooseFolderViewModelProtocol?) {
139144
let modalNavigationController = BaseNavigationController()
140145
let child = AuthenticatedFolderCreationCoordinator(navigationController: modalNavigationController, provider: provider, parentPath: parentPath)
141146
child.parentCoordinator = self
147+
child.delegate = delegate
142148
childCoordinators.append(child)
143149
navigationController.topViewController?.present(modalNavigationController, animated: true)
144150
child.start()
@@ -163,6 +169,7 @@ private class AuthenticatedCreateNewVaultCoordinator: FolderChoosing, VaultInsta
163169

164170
class AuthenticatedFolderCreationCoordinator: FolderCreating, ChildCoordinator {
165171
weak var parentCoordinator: Coordinator?
172+
weak var delegate: ChooseFolderViewModelProtocol?
166173
var childCoordinators = [Coordinator]()
167174
var navigationController: UINavigationController
168175
private let provider: CloudProvider
@@ -183,6 +190,7 @@ class AuthenticatedFolderCreationCoordinator: FolderCreating, ChildCoordinator {
183190

184191
func createdNewFolder(at folderPath: CloudPath) {
185192
navigationController.dismiss(animated: true)
193+
delegate?.addItem(CloudItemMetadata(name: folderPath.lastPathComponent, cloudPath: folderPath, itemType: .folder, lastModifiedDate: nil, size: nil))
186194
if let folderChoosingParentCoordinator = parentCoordinator as? FolderChoosing {
187195
folderChoosingParentCoordinator.showItems(for: folderPath)
188196
}

Cryptomator/AddVault/OpenExistingVault/OpenExistingVaultChooseFolderViewController.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,8 @@ private class OpenExistingVaultChooseFolderViewModelMock: ChooseFolderViewModelP
102102
}
103103

104104
func refreshItems() {}
105+
106+
func addItem(_ item: CloudItemMetadata) {}
105107
}
106108

107109
struct OpenExistingVaultChooseFolderVCPreview: PreviewProvider {

Cryptomator/AddVault/OpenExistingVault/OpenExistingVaultCoordinator.swift

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ class OpenExistingVaultCoordinator: AccountListing, CloudChoosing, DefaultShowEd
2525
}
2626

2727
func start() {
28-
let viewModel = ChooseCloudViewModel(clouds: [.localFileSystem(type: .iCloudDrive), .dropbox, .googleDrive, .oneDrive, .pCloud, .box, .webDAV(type: .custom), .s3(type: .custom), .localFileSystem(type: .custom)], headerTitle: LocalizedString.getValue("addVault.openExistingVault.chooseCloud.header"))
28+
let viewModel = ChooseCloudViewModel(clouds: [.localFileSystem(type: .iCloudDrive), .dropbox, .googleDrive, .microsoftGraph(type: .oneDrive), .microsoftGraph(type: .sharePoint), .pCloud, .box, .webDAV(type: .custom), .s3(type: .custom), .localFileSystem(type: .custom)], headerTitle: LocalizedString.getValue("addVault.openExistingVault.chooseCloud.header"))
2929
let chooseCloudVC = ChooseCloudViewController(viewModel: viewModel)
3030
chooseCloudVC.title = LocalizedString.getValue("addVault.openExistingVault.title")
3131
chooseCloudVC.coordinator = self
@@ -48,6 +48,11 @@ class OpenExistingVaultCoordinator: AccountListing, CloudChoosing, DefaultShowEd
4848
authenticator.authenticate(cloudProviderType, from: viewController).then { account in
4949
let provider = try CloudProviderDBManager.shared.getProvider(with: account.accountUID)
5050
self.startFolderChooser(with: provider, account: account)
51+
}.catch { error in
52+
guard case CocoaError.userCancelled = error else {
53+
self.handleError(error, for: self.navigationController)
54+
return
55+
}
5156
}
5257
}
5358

@@ -208,7 +213,7 @@ private class AuthenticatedOpenExistingVaultCoordinator: VaultInstalling, Folder
208213
child.start()
209214
}
210215

211-
func showCreateNewFolder(parentPath: CloudPath) {}
216+
func showCreateNewFolder(parentPath: CloudPath, delegate: ChooseFolderViewModelProtocol?) {}
212217

213218
func handleError(error: Error) {
214219
navigationController.popViewController(animated: true)

0 commit comments

Comments
 (0)