Browse Source

table activity

Marino Faggiana 8 years ago
parent
commit
d5c0a940c0

+ 16 - 0
Nextcloud.xcodeproj/project.pbxproj

@@ -1200,6 +1200,14 @@
 		F7FB5F1D1E66EB7200389481 /* TableActivity+CoreDataClass.m in Sources */ = {isa = PBXBuildFile; fileRef = F7FB5F191E66EB7200389481 /* TableActivity+CoreDataClass.m */; };
 		F7FB5F1E1E66EB7200389481 /* TableActivity+CoreDataProperties.m in Sources */ = {isa = PBXBuildFile; fileRef = F7FB5F1B1E66EB7200389481 /* TableActivity+CoreDataProperties.m */; };
 		F7FB5F1F1E66EB7200389481 /* TableActivity+CoreDataProperties.m in Sources */ = {isa = PBXBuildFile; fileRef = F7FB5F1B1E66EB7200389481 /* TableActivity+CoreDataProperties.m */; };
+		F7FB5F201E66F0A400389481 /* TableActivity+CoreDataClass.m in Sources */ = {isa = PBXBuildFile; fileRef = F7FB5F191E66EB7200389481 /* TableActivity+CoreDataClass.m */; };
+		F7FB5F211E66F0A400389481 /* TableActivity+CoreDataClass.m in Sources */ = {isa = PBXBuildFile; fileRef = F7FB5F191E66EB7200389481 /* TableActivity+CoreDataClass.m */; };
+		F7FB5F221E66F0A500389481 /* TableActivity+CoreDataClass.m in Sources */ = {isa = PBXBuildFile; fileRef = F7FB5F191E66EB7200389481 /* TableActivity+CoreDataClass.m */; };
+		F7FB5F231E66F0A500389481 /* TableActivity+CoreDataClass.m in Sources */ = {isa = PBXBuildFile; fileRef = F7FB5F191E66EB7200389481 /* TableActivity+CoreDataClass.m */; };
+		F7FB5F241E66F0AA00389481 /* TableActivity+CoreDataProperties.m in Sources */ = {isa = PBXBuildFile; fileRef = F7FB5F1B1E66EB7200389481 /* TableActivity+CoreDataProperties.m */; };
+		F7FB5F251E66F0AA00389481 /* TableActivity+CoreDataProperties.m in Sources */ = {isa = PBXBuildFile; fileRef = F7FB5F1B1E66EB7200389481 /* TableActivity+CoreDataProperties.m */; };
+		F7FB5F261E66F0AB00389481 /* TableActivity+CoreDataProperties.m in Sources */ = {isa = PBXBuildFile; fileRef = F7FB5F1B1E66EB7200389481 /* TableActivity+CoreDataProperties.m */; };
+		F7FB5F271E66F0AB00389481 /* TableActivity+CoreDataProperties.m in Sources */ = {isa = PBXBuildFile; fileRef = F7FB5F1B1E66EB7200389481 /* TableActivity+CoreDataProperties.m */; };
 		F7FC7D561DC1F93800BB2C6A /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = F7FC7D551DC1F93800BB2C6A /* libz.tbd */; };
 		F7FC88FA1E140558006D0506 /* cryptocloud.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = F78088E51DD3A1DB005C5A7C /* cryptocloud.xcdatamodeld */; };
 		F7FC88FB1E141A34006D0506 /* BKPasscodeView.strings in Resources */ = {isa = PBXBuildFile; fileRef = F72B60911A24F00B004EF66F /* BKPasscodeView.strings */; };
@@ -5128,8 +5136,10 @@
 				08DC3C201E647FD200F036D3 /* TableLocalFile+CoreDataClass.m in Sources */,
 				08DC3C211E647FD200F036D3 /* CCConstant.swift in Sources */,
 				08DC3C221E647FD200F036D3 /* BKShiftingView.m in Sources */,
+				F7FB5F231E66F0A500389481 /* TableActivity+CoreDataClass.m in Sources */,
 				08DC3C231E647FD200F036D3 /* RNCryptor.m in Sources */,
 				08DC3C241E647FD200F036D3 /* TableAutomaticUpload+CoreDataProperties.m in Sources */,
+				F7FB5F271E66F0AB00389481 /* TableActivity+CoreDataProperties.m in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
@@ -5162,6 +5172,7 @@
 				08DC3C5B1E6482BF00F036D3 /* UIImage+Filtering.m in Sources */,
 				08DC3C5C1E6482BF00F036D3 /* UIImage+Saving.m in Sources */,
 				08DC3C5D1E6482BF00F036D3 /* UIImage+Rotating.m in Sources */,
+				F7FB5F221E66F0A500389481 /* TableActivity+CoreDataClass.m in Sources */,
 				08DC3C5E1E6482BF00F036D3 /* CCMetadata.m in Sources */,
 				08DC3C5F1E6482BF00F036D3 /* TableLocalFile+CoreDataProperties.m in Sources */,
 				08DC3C601E6482BF00F036D3 /* OCNetworking.m in Sources */,
@@ -5190,6 +5201,7 @@
 				08DC3C771E6482BF00F036D3 /* CCConstant.swift in Sources */,
 				08DC3C781E6482BF00F036D3 /* UIImage+Enhancing.m in Sources */,
 				08DC3C791E6482BF00F036D3 /* CCCellShareExt.m in Sources */,
+				F7FB5F261E66F0AB00389481 /* TableActivity+CoreDataProperties.m in Sources */,
 				08DC3C7A1E6482BF00F036D3 /* UICKeyChainStore.m in Sources */,
 				08DC3C7B1E6482BF00F036D3 /* TableDirectory+CoreDataProperties.m in Sources */,
 				08DC3C7C1E6482BF00F036D3 /* UIImage+Masking.m in Sources */,
@@ -5241,6 +5253,7 @@
 				F71459C31D12E3B700CAFEEC /* UIImage+Filtering.m in Sources */,
 				F71459C41D12E3B700CAFEEC /* UIImage+Saving.m in Sources */,
 				F71459C51D12E3B700CAFEEC /* UIImage+Rotating.m in Sources */,
+				F7FB5F201E66F0A400389481 /* TableActivity+CoreDataClass.m in Sources */,
 				F71459C61D12E3B700CAFEEC /* CCMetadata.m in Sources */,
 				F708CF771E56E8CC00271D8B /* TableLocalFile+CoreDataProperties.m in Sources */,
 				F71459C91D12E3B700CAFEEC /* OCNetworking.m in Sources */,
@@ -5269,6 +5282,7 @@
 				F7C994331E3A92C500C2466C /* CCConstant.swift in Sources */,
 				F71459E91D12E3B700CAFEEC /* UIImage+Enhancing.m in Sources */,
 				F71459EA1D12E3B700CAFEEC /* CCCellShareExt.m in Sources */,
+				F7FB5F241E66F0AA00389481 /* TableActivity+CoreDataProperties.m in Sources */,
 				F73CCE321DC13798007E38D8 /* UICKeyChainStore.m in Sources */,
 				F708CF831E56E8CC00271D8B /* TableDirectory+CoreDataProperties.m in Sources */,
 				F71459ED1D12E3B700CAFEEC /* UIImage+Masking.m in Sources */,
@@ -5358,8 +5372,10 @@
 				F708CF751E56E8CC00271D8B /* TableLocalFile+CoreDataClass.m in Sources */,
 				F7C994341E3A92C500C2466C /* CCConstant.swift in Sources */,
 				F74344601E127D4D001CC831 /* BKShiftingView.m in Sources */,
+				F7FB5F211E66F0A400389481 /* TableActivity+CoreDataClass.m in Sources */,
 				F74344831E127F80001CC831 /* RNCryptor.m in Sources */,
 				F708CF961E56E8CC00271D8B /* TableAutomaticUpload+CoreDataProperties.m in Sources */,
+				F7FB5F251E66F0AA00389481 /* TableActivity+CoreDataProperties.m in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};

+ 8 - 0
iOSClient/FileSystem/CCCoreData.h

@@ -33,8 +33,10 @@
 #import "CCExifGeo.h"
 #import "CCGraphics.h"
 #import "OCUserProfile.h"
+#import "OCActivity.h"
 
 #import "TableAccount+CoreDataClass.h"
+#import "TableActivity+CoreDataClass.h"
 #import "TableCertificates+CoreDataClass.h"
 #import "TableMetadata+CoreDataClass.h"
 #import "TableDirectory+CoreDataClass.h"
@@ -204,6 +206,12 @@
 
 + (NSArray *)getHomeOfflineActiveAccount:(NSString *)activeAccount directoryUser:(NSString *)directoryUser fieldOrder:(NSString *)fieldOrder ascending:(BOOL)ascending;
 
+// ===== Activity =====
+
++ (void)addActivity:(OCActivity *)activity account:(NSString *)account;
++ (NSArray *)getAllTableActivityWithPredicate:(NSPredicate *)predicate;
++ (NSInteger)getLastIDActivityActiveAccount:(NSString *)activeAccount;
+
 // ===== File System =====
 
 + (BOOL)downloadFile:(CCMetadata *)metadata directoryUser:(NSString *)directoryUser activeAccount:(NSString *)activeAccount;

+ 40 - 1
iOSClient/FileSystem/CCCoreData.m

@@ -107,7 +107,7 @@
 
 + (NSArray *)getAllAccount
 {
-    NSMutableArray *accounts = [[NSMutableArray alloc] init];
+    NSMutableArray *accounts = [NSMutableArray new];
     NSArray *records;
     
     NSManagedObjectContext *context = [NSManagedObjectContext MR_defaultContext];
@@ -1820,6 +1820,45 @@
     return [tableMetadatas sortedArrayUsingDescriptors:[NSArray arrayWithObjects:descriptor, nil]];//[NSArray arrayWithArray:tableMetadatas];
 }
 
+#pragma --------------------------------------------------------------------------------------------
+#pragma mark ===== Activity =====
+#pragma --------------------------------------------------------------------------------------------
+
++ (void)addActivity:(OCActivity *)activity account:(NSString *)account
+{
+    NSManagedObjectContext *context = [NSManagedObjectContext MR_defaultContext];
+    
+    TableActivity *record = [TableActivity MR_createEntityInContext:context];
+    
+    [TableActivity MR_deleteAllMatchingPredicate:[NSPredicate predicateWithFormat:@"(account == %@) AND (idActivity == %d)", account, activity.idActivity] inContext:context];
+    [context MR_saveToPersistentStoreAndWait];
+    
+    record.account = account;
+    record.date = activity.date;
+    record.file = activity.file;
+    record.link = activity.link;
+    record.message = activity.message;
+    record.subject = activity.subject;
+    
+    [context MR_saveToPersistentStoreAndWait];
+}
+
++ (NSArray *)getAllTableActivityWithPredicate:(NSPredicate *)predicate
+{
+    NSManagedObjectContext *context = [NSManagedObjectContext MR_defaultContext];
+    
+    return [TableActivity MR_findAllWithPredicate:predicate inContext:context];
+}
+
++ (NSInteger)getLastIDActivityActiveAccount:(NSString *)activeAccount
+{
+    //NSManagedObjectContext *context = [NSManagedObjectContext MR_defaultContext];
+    
+    NSNumber *lastID  = [TableActivity MR_aggregateOperation:@"max:" onAttribute:@"idActivity" withPredicate:[NSPredicate predicateWithFormat:@"(account == %@)", activeAccount]];
+    
+    return [lastID integerValue];
+}
+
 #pragma --------------------------------------------------------------------------------------------
 #pragma mark ===== File System =====
 #pragma --------------------------------------------------------------------------------------------

+ 2 - 0
iOSClient/Main/CCMain.m

@@ -1181,6 +1181,8 @@
     metadataNet.action = actionGetUserProfile;
     [app addNetworkingOperationQueue:app.netQueue delegate:self metadataNet:metadataNet];
     
+    NSInteger lastID = [CCCoreData getLastIDActivityActiveAccount:app.activeAccount];
+    
     metadataNet.action = actionGetActivityServer;
     [app addNetworkingOperationQueue:app.netQueue delegate:self metadataNet:metadataNet];
 }