CCUtility.h 9.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268
  1. //
  2. // CCUtility.h
  3. // Nextcloud
  4. //
  5. // Created by Marino Faggiana on 02/02/16.
  6. // Copyright (c) 2016 Marino Faggiana. All rights reserved.
  7. //
  8. // Author Marino Faggiana <marino.faggiana@nextcloud.com>
  9. //
  10. // This program is free software: you can redistribute it and/or modify
  11. // it under the terms of the GNU General Public License as published by
  12. // the Free Software Foundation, either version 3 of the License, or
  13. // (at your option) any later version.
  14. //
  15. // This program is distributed in the hope that it will be useful,
  16. // but WITHOUT ANY WARRANTY; without even the implied warranty of
  17. // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  18. // GNU General Public License for more details.
  19. //
  20. // You should have received a copy of the GNU General Public License
  21. // along with this program. If not, see <http://www.gnu.org/licenses/>.
  22. //
  23. #import <Foundation/Foundation.h>
  24. #import <MobileCoreServices/MobileCoreServices.h>
  25. #import <sys/utsname.h>
  26. #import <sys/sysctl.h>
  27. #import <AssetsLibrary/AssetsLibrary.h>
  28. #import <MessageUI/MessageUI.h>
  29. #import <UICKeyChainStore/UICKeyChainStore.h>
  30. #import <Photos/Photos.h>
  31. #import "OCFileDto.h"
  32. #import "CCGlobal.h"
  33. #import "CCGraphics.h"
  34. @class tableMetadata;
  35. @interface CCUtility : NSObject
  36. // ===== KeyChainStore =====
  37. // GET/SET
  38. + (void)deleteAllChainStore;
  39. + (void)storeAllChainInService;
  40. + (NSString *)getVersion;
  41. + (NSString *)setVersion;
  42. + (NSString *)getBuild;
  43. + (NSString *)setBuild;
  44. + (NSString *)getPasscode;
  45. + (void)setPasscode:(NSString *)passcode;
  46. + (BOOL)getNotPasscodeAtStart;
  47. + (void)setNotPasscodeAtStart:(BOOL)set;
  48. + (NSString *)getOrderSettings;
  49. + (void)setOrderSettings:(NSString *)order;
  50. + (BOOL)getAscendingSettings;
  51. + (void)setAscendingSettings:(BOOL)ascendente;
  52. + (NSString *)getGroupBySettings;
  53. + (void)setGroupBySettings:(NSString *)groupby;
  54. + (BOOL)getIntro;
  55. + (void)setIntro:(BOOL)set;
  56. + (NSString *)getIncrementalNumber;
  57. + (NSString *)getActiveAccountExt;
  58. + (void)setActiveAccountExt:(NSString *)activeAccount;
  59. + (NSString *)getServerUrlExt;
  60. + (void)setServerUrlExt:(NSString *)serverUrl;
  61. + (NSString *)getTitleServerUrlExt;
  62. + (void)setTitleServerUrlExt:(NSString *)titleServerUrl;
  63. + (NSString *)getFileNameExt;
  64. + (void)setFileNameExt:(NSString *)fileName;
  65. + (NSString *)getEmail;
  66. + (void)setEmail:(NSString *)email;
  67. + (NSString *)getHint;
  68. + (void)setHint:(NSString *)hint;
  69. + (BOOL)getDirectoryOnTop;
  70. + (void)setDirectoryOnTop:(BOOL)directoryOnTop;
  71. + (BOOL)getOriginalFileName:(NSString *)key;
  72. + (void)setOriginalFileName:(BOOL)value key:(NSString *)key;
  73. + (NSString *)getFileNameMask:(NSString *)key;
  74. + (void)setFileNameMask:(NSString *)mask key:(NSString *)key;
  75. + (BOOL)getFileNameType:(NSString *)key;
  76. + (void)setFileNameType:(BOOL)prefix key:(NSString *)key;
  77. + (BOOL)getFavoriteOffline;
  78. + (void)setFavoriteOffline:(BOOL)offline;
  79. + (BOOL)getActivityVerboseHigh;
  80. + (void)setActivityVerboseHigh:(BOOL)debug;
  81. + (BOOL)getShowHiddenFiles;
  82. + (void)setShowHiddenFiles:(BOOL)show;
  83. + (BOOL)getFormatCompatibility;
  84. + (void)setFormatCompatibility:(BOOL)set;
  85. + (NSString *)getEndToEndPublicKey:(NSString *)account;
  86. + (void)setEndToEndPublicKey:(NSString *)account publicKey:(NSString *)publicKey;
  87. + (NSString *)getEndToEndPrivateKey:(NSString *)account;
  88. + (void)setEndToEndPrivateKey:(NSString *)account privateKey:(NSString *)privateKey;
  89. + (NSString *)getEndToEndPassphrase:(NSString *)account;
  90. + (void)setEndToEndPassphrase:(NSString *)account passphrase:(NSString *)passphrase;
  91. + (NSString *)getEndToEndPublicKeyServer:(NSString *)account;
  92. + (void)setEndToEndPublicKeyServer:(NSString *)account publicKey:(NSString *)publicKey;
  93. + (BOOL)isEndToEndEnabled:(NSString *)account;
  94. + (void)clearAllKeysEndToEnd:(NSString *)account;
  95. + (BOOL)getDisableFilesApp;
  96. + (void)setDisableFilesApp:(BOOL)disable;
  97. + (void)setPushNotificationPublicKey:(NSString *)account data:(NSData *)data;
  98. + (NSData *)getPushNotificationPublicKey:(NSString *)account;
  99. + (void)setPushNotificationSubscribingPublicKey:(NSString *)account publicKey:(NSString *)publicKey;
  100. + (NSString *)getPushNotificationSubscribingPublicKey:(NSString *)account;
  101. + (void)setPushNotificationPrivateKey:(NSString *)account data:(NSData *)data;
  102. + (NSData *)getPushNotificationPrivateKey:(NSString *)account;
  103. + (void)setPushNotificationToken:(NSString *)account token:(NSString *)token;
  104. + (NSString *)getPushNotificationToken:(NSString *)account;
  105. + (void)setPushNotificationDeviceIdentifier:(NSString *)account deviceIdentifier:(NSString *)deviceIdentifier;
  106. + (NSString *)getPushNotificationDeviceIdentifier:(NSString *)account;
  107. + (void)setPushNotificationDeviceIdentifierSignature:(NSString *)account deviceIdentifierSignature:(NSString *)deviceIdentifierSignature;
  108. + (NSString *)getPushNotificationDeviceIdentifierSignature:(NSString *)account;
  109. + (void)clearAllKeysPushNotification:(NSString *)account;
  110. + (NSInteger)getMediaWidthImage;
  111. + (void)setMediaWidthImage:(NSInteger)width;
  112. + (BOOL)getDisableCrashservice;
  113. + (void)setDisableCrashservice:(BOOL)disable;
  114. + (void)setPassword:(NSString *)account password:(NSString *)password;
  115. + (NSString *)getPassword:(NSString *)account;
  116. + (void)setHCBusinessType:(NSString *)professions;
  117. + (NSString *)getHCBusinessType;
  118. + (NSData *)getDatabaseEncryptionKey;
  119. + (BOOL)getCertificateError:(NSString *)account;
  120. + (void)setCertificateError:(NSString *)account error:(BOOL)error;
  121. + (BOOL)getDisableLocalCacheAfterUpload;
  122. + (void)setDisableLocalCacheAfterUpload:(BOOL)disable;
  123. + (BOOL)getDarkMode;
  124. + (void)setDarkMode:(BOOL)disable;
  125. + (BOOL)getDarkModeDetect;
  126. + (void)setDarkModeDetect:(BOOL)disable;
  127. + (BOOL)getLivePhoto;
  128. + (void)setLivePhoto:(BOOL)set;
  129. // ===== Varius =====
  130. + (BOOL)addSkipBackupAttributeToItemAtURL:(NSURL *)URL;
  131. + (NSString *)getUserAgent;
  132. + (NSString *)dateDiff:(NSDate *) convertedDate;
  133. + (NSDate *)dateEnUsPosixFromCloud:(NSString *)dateString;
  134. + (NSString *)transformedSize:(double)value;
  135. + (NSString *)removeForbiddenCharactersServer:(NSString *)fileName;
  136. + (NSString *)removeForbiddenCharactersFileSystem:(NSString *)fileName;
  137. + (NSString *)stringAppendServerUrl:(NSString *)serverUrl addFileName:(NSString *)addFileName;
  138. + (NSString *)createRandomString:(int)numChars;
  139. + (NSString *)createFileNameDate:(NSString *)fileName extension:(NSString *)extension;
  140. + (NSString *)createFileName:(NSString *)fileName fileDate:(NSDate *)fileDate fileType:(PHAssetMediaType)fileType keyFileName:(NSString *)keyFileName keyFileNameType:(NSString *)keyFileNameType keyFileNameOriginal:(NSString *)keyFileNameOriginal;
  141. + (void)createDirectoryStandard;
  142. + (NSURL *)getDirectoryGroup;
  143. + (NSString *)getHomeServerUrlActiveUrl:(NSString *)activeUrl;
  144. + (NSString *)getStringUser:(NSString *)activeUser activeUrl:(NSString *)activeUrl;
  145. + (NSString *)getDirectoryActiveUser:(NSString *)activeUser activeUrl:(NSString *)activeUrl;
  146. + (NSString *)getDirectoryDocuments;
  147. + (NSString *)getDirectoryReaderMetadata;
  148. + (NSString *)getDirectoryAudio;
  149. + (NSString *)getDirectoryCerificates;
  150. + (NSString *)getDirectoryUserData;
  151. + (NSString *)getDirectoryProviderStorage;
  152. + (NSString *)getDirectoryProviderStorageOcId:(NSString *)ocId;
  153. + (NSString *)getDirectoryProviderStorageOcId:(NSString *)ocId fileNameView:(NSString *)fileNameView;
  154. + (NSString *)getDirectoryProviderStorageIconOcId:(NSString *)ocId fileNameView:(NSString *)fileNameView;
  155. + (BOOL)fileProviderStorageExists:(NSString *)ocId fileNameView:(NSString *)fileNameView;
  156. + (double)fileProviderStorageSize:(NSString *)ocId fileNameView:(NSString *)fileNameView;
  157. + (BOOL)fileProviderStorageIconExists:(NSString *)ocId fileNameView:(NSString *)fileNameView;
  158. + (void)removeGroupApplicationSupport;
  159. + (void)removeGroupLibraryDirectory;
  160. + (void)removeGroupDirectoryProviderStorage;
  161. + (void)removeDocumentsDirectory;
  162. + (void)removeTemporaryDirectory;
  163. + (void)emptyTemporaryDirectory;
  164. + (NSString *)getTitleSectionDate:(NSDate *)date;
  165. + (void)moveFileAtPath:(NSString *)atPath toPath:(NSString *)toPath;
  166. + (void)copyFileAtPath:(NSString *)atPath toPath:(NSString *)toPath;
  167. + (void)removeFileAtPath:(NSString *)atPath;
  168. + (void)createDirectoryAtPath:(NSString *)atPath;
  169. + (NSString *)deletingLastPathComponentFromServerUrl:(NSString *)serverUrl;
  170. + (NSString *)firtsPathComponentFromServerUrl:(NSString *)serverUrl activeUrl:(NSString *)activeUrl;
  171. + (NSString *)getLastPathFromServerUrl:(NSString *)serverUrl activeUrl:(NSString *)activeUrl;
  172. + (NSString *)returnPathfromServerUrl:(NSString *)serverUrl activeUrl:(NSString *)activeUrl;
  173. + (NSString *)returnFileNamePathFromFileName:(NSString *)metadataFileName serverUrl:(NSString *)serverUrl activeUrl:(NSString *)activeUrl;
  174. + (NSArray *)createNameSubFolder:(PHFetchResult *)assets;
  175. + (NSString *)getDirectoryScan;
  176. + (NSString *)getMimeType:(NSString *)fileNameView;
  177. + (void)writeData:(NSData *)data fileNamePath:(NSString *)fileNamePath;
  178. + (void)selectFileNameFrom:(UITextField *)textField;
  179. + (NSString *)getTimeIntervalSince197;
  180. + (void)extractImageVideoFromAssetLocalIdentifierForUpload:(tableMetadata *)metadata notification:(BOOL)notification completion:(void(^)(tableMetadata *newMetadata, NSString* fileNamePath))completion;
  181. // ===== E2E Encrypted =====
  182. + (NSString *)generateRandomIdentifier;
  183. + (BOOL)isFolderEncrypted:(NSString *)serverUrl e2eEncrypted:(BOOL)e2eEncrypted account:(NSString *)account;
  184. // ===== Third parts =====
  185. + (NSString *)stringValueForKey:(id)key conDictionary:(NSDictionary *)dictionary;
  186. + (NSString *)currentDevice;
  187. + (NSString *)getExtension:(NSString*)fileName;
  188. + (NSDate*)parseDateString:(NSString*)dateString;
  189. + (NSDate *)datetimeWithOutTime:(NSDate *)datDate;
  190. + (NSDate *)datetimeWithOutDate:(NSDate *)datDate;
  191. + (BOOL)isValidEmail:(NSString *)checkString;
  192. + (NSString *)URLEncodeStringFromString:(NSString *)string;
  193. + (NSString *)hexRepresentation:(NSData *)data spaces:(BOOL)spaces;
  194. + (NSString *)valueForKey:(NSString *)key fromQueryItems:(NSArray *)queryItems;
  195. @end