marinofaggiana 5 жил өмнө
parent
commit
c555cb42f7

+ 1 - 1
File Provider Extension/FileProviderExtension+Thumbnail.swift

@@ -42,7 +42,7 @@ extension FileProviderExtension {
                 continue
             }
             
-            if (metadata.hasPreview == 1) {
+            if (metadata.hasPreview) {
                 
                 let width = NCUtility.sharedInstance.getScreenWidthForPreview()
                 let height = NCUtility.sharedInstance.getScreenHeightForPreview()

+ 1 - 1
iOSClient/CCGlobal.h

@@ -81,7 +81,7 @@
 
 // Database Realm
 #define k_databaseDefault                               @"nextcloud.realm"
-#define k_databaseSchemaVersion                         64
+#define k_databaseSchemaVersion                         68
 
 // Intro selector
 #define k_intro_login                                   0

+ 27 - 3
iOSClient/Database/NCDatabase.swift

@@ -323,6 +323,8 @@ class tableMedia: Object {
     
     @objc dynamic var account = ""
     @objc dynamic var assetLocalIdentifier = ""
+    @objc dynamic var commentsUnread: Bool = false
+    @objc dynamic var contentType = ""
     @objc dynamic var date = NSDate()
     @objc dynamic var directory: Bool = false
     @objc dynamic var e2eEncrypted: Bool = false
@@ -331,10 +333,17 @@ class tableMedia: Object {
     @objc dynamic var fileID = ""
     @objc dynamic var fileName = ""
     @objc dynamic var fileNameView = ""
-    @objc dynamic var hasPreview: Int = -1
+    @objc dynamic var hasPreview: Bool = false
     @objc dynamic var iconName = ""
+    @objc dynamic var mountType = ""
+    @objc dynamic var ocID = ""
+    @objc dynamic var ownerId = ""
+    @objc dynamic var ownerDisplayName = ""
     @objc dynamic var permissions = ""
     @objc dynamic var primaryKey = ""
+    @objc dynamic var quotaUsedBytes: Double = 0
+    @objc dynamic var quotaAvailableBytes: Double = 0
+    @objc dynamic var resourceType = ""
     @objc dynamic var serverUrl = ""
     @objc dynamic var session = ""
     @objc dynamic var sessionError = ""
@@ -342,6 +351,9 @@ class tableMedia: Object {
     @objc dynamic var sessionTaskIdentifier: Int = 0
     @objc dynamic var size: Double = 0
     @objc dynamic var status: Int = 0
+    @objc dynamic var trashbinFileName = ""
+    @objc dynamic var trashbinOriginalLocation = ""
+    @objc dynamic var trashbinDeletionTime = NSDate()
     @objc dynamic var typeFile = ""
     @objc dynamic var url = ""
     
@@ -354,6 +366,8 @@ class tableMetadata: Object {
     
     @objc dynamic var account = ""
     @objc dynamic var assetLocalIdentifier = ""
+    @objc dynamic var commentsUnread: Bool = false
+    @objc dynamic var contentType = ""
     @objc dynamic var date = NSDate()
     @objc dynamic var directory: Bool = false
     @objc dynamic var e2eEncrypted: Bool = false
@@ -362,10 +376,17 @@ class tableMetadata: Object {
     @objc dynamic var fileID = ""
     @objc dynamic var fileName = ""
     @objc dynamic var fileNameView = ""
-    @objc dynamic var hasPreview: Int = -1
+    @objc dynamic var hasPreview: Bool = false
     @objc dynamic var iconName = ""
+    @objc dynamic var mountType = ""
+    @objc dynamic var ocID = ""
+    @objc dynamic var ownerId = ""
+    @objc dynamic var ownerDisplayName = ""
     @objc dynamic var permissions = ""
     @objc dynamic var primaryKey = ""
+    @objc dynamic var quotaUsedBytes: Double = 0
+    @objc dynamic var quotaAvailableBytes: Double = 0
+    @objc dynamic var resourceType = ""
     @objc dynamic var serverUrl = ""
     @objc dynamic var session = ""
     @objc dynamic var sessionError = ""
@@ -373,6 +394,9 @@ class tableMetadata: Object {
     @objc dynamic var sessionTaskIdentifier: Int = 0
     @objc dynamic var size: Double = 0
     @objc dynamic var status: Int = 0
+    @objc dynamic var trashbinFileName = ""
+    @objc dynamic var trashbinOriginalLocation = ""
+    @objc dynamic var trashbinDeletionTime = NSDate()
     @objc dynamic var typeFile = ""
     @objc dynamic var url = ""
 
@@ -452,7 +476,7 @@ class tableTrash: Object {
     @objc dynamic var fileID = ""
     @objc dynamic var fileName = ""
     @objc dynamic var filePath = ""
-    @objc dynamic var hasPreview: Int = -1
+    @objc dynamic var hasPreview: Bool = false
     @objc dynamic var iconName = ""
     @objc dynamic var size: Double = 0
     @objc dynamic var typeFile = ""

+ 4 - 0
iOSClient/Database/NCManageDatabase.swift

@@ -61,6 +61,10 @@ class NCManageDatabase: NSObject {
                     migration.deleteData(forType: tableShare.className())
                 }
                 
+                if oldSchemaVersion < 68 {
+                    migration.deleteData(forType: tableMetadata.className())
+                }
+                
             }, shouldCompactOnLaunch: { totalBytes, usedBytes in
                 
                 // totalBytes refers to the size of the file on disk in bytes (data + free space)

+ 2 - 2
iOSClient/Library/OCCommunicationLib/OCFileDto.h

@@ -47,13 +47,13 @@
 @property (nonatomic, copy) NSString *etag;
 @property (nonatomic, copy) NSString *permissions;
 @property (nonatomic, copy) NSString *ocId;
-@property double id;
+@property (nonatomic, copy) NSString *fileId;
 @property BOOL isFavorite;
 @property BOOL isEncrypted;
 @property (nonatomic, copy) NSString *trashbinFileName;
 @property (nonatomic, copy) NSString *trashbinOriginalLocation;
 @property long trashbinDeletionTime;
-@property int hasPreview;
+@property BOOL hasPreview;
 @property (nonatomic, copy) NSString *displayName;
 @property (nonatomic, copy) NSString *contentType;
 @property (nonatomic, copy) NSString *resourceType;

+ 1 - 2
iOSClient/Library/OCCommunicationLib/OCFileDto.m

@@ -34,13 +34,12 @@
     
     if (self) {
         
-        self.hasPreview = -1;
         self.filePath = @"";
         self.fileName = @"";
         self.etag = @"";
         self.permissions = @"";
         self.ocId = @"";
-        self.id = 0;
+        self.fileId = @"";
         self.trashbinFileName = @"";
         self.trashbinOriginalLocation = @"";
         self.displayName = @"";

+ 1 - 1
iOSClient/Library/OCCommunicationLib/OCWebDavClient/Parsers/NCXMLListParser.m

@@ -162,7 +162,7 @@
         
     } else if ([elementName isEqualToString:@"oc:fileid"]  && [self.xmlChars length]) {
         
-        self.currentFile.id = (double)[_xmlChars doubleValue];
+        self.currentFile.fileId = [NSString stringWithString:self.xmlChars];
         
     } else if ([elementName isEqualToString:@"oc:size"] && [self.xmlChars length]) {
         

+ 1 - 1
iOSClient/Main/NCMainCommon.swift

@@ -1370,7 +1370,7 @@ class NCNetworkingMain: NSObject, CCNetworkingDelegate {
     
     func downloadThumbnail(with metadata: tableMetadata, view: Any, indexPath: IndexPath, closure: @escaping () -> ()) {
         
-        if !metadata.isInvalidated && metadata.hasPreview == 1 && (!CCUtility.fileProviderStorageIconExists(metadata.fileID, fileNameView: metadata.fileName) || metadata.typeFile == k_metadataTypeFile_document) {
+        if !metadata.isInvalidated && metadata.hasPreview && (!CCUtility.fileProviderStorageIconExists(metadata.fileID, fileNameView: metadata.fileName) || metadata.typeFile == k_metadataTypeFile_document) {
             
             let width = NCUtility.sharedInstance.getScreenWidthForPreview()
             let height = NCUtility.sharedInstance.getScreenHeightForPreview()

+ 1 - 1
iOSClient/Trash/NCTrash.swift

@@ -546,7 +546,7 @@ extension NCTrash: UICollectionViewDataSource {
         if FileManager().fileExists(atPath: CCUtility.getDirectoryProviderStorageIconFileID(tableTrash.fileID, fileNameView: tableTrash.fileName)) {
             image = UIImage.init(contentsOfFile: CCUtility.getDirectoryProviderStorageIconFileID(tableTrash.fileID, fileNameView: tableTrash.fileName))
         } else {
-            if tableTrash.hasPreview == 1 && !CCUtility.fileProviderStorageIconExists(tableTrash.fileID, fileNameView: tableTrash.fileName) {
+            if tableTrash.hasPreview && !CCUtility.fileProviderStorageIconExists(tableTrash.fileID, fileNameView: tableTrash.fileName) {
                 downloadThumbnail(with: tableTrash, indexPath: indexPath)
             }
         }

+ 15 - 9
iOSClient/Utility/CCUtility.m

@@ -1384,6 +1384,7 @@
     metadata.fileID = fileID;
     metadata.fileName = fileName;
     metadata.fileNameView = fileName;
+    metadata.ocID = fileID;
     metadata.primaryKey = [account stringByAppendingString:fileID];
     metadata.serverUrl = serverUrl;
     metadata.size = size;
@@ -1411,23 +1412,35 @@
     }
     
     metadata.account = account;
+    metadata.commentsUnread = itemDto.commentsUnread;
+    metadata.contentType = itemDto.contentType;
     metadata.date = [NSDate dateWithTimeIntervalSince1970:itemDto.date];
     metadata.directory = itemDto.isDirectory;
     metadata.e2eEncrypted = itemDto.isEncrypted;
     metadata.etag = itemDto.etag;
     metadata.favorite = itemDto.isFavorite;
-    metadata.fileID = itemDto.ocId;
+    metadata.fileID = itemDto.fileId;
     metadata.fileName = fileName;
     metadata.fileNameView = fileNameView;
     metadata.hasPreview = itemDto.hasPreview;
     metadata.iconName = @"";
+    metadata.mountType = itemDto.mountType;
+    metadata.ocID = itemDto.ocId;
+    metadata.ownerId = itemDto.ownerId;
+    metadata.ownerDisplayName = itemDto.ownerDisplayName;
     metadata.permissions = itemDto.permissions;
     metadata.primaryKey = [account stringByAppendingString:itemDto.ocId];
+    metadata.quotaUsedBytes = itemDto.quotaUsedBytes;
+    metadata.quotaAvailableBytes = itemDto.quotaAvailableBytes;
+    metadata.resourceType = itemDto.resourceType;
     metadata.serverUrl = serverUrl;
     metadata.sessionTaskIdentifier = k_taskIdentifierDone;
     metadata.size = itemDto.size;
     metadata.status = k_metadataStatusNormal;
     metadata.typeFile = @"";
+    metadata.trashbinFileName = itemDto.trashbinFileName;
+    metadata.trashbinOriginalLocation = itemDto.trashbinOriginalLocation;
+    metadata.trashbinDeletionTime = [NSDate dateWithTimeIntervalSince1970:itemDto.trashbinDeletionTime];
     
     [self insertTypeFileIconName:fileNameView metadata:metadata];
  
@@ -1456,14 +1469,6 @@
         ext = ext.uppercaseString;
         fileUTI = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, fileExtension, NULL);
 
-        // hasPreview
-        if (metadata.hasPreview == -1) {
-            if ([ext isEqualToString:@"JPG"] || [ext isEqualToString:@"PNG"] || [ext isEqualToString:@"JPEG"] || [ext isEqualToString:@"GIF"] || [ext isEqualToString:@"BMP"] || [ext isEqualToString:@"MP3"]  || [ext isEqualToString:@"MOV"]  || [ext isEqualToString:@"MP4"]  || [ext isEqualToString:@"M4V"] || [ext isEqualToString:@"3GP"])
-                metadata.hasPreview = 1;
-            else
-                metadata.hasPreview = 0;
-        }
-        
         // Type image
         if (UTTypeConformsTo(fileUTI, kUTTypeImage)) {
             metadata.typeFile = k_metadataTypeFile_image;
@@ -1481,6 +1486,7 @@
         }
         // Type Document [DOC] [PDF] [XLS] [TXT] (RTF = "public.rtf" - ODT = "org.oasis-open.opendocument.text") + isDocumentModifiableExtension
         else if (UTTypeConformsTo(fileUTI, kUTTypeContent) || [CCUtility isDocumentModifiableExtension:ext]) {
+            
             metadata.typeFile = k_metadataTypeFile_document;
             metadata.iconName = @"document";