Skip to content

Commit ab8a66f

Browse files
Version 6.1.1 (#3148)
1 parent 60f9f92 commit ab8a66f

20 files changed

+66
-58
lines changed

Nextcloud.xcodeproj/project.pbxproj

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5682,7 +5682,7 @@
56825682
CLANG_WARN_UNREACHABLE_CODE = YES;
56835683
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
56845684
COPY_PHASE_STRIP = NO;
5685-
CURRENT_PROJECT_VERSION = 4;
5685+
CURRENT_PROJECT_VERSION = 1;
56865686
DEBUG_INFORMATION_FORMAT = dwarf;
56875687
DEVELOPMENT_TEAM = NKUJUXUJ3B;
56885688
ENABLE_STRICT_OBJC_MSGSEND = YES;
@@ -5709,7 +5709,7 @@
57095709
"@executable_path/Frameworks",
57105710
"@executable_path/../../Frameworks",
57115711
);
5712-
MARKETING_VERSION = 6.1.0;
5712+
MARKETING_VERSION = 6.1.1;
57135713
ONLY_ACTIVE_ARCH = YES;
57145714
OTHER_CFLAGS = "-v";
57155715
OTHER_LDFLAGS = "";
@@ -5748,7 +5748,7 @@
57485748
CLANG_WARN_UNREACHABLE_CODE = YES;
57495749
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
57505750
COPY_PHASE_STRIP = NO;
5751-
CURRENT_PROJECT_VERSION = 4;
5751+
CURRENT_PROJECT_VERSION = 1;
57525752
DEVELOPMENT_TEAM = NKUJUXUJ3B;
57535753
ENABLE_STRICT_OBJC_MSGSEND = YES;
57545754
ENABLE_TESTABILITY = YES;
@@ -5772,7 +5772,7 @@
57725772
"@executable_path/Frameworks",
57735773
"@executable_path/../../Frameworks",
57745774
);
5775-
MARKETING_VERSION = 6.1.0;
5775+
MARKETING_VERSION = 6.1.1;
57765776
ONLY_ACTIVE_ARCH = YES;
57775777
OTHER_CFLAGS = "-v";
57785778
OTHER_LDFLAGS = "";

Share/NCShareExtension+Files.swift

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,9 @@ import NextcloudKit
2828

2929
extension NCShareExtension {
3030
@objc func reloadDatasource(withLoadFolder: Bool) {
31+
let layoutForView = NCManageDatabase.shared.getLayoutForView(account: session.account, key: keyLayout, serverUrl: serverUrl) ?? NCDBLayoutForView()
3132
let predicate = NSPredicate(format: "account == %@ AND serverUrl == %@ AND directory == true", session.account, serverUrl)
32-
let metadatas = self.database.getResultsMetadatasPredicate(predicate, layoutForView: NCDBLayoutForView())
33+
let metadatas = self.database.getResultsMetadatasPredicate(predicate, layoutForView: layoutForView)
3334

3435
self.dataSource = NCCollectionViewDataSource(metadatas: metadatas)
3536

@@ -49,7 +50,7 @@ extension NCShareExtension {
4950

5051
self.serverUrl += "/" + metadata.fileName
5152
self.reloadDatasource(withLoadFolder: true)
52-
self.setNavigationBar(navigationTitle: metadata.fileName)
53+
self.setNavigationBar(navigationTitle: metadata.fileNameView)
5354
}
5455

5556
func loadFolder() {

Share/NCShareExtension+NCAccountRequestDelegate.swift

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,9 @@ extension NCShareExtension: NCAccountRequestDelegate {
6565
}
6666
self.account = account
6767

68+
// CAPABILITIES
69+
database.setCapabilities(account: account)
70+
6871
// COLORS
6972
NCBrandColor.shared.settingThemingColor(account: account)
7073
NotificationCenter.default.postOnMainThread(name: NCGlobal.shared.notificationCenterChangeTheming, userInfo: ["account": account])
@@ -80,6 +83,9 @@ extension NCShareExtension: NCAccountRequestDelegate {
8083
nextcloudVersion: capabilities.capabilityServerVersionMajor,
8184
groupIdentifier: NCBrandOptions.shared.capabilitiesGroup)
8285

86+
// SESSION
87+
NCSession.shared.appendSession(account: tableAccount.account, urlBase: tableAccount.urlBase, user: tableAccount.user, userId: tableAccount.userId)
88+
8389
// get auto upload folder
8490
autoUploadFileName = self.database.getAccountAutoUploadFileName()
8591
autoUploadDirectory = self.database.getAccountAutoUploadDirectory(session: session)

Share/NCShareExtension.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -270,7 +270,7 @@ class NCShareExtension: UIViewController {
270270
}
271271

272272
@objc func actionCreateFolder() {
273-
let alertController = UIAlertController.createFolder(serverUrl: serverUrl, account: session.account) { error in
273+
let alertController = UIAlertController.createFolder(serverUrl: serverUrl, session: session) { error in
274274
guard error != .success else { return }
275275
self.showAlert(title: "_error_createsubfolders_upload_", description: error.errorDescription)
276276
}

iOSClient/Data/NCManageDatabase+Metadata.swift

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1065,34 +1065,34 @@ extension NCManageDatabase {
10651065
do {
10661066
let realm = try Realm()
10671067
var results = realm.objects(tableMetadata.self).filter(predicate).freeze()
1068-
if let layoutForView {
1069-
if layoutForView.sort == "fileName" {
1070-
let sortedResults = results.sorted {
1071-
// 1. favorite order
1072-
if $0.favorite == $1.favorite {
1073-
// 2. directory order TOP
1074-
if layoutForView.directoryOnTop {
1075-
if $0.directory == $1.directory {
1076-
// 3. natural fileName
1077-
return $0.fileNameView.localizedStandardCompare($1.fileNameView) == .orderedAscending
1078-
} else {
1079-
return $0.directory && !$1.directory
1080-
}
1081-
} else {
1068+
let layout: NCDBLayoutForView = layoutForView ?? NCDBLayoutForView()
1069+
1070+
if layout.sort == "fileName" {
1071+
let sortedResults = results.sorted {
1072+
// 1. favorite order
1073+
if $0.favorite == $1.favorite {
1074+
// 2. directory order TOP
1075+
if layout.directoryOnTop {
1076+
if $0.directory == $1.directory {
1077+
// 3. natural fileName
10821078
return $0.fileNameView.localizedStandardCompare($1.fileNameView) == .orderedAscending
1079+
} else {
1080+
return $0.directory && !$1.directory
10831081
}
10841082
} else {
1085-
return $0.favorite && !$1.favorite
1083+
return $0.fileNameView.localizedStandardCompare($1.fileNameView) == .orderedAscending
10861084
}
1087-
}
1088-
return sortedResults
1089-
} else {
1090-
if layoutForView.directoryOnTop {
1091-
results = results.sorted(byKeyPath: layoutForView.sort, ascending: layoutForView.ascending).sorted(byKeyPath: "directory", ascending: false).sorted(byKeyPath: "favorite", ascending: false)
10921085
} else {
1093-
results = results.sorted(byKeyPath: layoutForView.sort, ascending: layoutForView.ascending).sorted(byKeyPath: "favorite", ascending: false)
1086+
return $0.favorite && !$1.favorite
10941087
}
10951088
}
1089+
return sortedResults
1090+
} else {
1091+
if layout.directoryOnTop {
1092+
results = results.sorted(byKeyPath: layout.sort, ascending: layout.ascending).sorted(byKeyPath: "favorite", ascending: false).sorted(byKeyPath: "directory", ascending: false)
1093+
} else {
1094+
results = results.sorted(byKeyPath: layout.sort, ascending: layout.ascending).sorted(byKeyPath: "favorite", ascending: false)
1095+
}
10961096
}
10971097
return Array(results)
10981098

iOSClient/Extensions/UIAlertController+Extension.swift

Lines changed: 9 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -32,17 +32,13 @@ extension UIAlertController {
3232
/// - urlBase: UrlBase object
3333
/// - completion: If not` nil` it overrides the default behavior which shows an error using `NCContentPresenter`
3434
/// - Returns: The presentable alert controller
35-
static func createFolder(serverUrl: String, account: String, markE2ee: Bool = false, sceneIdentifier: String? = nil, completion: ((_ error: NKError) -> Void)? = nil) -> UIAlertController {
35+
static func createFolder(serverUrl: String, session: NCSession.Session, markE2ee: Bool = false, sceneIdentifier: String? = nil, completion: ((_ error: NKError) -> Void)? = nil) -> UIAlertController {
3636
let alertController = UIAlertController(title: NSLocalizedString("_create_folder_", comment: ""), message: nil, preferredStyle: .alert)
37-
let session = NCSession.shared.getSession(account: account)
3837
let isDirectoryEncrypted = NCUtilityFileSystem().isDirectoryE2EE(session: session, serverUrl: serverUrl)
3938

4039
let okAction = UIAlertAction(title: NSLocalizedString("_save_", comment: ""), style: .default, handler: { _ in
4140
guard let fileNameFolder = alertController.textFields?.first?.text else { return }
4241
if markE2ee {
43-
if NCNetworking.shared.isOffline {
44-
return NCContentPresenter().showInfo(error: NKError(errorCode: NCGlobal.shared.errorInternalError, errorDescription: "_offline_not_allowed_"))
45-
}
4642
Task {
4743
let createFolderResults = await NCNetworking.shared.createFolder(serverUrlFileName: serverUrl + "/" + fileNameFolder, account: session.account)
4844
if createFolderResults.error == .success {
@@ -55,28 +51,17 @@ extension UIAlertController {
5551
}
5652
}
5753
} else if isDirectoryEncrypted {
58-
if NCNetworking.shared.isOffline {
59-
return NCContentPresenter().showInfo(error: NKError(errorCode: NCGlobal.shared.errorInternalError, errorDescription: "_offline_not_allowed_"))
60-
}
61-
#if !EXTENSION
6254
Task {
6355
await NCNetworkingE2EECreateFolder().createFolder(fileName: fileNameFolder, serverUrl: serverUrl, withPush: true, sceneIdentifier: sceneIdentifier, session: session)
6456
}
65-
#endif
6657
} else {
67-
let metadataForCreateFolder = NCManageDatabase.shared.createMetadata(fileName: fileNameFolder,
68-
fileNameView: fileNameFolder,
69-
ocId: NSUUID().uuidString,
70-
serverUrl: serverUrl,
71-
url: "",
72-
contentType: "httpd/unix-directory",
73-
directory: true,
74-
session: session,
75-
sceneIdentifier: sceneIdentifier)
76-
metadataForCreateFolder.status = NCGlobal.shared.metadataStatusWaitCreateFolder
77-
metadataForCreateFolder.sessionDate = Date()
78-
NCManageDatabase.shared.addMetadata(metadataForCreateFolder)
79-
NotificationCenter.default.postOnMainThread(name: NCGlobal.shared.notificationCenterCreateFolder, userInfo: ["ocId": metadataForCreateFolder.ocId, "serverUrl": metadataForCreateFolder.serverUrl, "account": metadataForCreateFolder.account, "withPush": true, "sceneIdentifier": sceneIdentifier as Any])
58+
NCNetworking.shared.createFolder(fileName: fileNameFolder, serverUrl: serverUrl, overwrite: false, withPush: true, sceneIdentifier: sceneIdentifier, session: session) { error in
59+
if let completion = completion {
60+
DispatchQueue.main.async { completion(error) }
61+
} else if error != .success {
62+
NCContentPresenter().showError(error: error)
63+
} // else: successful, no action
64+
}
8065
}
8166
})
8267

@@ -96,7 +81,7 @@ extension UIAlertController {
9681
guard let text = alertController.textFields?.first?.text else { return }
9782
let folderName = text.trimmingCharacters(in: .whitespaces)
9883

99-
let textCheck = FileNameValidator.shared.checkFileName(folderName, account: account)
84+
let textCheck = FileNameValidator.shared.checkFileName(folderName, account: session.account)
10085
okAction.isEnabled = textCheck?.error == nil && !folderName.isEmpty
10186
alertController.message = textCheck?.error.localizedDescription
10287
}

iOSClient/Files/NCFiles.swift

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,10 @@ class NCFiles: NCCollectionViewCommon {
120120
// MARK: - DataSource
121121

122122
override func reloadDataSource() {
123+
guard !isSearchingMode else {
124+
return super.reloadDataSource()
125+
}
126+
123127
var predicate = self.defaultPredicate
124128
let predicateDirectory = NSPredicate(format: "account == %@ AND serverUrl == %@", session.account, self.serverUrl)
125129
let dataSourceMetadatas = self.dataSource.getMetadatas()

iOSClient/Main/Collection Common/NCCollectionViewCommon+CollectionViewDataSource.swift

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,13 @@ extension NCCollectionViewCommon: UICollectionViewDataSource {
143143
}
144144
}
145145

146+
// E2EE create preview
147+
if self.isDirectoryEncrypted,
148+
metadata.isImageOrVideo,
149+
!utilityFileSystem.fileProviderStorageImageExists(metadata.ocId, etag: metadata.etag) {
150+
utility.createImageFileFrom(metadata: metadata)
151+
}
152+
146153
// LAYOUT PHOTO
147154
if isLayoutPhoto {
148155
if metadata.isImageOrVideo {

iOSClient/Main/Collection Common/NCCollectionViewCommon.swift

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ class NCCollectionViewCommon: UIViewController, UIGestureRecognizerDelegate, UIS
4747
var backgroundImageView = UIImageView()
4848
var serverUrl: String = ""
4949
var isEditMode = false
50+
var isDirectoryEncrypted = false
5051
var fileSelect: [String] = []
5152
var metadataFolder: tableMetadata?
5253
var richWorkspaceText: String?
@@ -825,7 +826,7 @@ class NCCollectionViewCommon: UIViewController, UIGestureRecognizerDelegate, UIS
825826

826827
NCKeychain().setPersonalFilesOnly(account: self.session.account, value: !personalFilesOnly)
827828

828-
self.reloadDataSource()
829+
NotificationCenter.default.postOnMainThread(name: NCGlobal.shared.notificationCenterReloadDataSource, userInfo: ["serverUrl": self.serverUrl, "clearDataSource": true])
829830
self.setNavigationRightItems()
830831
}
831832

@@ -834,7 +835,7 @@ class NCCollectionViewCommon: UIViewController, UIGestureRecognizerDelegate, UIS
834835

835836
NCKeychain().showDescription = !showDescriptionKeychain
836837

837-
self.reloadDataSource()
838+
NotificationCenter.default.postOnMainThread(name: NCGlobal.shared.notificationCenterReloadDataSource, userInfo: ["serverUrl": self.serverUrl, "clearDataSource": true])
838839
self.setNavigationRightItems()
839840
}
840841
showDescription.subtitle = richWorkspaceText == nil ? NSLocalizedString("_no_description_available_", comment: "") : ""
@@ -1038,7 +1039,11 @@ class NCCollectionViewCommon: UIViewController, UIGestureRecognizerDelegate, UIS
10381039
// MARK: - DataSource
10391040

10401041
@objc func reloadDataSource() {
1041-
guard !session.account.isEmpty, !self.isSearchingMode else { return }
1042+
if isSearchingMode {
1043+
isDirectoryEncrypted = false
1044+
} else {
1045+
isDirectoryEncrypted = NCUtilityFileSystem().isDirectoryE2EE(session: session, serverUrl: serverUrl)
1046+
}
10421047

10431048
DispatchQueue.main.async {
10441049
UIView.transition(with: self.collectionView,

iOSClient/Menu/AppDelegate+Menu.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ extension AppDelegate {
105105
actions.append(
106106
NCMenuAction(title: titleCreateFolder,
107107
icon: imageCreateFolder, action: { _ in
108-
let alertController = UIAlertController.createFolder(serverUrl: serverUrl, account: session.account, sceneIdentifier: controller.sceneIdentifier)
108+
let alertController = UIAlertController.createFolder(serverUrl: serverUrl, session: session, sceneIdentifier: controller.sceneIdentifier)
109109
controller.present(alertController, animated: true, completion: nil)
110110
}
111111
)
@@ -117,7 +117,7 @@ extension AppDelegate {
117117
NCMenuAction(title: NSLocalizedString("_create_folder_e2ee_", comment: ""),
118118
icon: NCImageCache.shared.getFolderEncrypted(account: session.account),
119119
action: { _ in
120-
let alertController = UIAlertController.createFolder(serverUrl: serverUrl, account: session.account, markE2ee: true, sceneIdentifier: controller.sceneIdentifier)
120+
let alertController = UIAlertController.createFolder(serverUrl: serverUrl, session: session, markE2ee: true, sceneIdentifier: controller.sceneIdentifier)
121121
controller.present(alertController, animated: true, completion: nil)
122122
})
123123
)

0 commit comments

Comments
 (0)