瀏覽代碼

Merge branch 'develop'

marinofaggiana 6 年之前
父節點
當前提交
c41482452a
共有 70 個文件被更改,包括 112 次插入364 次删除
  1. 12 18
      Nextcloud.xcodeproj/project.pbxproj
  2. 13 1
      iOSClient/AppDelegate.m
  3. 7 2
      iOSClient/Brand/File_Provider_Extension.plist
  4. 1 4
      iOSClient/Brand/NCBrand.swift
  5. 2 2
      iOSClient/Brand/Share.plist
  6. 2 2
      iOSClient/Brand/iOSClient.plist
  7. 1 1
      iOSClient/CCGlobal.h
  8. 5 0
      iOSClient/Database/NCDatabase.swift
  9. 5 2
      iOSClient/Database/NCManageDatabase.swift
  10. 7 0
      iOSClient/Library/OCCommunicationLib/HCFeatures.h
  11. 7 0
      iOSClient/Library/OCCommunicationLib/OCCapabilities.h
  12. 2 0
      iOSClient/Library/OCCommunicationLib/OCCapabilities.m
  13. 35 1
      iOSClient/Library/OCCommunicationLib/OCCommunication.m
  14. 3 4
      iOSClient/Library/OCCommunicationLib/OCWebDavClient/OCWebDAVClient.m
  15. 0 1
      iOSClient/Main/CCDetail.m
  16. 3 3
      iOSClient/Networking/NCService.swift
  17. 3 3
      iOSClient/Settings/CCManageAccount.m
  18. 1 1
      iOSClient/Settings/CCSettings.m
  19. 0 318
      iOSClient/Settings/HCEditProfile.swift
  20. 二進制
      iOSClient/Supporting Files/ast.lproj/Localizable.strings
  21. 二進制
      iOSClient/Supporting Files/ca.lproj/Localizable.strings
  22. 二進制
      iOSClient/Supporting Files/cs-CZ.lproj/Localizable.strings
  23. 二進制
      iOSClient/Supporting Files/da.lproj/Localizable.strings
  24. 二進制
      iOSClient/Supporting Files/de.lproj/Localizable.strings
  25. 二進制
      iOSClient/Supporting Files/el.lproj/Localizable.strings
  26. 二進制
      iOSClient/Supporting Files/en-GB.lproj/Localizable.strings
  27. 3 1
      iOSClient/Supporting Files/en.lproj/Localizable.strings
  28. 二進制
      iOSClient/Supporting Files/es-419.lproj/Localizable.strings
  29. 二進制
      iOSClient/Supporting Files/es-AR.lproj/Localizable.strings
  30. 二進制
      iOSClient/Supporting Files/es-CL.lproj/Localizable.strings
  31. 二進制
      iOSClient/Supporting Files/es-CO.lproj/Localizable.strings
  32. 二進制
      iOSClient/Supporting Files/es-CR.lproj/Localizable.strings
  33. 二進制
      iOSClient/Supporting Files/es-DO.lproj/Localizable.strings
  34. 二進制
      iOSClient/Supporting Files/es-EC.lproj/Localizable.strings
  35. 二進制
      iOSClient/Supporting Files/es-GT.lproj/Localizable.strings
  36. 二進制
      iOSClient/Supporting Files/es-HN.lproj/Localizable.strings
  37. 二進制
      iOSClient/Supporting Files/es-MX.lproj/Localizable.strings
  38. 二進制
      iOSClient/Supporting Files/es-NI.lproj/Localizable.strings
  39. 二進制
      iOSClient/Supporting Files/es-PA.lproj/Localizable.strings
  40. 二進制
      iOSClient/Supporting Files/es-PE.lproj/Localizable.strings
  41. 二進制
      iOSClient/Supporting Files/es-PR.lproj/Localizable.strings
  42. 二進制
      iOSClient/Supporting Files/es-PY.lproj/Localizable.strings
  43. 二進制
      iOSClient/Supporting Files/es-SV.lproj/Localizable.strings
  44. 二進制
      iOSClient/Supporting Files/es-UY.lproj/Localizable.strings
  45. 二進制
      iOSClient/Supporting Files/es.lproj/Localizable.strings
  46. 二進制
      iOSClient/Supporting Files/eu.lproj/Localizable.strings
  47. 二進制
      iOSClient/Supporting Files/fa.lproj/Localizable.strings
  48. 二進制
      iOSClient/Supporting Files/fi-FI.lproj/Localizable.strings
  49. 二進制
      iOSClient/Supporting Files/fr.lproj/Localizable.strings
  50. 二進制
      iOSClient/Supporting Files/gl.lproj/Localizable.strings
  51. 二進制
      iOSClient/Supporting Files/hu.lproj/Localizable.strings
  52. 二進制
      iOSClient/Supporting Files/is.lproj/Localizable.strings
  53. 二進制
      iOSClient/Supporting Files/it.lproj/Localizable.strings
  54. 二進制
      iOSClient/Supporting Files/ja-JP.lproj/Localizable.strings
  55. 二進制
      iOSClient/Supporting Files/ka-GE.lproj/Localizable.strings
  56. 二進制
      iOSClient/Supporting Files/ko.lproj/Localizable.strings
  57. 二進制
      iOSClient/Supporting Files/lt_LT.lproj/Localizable.strings
  58. 二進制
      iOSClient/Supporting Files/nb-NO.lproj/Localizable.strings
  59. 二進制
      iOSClient/Supporting Files/nl.lproj/Localizable.strings
  60. 二進制
      iOSClient/Supporting Files/pl.lproj/Localizable.strings
  61. 二進制
      iOSClient/Supporting Files/pt-BR.lproj/Localizable.strings
  62. 二進制
      iOSClient/Supporting Files/pt-PT.lproj/Localizable.strings
  63. 二進制
      iOSClient/Supporting Files/ru.lproj/Localizable.strings
  64. 二進制
      iOSClient/Supporting Files/sk-SK.lproj/Localizable.strings
  65. 二進制
      iOSClient/Supporting Files/sq.lproj/Localizable.strings
  66. 二進制
      iOSClient/Supporting Files/sr.lproj/Localizable.strings
  67. 二進制
      iOSClient/Supporting Files/sv.lproj/Localizable.strings
  68. 二進制
      iOSClient/Supporting Files/tr.lproj/Localizable.strings
  69. 二進制
      iOSClient/Supporting Files/zh-Hans.lproj/Localizable.strings
  70. 二進制
      iOSClient/Supporting Files/zh-Hant-TW.lproj/Localizable.strings

+ 12 - 18
Nextcloud.xcodeproj/project.pbxproj

@@ -377,7 +377,6 @@
 		F77B0F8A1D118A16002130FE /* CCCellMain.xib in Resources */ = {isa = PBXBuildFile; fileRef = F70211F61BAC56E9003FC03E /* CCCellMain.xib */; };
 		F77B0F8C1D118A16002130FE /* CCCellMainTransfer.xib in Resources */ = {isa = PBXBuildFile; fileRef = F70211F91BAC56E9003FC03E /* CCCellMainTransfer.xib */; };
 		F77D49A91DC238E500CDC568 /* loading.gif in Resources */ = {isa = PBXBuildFile; fileRef = F77D49A71DC238E500CDC568 /* loading.gif */; };
-		F77D9ACB22672CAD00C981EA /* HCEditProfile.swift in Sources */ = {isa = PBXBuildFile; fileRef = F77D9ACA22672CAD00C981EA /* HCEditProfile.swift */; };
 		F77EB6281EC08036003F814F /* CCExifGeo.m in Sources */ = {isa = PBXBuildFile; fileRef = F7A54C351C6267B500E2C8BF /* CCExifGeo.m */; };
 		F77EB62A1EC0B50A003F814F /* CCCertificate.m in Sources */ = {isa = PBXBuildFile; fileRef = F7F801011D98205A007537BC /* CCCertificate.m */; };
 		F78071091EDAB65800EAFFF6 /* NSNotificationCenter+MainThread.m in Sources */ = {isa = PBXBuildFile; fileRef = F78071081EDAB65800EAFFF6 /* NSNotificationCenter+MainThread.m */; };
@@ -1124,7 +1123,6 @@
 		F777F0301C29717F00CE81CB /* PHAsset+Utility.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "PHAsset+Utility.h"; sourceTree = "<group>"; };
 		F777F0311C29717F00CE81CB /* PHAsset+Utility.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "PHAsset+Utility.m"; sourceTree = "<group>"; };
 		F77D49A71DC238E500CDC568 /* loading.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = loading.gif; sourceTree = "<group>"; };
-		F77D9ACA22672CAD00C981EA /* HCEditProfile.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HCEditProfile.swift; sourceTree = "<group>"; };
 		F78071071EDAB65800EAFFF6 /* NSNotificationCenter+MainThread.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSNotificationCenter+MainThread.h"; sourceTree = "<group>"; };
 		F78071081EDAB65800EAFFF6 /* NSNotificationCenter+MainThread.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSNotificationCenter+MainThread.m"; sourceTree = "<group>"; };
 		F781996722636BFA00EBDF6A /* HCFeatures.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HCFeatures.h; sourceTree = "<group>"; };
@@ -2345,7 +2343,6 @@
 				F7ACE42C1BAC0268006C0017 /* CCManageAccount.h */,
 				F7ACE42D1BAC0268006C0017 /* CCManageAccount.m */,
 				F75AC2421F1F62450073EC19 /* NCManageAutoUploadFileName.swift */,
-				F77D9ACA22672CAD00C981EA /* HCEditProfile.swift */,
 				F7ACE42E1BAC0268006C0017 /* CCManageAutoUpload.h */,
 				F7ACE42F1BAC0268006C0017 /* CCManageAutoUpload.m */,
 				F7ACE4301BAC0268006C0017 /* CCSettings.h */,
@@ -3635,7 +3632,6 @@
 				F762CAFA1EACB66200B38484 /* XLFormDateCell.m in Sources */,
 				F70022B91EC4C9100080073F /* OCCommunication.m in Sources */,
 				F762CB181EACB66200B38484 /* XLFormValidationStatus.m in Sources */,
-				F77D9ACB22672CAD00C981EA /* HCEditProfile.swift in Sources */,
 				F73B4EF91F470D9100BBEE4B /* LangEsperantoModel.cpp in Sources */,
 				F77B0E8F1D118A16002130FE /* CCSection.m in Sources */,
 				F7CA1ED720E7E3FE002CC65E /* PKDownloadButton.m in Sources */,
@@ -3836,7 +3832,6 @@
 					"$(inherited)",
 					EXTENSION,
 					EXTENSION_SHARE,
-					NC,
 				);
 				HEADER_SEARCH_PATHS = "\"Libraries external\"/**";
 				INFOPLIST_FILE = "$(SRCROOT)/iOSClient/Brand/Share.plist";
@@ -3878,7 +3873,6 @@
 					"$(inherited)",
 					EXTENSION,
 					EXTENSION_SHARE,
-					NC,
 				);
 				HEADER_SEARCH_PATHS = "\"Libraries external\"/**";
 				INFOPLIST_FILE = "$(SRCROOT)/iOSClient/Brand/Share.plist";
@@ -3926,7 +3920,6 @@
 					"$(inherited)",
 					EXTENSION,
 					EXTENSION_FILE_PROVIDER_EXTENSION,
-					NC,
 				);
 				HEADER_SEARCH_PATHS = "\"Libraries external\"/**";
 				INFOPLIST_FILE = "$(SRCROOT)/iOSClient/Brand/File_Provider_Extension.plist";
@@ -3972,9 +3965,9 @@
 				GCC_C_LANGUAGE_STANDARD = gnu11;
 				GCC_PREFIX_HEADER = iOSClient/CryptoCloud.pch;
 				GCC_PREPROCESSOR_DEFINITIONS = (
+					"$(inherited)",
 					EXTENSION,
 					EXTENSION_FILE_PROVIDER_EXTENSION,
-					NC,
 				);
 				HEADER_SEARCH_PATHS = "\"Libraries external\"/**";
 				INFOPLIST_FILE = "$(SRCROOT)/iOSClient/Brand/File_Provider_Extension.plist";
@@ -4012,17 +4005,14 @@
 				);
 				GCC_PRECOMPILE_PREFIX_HEADER = YES;
 				GCC_PREFIX_HEADER = iOSClient/CryptoCloud.pch;
-				GCC_PREPROCESSOR_DEFINITIONS = (
-					"$(inherited)",
-					NC,
-				);
+				GCC_PREPROCESSOR_DEFINITIONS = "$(inherited)";
 				HEADER_SEARCH_PATHS = "\"Libraries external\"/**";
 				INFOPLIST_FILE = "$(SRCROOT)/iOSClient/Brand/iOSClient.plist";
 				IPHONEOS_DEPLOYMENT_TARGET = 10.0;
 				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
 				LIBRARY_SEARCH_PATHS = "\"Libraries external/openssl\"";
 				OTHER_LDFLAGS = "-ObjC";
-				OTHER_SWIFT_FLAGS = "-DDEBUG";
+				OTHER_SWIFT_FLAGS = "";
 				PRODUCT_BUNDLE_IDENTIFIER = "it.twsweb.$(PRODUCT_NAME:rfc1034identifier)";
 				PRODUCT_NAME = "$(TARGET_NAME)";
 				PROVISIONING_PROFILE = "";
@@ -4058,10 +4048,7 @@
 				);
 				GCC_PRECOMPILE_PREFIX_HEADER = YES;
 				GCC_PREFIX_HEADER = iOSClient/CryptoCloud.pch;
-				GCC_PREPROCESSOR_DEFINITIONS = (
-					"$(inherited)",
-					NC,
-				);
+				GCC_PREPROCESSOR_DEFINITIONS = "$(inherited)";
 				HEADER_SEARCH_PATHS = "\"Libraries external\"/**";
 				INFOPLIST_FILE = "$(SRCROOT)/iOSClient/Brand/iOSClient.plist";
 				IPHONEOS_DEPLOYMENT_TARGET = 10.0;
@@ -4117,8 +4104,9 @@
 				GCC_NO_COMMON_BLOCKS = YES;
 				GCC_OPTIMIZATION_LEVEL = 0;
 				GCC_PREPROCESSOR_DEFINITIONS = (
-					"DEBUG=1",
 					"$(inherited)",
+					"DEBUG=1",
+					NC,
 				);
 				GCC_SYMBOLS_PRIVATE_EXTERN = NO;
 				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
@@ -4135,6 +4123,7 @@
 					"-all_load",
 				);
 				SDKROOT = iphoneos;
+				SWIFT_ACTIVE_COMPILATION_CONDITIONS = NC;
 				SWIFT_SWIFT3_OBJC_INFERENCE = Off;
 			};
 			name = Debug;
@@ -4173,6 +4162,10 @@
 				ENABLE_STRICT_OBJC_MSGSEND = YES;
 				GCC_C_LANGUAGE_STANDARD = gnu99;
 				GCC_NO_COMMON_BLOCKS = YES;
+				GCC_PREPROCESSOR_DEFINITIONS = (
+					"$(inherited)",
+					NC,
+				);
 				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
 				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
 				GCC_WARN_UNDECLARED_SELECTOR = YES;
@@ -4186,6 +4179,7 @@
 					"-all_load",
 				);
 				SDKROOT = iphoneos;
+				SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG NC";
 				SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
 				SWIFT_SWIFT3_OBJC_INFERENCE = Off;
 				VALIDATE_PRODUCT = YES;

+ 13 - 1
iOSClient/AppDelegate.m

@@ -261,7 +261,19 @@ PKPushRegistry *pushRegistry;
     if ([[NCBrandOptions sharedInstance] use_middlewarePing]) {
         NSLog(@"[LOG] Middleware Ping");
         [[NCService sharedInstance] middlewarePing];
-    }    
+    }
+    
+    // Brand
+#if defined(HC)
+    tableAccount *account = [[NCManageDatabase sharedInstance] getAccountActive];
+    if (account.hcIsTrial == true) {
+        
+        HCTrial *vc = [[UIStoryboard storyboardWithName:@"HCTrial" bundle:nil] instantiateInitialViewController];
+        vc.account = account;
+        
+        [self.window.rootViewController presentViewController:vc animated:YES completion:nil];
+    }
+#endif
 }
 
 //

+ 7 - 2
iOSClient/Brand/File_Provider_Extension.plist

@@ -17,9 +17,14 @@
 	<key>CFBundlePackageType</key>
 	<string>XPC!</string>
 	<key>CFBundleShortVersionString</key>
-	<string>2.23.4</string>
+	<string>2.23.5</string>
 	<key>CFBundleVersion</key>
-	<string>10</string>
+	<string>1</string>
+	<key>NSAppTransportSecurity</key>
+	<dict>
+		<key>NSAllowsArbitraryLoads</key>
+		<true/>
+	</dict>
 	<key>NSExtension</key>
 	<dict>
 		<key>NSExtensionFileProviderDocumentGroup</key>

+ 1 - 4
iOSClient/Brand/NCBrand.swift

@@ -71,7 +71,6 @@ class NCBrandColor: NSObject {
     }()
     
     @objc public let brand:                             String = "Nextcloud"
-    @objc public var brandInitials:                     String = "nc"                                               // Don't touch me !!
     @objc public let mailMe:                            String = "ios@nextcloud.com"
     @objc public let textCopyrightNextcloudiOS:         String = "Nextcloud for iOS %@ © 2019"
     @objc public let textCopyrightNextcloudServer:      String = "Nextcloud Server %@"
@@ -114,9 +113,7 @@ class NCBrandColor: NSObject {
         
         if folderBrandAutoUpload != "" {
             folderDefaultAutoUpload = folderBrandAutoUpload
-        }
-        
-        brandInitials = brandInitials.lowercased()
+        }        
     }
 }
 

+ 2 - 2
iOSClient/Brand/Share.plist

@@ -17,9 +17,9 @@
 	<key>CFBundlePackageType</key>
 	<string>XPC!</string>
 	<key>CFBundleShortVersionString</key>
-	<string>2.23.4</string>
+	<string>2.23.5</string>
 	<key>CFBundleVersion</key>
-	<string>10</string>
+	<string>1</string>
 	<key>NSAppTransportSecurity</key>
 	<dict>
 		<key>NSAllowsArbitraryLoads</key>

+ 2 - 2
iOSClient/Brand/iOSClient.plist

@@ -46,11 +46,11 @@
 	<key>CFBundlePackageType</key>
 	<string>APPL</string>
 	<key>CFBundleShortVersionString</key>
-	<string>2.23.4</string>
+	<string>2.23.5</string>
 	<key>CFBundleSignature</key>
 	<string>????</string>
 	<key>CFBundleVersion</key>
-	<string>10</string>
+	<string>1</string>
 	<key>FIREBASE_ANALYTICS_COLLECTION_DEACTIVATED</key>
 	<true/>
 	<key>Fabric</key>

+ 1 - 1
iOSClient/CCGlobal.h

@@ -82,7 +82,7 @@
 
 // Database Realm
 #define k_databaseDefault                               @"nextcloud.realm"
-#define k_databaseSchemaVersion                         49
+#define k_databaseSchemaVersion                         50
 
 // Intro selector
 #define k_intro_login                                   0

+ 5 - 0
iOSClient/Database/NCDatabase.swift

@@ -185,6 +185,11 @@ class tableCapabilities: Object {
     @objc dynamic var isFileSharingShareByMailEnabled: Bool = false
     @objc dynamic var isFileSharingShareByMailPassword: Bool = false
     @objc dynamic var isFileSharingShareByMailUploadFilesDrop: Bool = false
+    // HC
+    @objc dynamic var isHandwerkcloudEnabled: Bool = false
+    @objc dynamic var HCShopUrl = ""
+    // Imagemeter
+    @objc dynamic var isImagemeterEnabled: Bool = false
 }
 
 class tableCertificates: Object {

+ 5 - 2
iOSClient/Database/NCManageDatabase.swift

@@ -810,12 +810,15 @@ class NCManageDatabase: NSObject {
                 resultCapabilities.isFileSharingShareByMailEnabled = capabilities.isFileSharingShareByMailEnabled
                 resultCapabilities.isFileSharingShareByMailPassword = capabilities.isFileSharingShareByMailPassword
                 resultCapabilities.isFileSharingShareByMailUploadFilesDrop = capabilities.isFileSharingShareByMailUploadFilesDrop
+                // HC
+                resultCapabilities.isHandwerkcloudEnabled = capabilities.isHandwerkcloudEnabled
+                resultCapabilities.HCShopUrl = capabilities.hcShopUrl
+                // Imagemeter
+                resultCapabilities.isImagemeterEnabled = capabilities.isImagemeterEnabled
                 
                 if result == nil {
                     realm.add(resultCapabilities)
                 }
-                
-                
             }
         } catch let error {
             print("[LOG] Could not write to database: ", error)

+ 7 - 0
iOSClient/Library/OCCommunicationLib/HCFeatures.h

@@ -29,9 +29,16 @@
 @property double trialRemainingSec;
 @property double trialEndTime;
 @property (nonatomic, strong) NSString *trialEnd;
+
 @property BOOL accountRemoveExpired;
 @property double accountRemoveRemainingSec;
 @property double accountRemoveTime;
 @property (nonatomic, strong) NSString *accountRemove;
 
+@property (nonatomic, strong) NSString *nextGroupExpirationGroup;
+@property BOOL nextGroupExpirationGroupExpired;
+@property double nextGroupExpirationExpiresTime;
+@property (nonatomic, strong) NSString *nextGroupExpirationExpires;
+
+
 @end

+ 7 - 0
iOSClient/Library/OCCommunicationLib/OCCapabilities.h

@@ -108,4 +108,11 @@
 @property (nonatomic) BOOL isActivityV2Enabled;
 @property (nonatomic, strong) NSString *activityV2;
 
+// HC
+@property (nonatomic) BOOL isHandwerkcloudEnabled;
+@property (nonatomic, strong) NSString *HCShopUrl;
+
+// Imagemeter
+@property (nonatomic) BOOL isImagemeterEnabled;
+
 @end

+ 2 - 0
iOSClient/Library/OCCommunicationLib/OCCapabilities.m

@@ -39,6 +39,8 @@
         self.spreedFeatures = @"";
         
         self.richdocumentsMimetypes = [NSArray new];
+        
+        self.HCShopUrl = @"";
     }
     return self;
 }

+ 35 - 1
iOSClient/Library/OCCommunicationLib/OCCommunication.m

@@ -1559,6 +1559,25 @@
                     capabilities.richdocumentsDirectEditing = [[richdocuments valueForKey:@"direct_editing"] boolValue];
                     capabilities.richdocumentsMimetypes = [richdocuments valueForKey:@"mimetypes"];
                 }
+                
+                //Handwerkcloud
+                
+                NSDictionary *handwerkcloudDic = [capabilitiesDict valueForKey:@"handwerkcloud"];
+                if (handwerkcloudDic) {
+                    NSNumber *isHandwerkcloudEnabledNumber = (NSNumber*)[handwerkcloudDic valueForKey:@"enabled"];
+                    capabilities.isHandwerkcloudEnabled = isHandwerkcloudEnabledNumber.boolValue;
+                    
+                    if ([handwerkcloudDic valueForKey:@"shop_url"] && ![[handwerkcloudDic valueForKey:@"shop_url"] isEqual:[NSNull null]])
+                        capabilities.HCShopUrl = [handwerkcloudDic valueForKey:@"shop_url"];
+                }
+                
+                //Imagemeter
+                
+                NSDictionary *imagemeterDic = [capabilitiesDict valueForKey:@"imagemeter"];
+                if (imagemeterDic) {
+                    NSNumber *isImagemeterEnabledNumber = (NSNumber*)[imagemeterDic valueForKey:@"enabled"];
+                    capabilities.isImagemeterEnabled = isImagemeterEnabledNumber.boolValue;
+                }
             }
         
             successRequest(response, capabilities, request.redirectedServer);
@@ -3240,7 +3259,7 @@
         //Parse
         NSError *error;
         NSDictionary *jsongParsed = [NSJSONSerialization JSONObjectWithData:responseData options:NSJSONReadingMutableContainers error:&error];
-        NSLog(@"[LOG] User Profile : %@",jsongParsed);
+        NSLog(@"[LOG] User Profile Features : %@",jsongParsed);
         
         if (jsongParsed && jsongParsed.allKeys > 0) {
             
@@ -3280,6 +3299,21 @@
                 if ([data valueForKey:@"account_remove"] && ![[data valueForKey:@"account_remove"] isKindOfClass:[NSNull class]])
                     features.accountRemove = [data valueForKey:@"account_remove"];
                 
+                NSDictionary *nextGroupExpirationDic = [data valueForKey:@"next_group_expiration"];
+                if (nextGroupExpirationDic) {
+                    if ([nextGroupExpirationDic valueForKey:@"group"] && ![[nextGroupExpirationDic valueForKey:@"group"] isKindOfClass:[NSNull class]])
+                        features.nextGroupExpirationGroup = [data valueForKey:@"group"];
+                    
+                    if ([nextGroupExpirationDic valueForKey:@"group_expired"] && ![[nextGroupExpirationDic valueForKey:@"group_expired"] isKindOfClass:[NSNull class]])
+                        features.nextGroupExpirationGroupExpired = [[nextGroupExpirationDic valueForKey:@"group_expired"] boolValue];
+                    
+                    if ([nextGroupExpirationDic valueForKey:@"expires_time"] && ![[nextGroupExpirationDic valueForKey:@"expires_time"] isKindOfClass:[NSNull class]])
+                        features.nextGroupExpirationExpiresTime = [[nextGroupExpirationDic valueForKey:@"expires_time"] integerValue];
+                    
+                    if ([nextGroupExpirationDic valueForKey:@"expires"] && ![[nextGroupExpirationDic valueForKey:@"expires"] isKindOfClass:[NSNull class]])
+                        features.nextGroupExpirationExpires = [data valueForKey:@"expires"];
+                }
+                
                 successRequest(response, features, request.redirectedServer);
                 
             } else {

+ 3 - 4
iOSClient/Library/OCCommunicationLib/OCWebDavClient/OCWebDAVClient.m

@@ -449,13 +449,12 @@ NSString const *OCWebDAVModificationDateKey	= @"modificationdate";
     
     //We add the cookies of that URL
     request = [UtilsFramework getRequestWithCookiesByRequest:request andOriginalUrlServer:self.originalUrlServer];
-    
-    NSURL *localDestinationUrl = [NSURL fileURLWithPath:localDestination];
-    
+        
     NSURLSessionDownloadTask *downloadTask = [sharedOCCommunication.downloadSessionManager downloadTaskWithRequest:request progress:^(NSProgress * _Nonnull progress) {
         downloadProgress(progress);
     } destination:^NSURL * _Nonnull(NSURL * _Nonnull targetPath, NSURLResponse * _Nonnull response) {
-        return localDestinationUrl;
+        [[NSFileManager defaultManager] removeItemAtURL:[NSURL fileURLWithPath:localDestination] error:nil];
+        return [NSURL fileURLWithPath:localDestination];
     } completionHandler:^(NSURLResponse * _Nonnull response, NSURL * _Nullable filePath, NSError * _Nullable error) {
         if (error) {
             failure(response, error);

+ 0 - 1
iOSClient/Main/CCDetail.m

@@ -26,7 +26,6 @@
 #import "CCMain.h"
 #import "NCUchardet.h"
 #import "NCBridgeSwift.h"
-#import <KTVHTTPCache/KTVHTTPCache.h>
 
 #import "NCBridgeSwift.h"
 

+ 3 - 3
iOSClient/Networking/NCService.swift

@@ -48,9 +48,9 @@ class NCService: NSObject {
         self.requestListTrash()
         
         // Thirt Part
-        if NCBrandOptions.sharedInstance.brandInitials == "hc" {
-            self.requestHC()
-        }
+#if HC
+        self.requestHC()
+#endif
     }
 
     //MARK: -

+ 3 - 3
iOSClient/Settings/CCManageAccount.m

@@ -232,8 +232,8 @@
     
     // Section : THIRT PART -------------------------------------------
 
-    if ([NCBrandOptions.sharedInstance.brandInitials isEqualToString:@"hc"]) {
-    
+#if defined(HC)
+
         section = [XLFormSectionDescriptor formSectionWithTitle:NSLocalizedString(@"_user_job_", nil)];
         [form addFormSection:section];
         
@@ -284,7 +284,7 @@
         row.action.viewControllerClass = [HCEditProfile class];
         if (listAccount.count == 0) row.disabled = @YES;
         [section addFormRow:row];
-    }
+#endif
     
     self.form = form;
     

+ 1 - 1
iOSClient/Settings/CCSettings.m

@@ -253,7 +253,7 @@
         
         if ([[rowDescriptor.value valueData] boolValue] == YES) {
             
-            UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"" message:NSLocalizedString(@"_continue_", nil) preferredStyle:UIAlertControllerStyleActionSheet];
+            UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"" message:NSLocalizedString(@"_continue_request_", nil) preferredStyle:UIAlertControllerStyleActionSheet];
             
             [alertController addAction: [UIAlertAction actionWithTitle:NSLocalizedString(@"_ok_", nil) style:UIAlertActionStyleDestructive handler:^(UIAlertAction *action) {
                 [CCUtility setFavoriteOffline:true];

+ 0 - 318
iOSClient/Settings/HCEditProfile.swift

@@ -1,318 +0,0 @@
-//
-//  HCEditProfile.swift
-//  Nextcloud iOS
-//
-//  Created by Marino Faggiana on 17/04/19.
-//  Copyright (c) 2019 Marino Faggiana. All rights reserved.
-//
-//  Author Marino Faggiana <marino.faggiana@nextcloud.com>
-//
-//  This program is free software: you can redistribute it and/or modify
-//  it under the terms of the GNU General Public License as published by
-//  the Free Software Foundation, either version 3 of the License, or
-//  (at your option) any later version.
-//
-//  This program is distributed in the hope that it will be useful,
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-//  GNU General Public License for more details.
-//
-//  You should have received a copy of the GNU General Public License
-//  along with this program.  If not, see <http://www.gnu.org/licenses/>.
-//
-
-import Foundation
-
-class HCEditProfile: XLFormViewController {
-    
-    let appDelegate = UIApplication.shared.delegate as! AppDelegate
-    var tableAccount: tableAccount!
-
-    required init(coder aDecoder: NSCoder) {
-        super.init(coder: aDecoder)
-    }
-    
-    override init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: Bundle?) {
-        super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil)
-    }
-        
-    func initializeForm() {
-        
-        let form : XLFormDescriptor = XLFormDescriptor() as XLFormDescriptor
-        form.rowNavigationOptions = XLFormRowNavigationOptions.stopDisableRow
-        
-        var section : XLFormSectionDescriptor
-        var row : XLFormRowDescriptor
-
-        tableAccount = NCManageDatabase.sharedInstance.getAccountActive()
-        
-        section = XLFormSectionDescriptor.formSection()
-        form.addFormSection(section)
-        
-        row = XLFormRowDescriptor(tag: "userfullname", rowType: XLFormRowDescriptorTypeText, title: NSLocalizedString("_user_full_name_", comment: ""))
-        row.cellConfig["textLabel.font"] = UIFont.systemFont(ofSize: 15.0)
-        row.cellConfig["textField.font"] = UIFont.systemFont(ofSize: 15.0)
-        row.cellConfig["textField.textAlignment"] = NSTextAlignment.right.rawValue
-        row.cellConfig["imageView.image"] = CCGraphics.changeThemingColorImage(UIImage.init(named: "user"), width: 50, height: 50, color: NCBrandColor.sharedInstance.icon)
-        row.value = tableAccount.displayName
-        if row.value == nil { row.value = "" }
-        section.addFormRow(row)
-
-        row = XLFormRowDescriptor(tag: "useraddress", rowType: XLFormRowDescriptorTypeText, title: NSLocalizedString("_user_address_", comment: ""))
-        row.cellConfig["textLabel.font"] = UIFont.systemFont(ofSize: 15.0)
-        row.cellConfig["textField.font"] = UIFont.systemFont(ofSize: 15.0)
-        row.cellConfig["textField.textAlignment"] = NSTextAlignment.right.rawValue
-        row.cellConfig["imageView.image"] = CCGraphics.changeThemingColorImage(UIImage.init(named: "address"), width: 50, height: 50, color: NCBrandColor.sharedInstance.icon)
-        row.value = tableAccount.address
-        if row.value == nil { row.value = "" }
-        section.addFormRow(row)
-        
-        row = XLFormRowDescriptor(tag: "usercity", rowType: XLFormRowDescriptorTypeText, title: NSLocalizedString("_user_city_", comment: ""))
-        row.cellConfig["textLabel.font"] = UIFont.systemFont(ofSize: 15.0)
-        row.cellConfig["textField.font"] = UIFont.systemFont(ofSize: 15.0)
-        row.cellConfig["textField.textAlignment"] = NSTextAlignment.right.rawValue
-        row.cellConfig["imageView.image"] = CCGraphics.changeThemingColorImage(UIImage.init(named: "city"), width: 50, height: 50, color: NCBrandColor.sharedInstance.icon)
-        row.value = tableAccount.city
-        if row.value == nil { row.value = "" }
-        section.addFormRow(row)
-        
-        row = XLFormRowDescriptor(tag: "userzip", rowType: XLFormRowDescriptorTypeZipCode, title: NSLocalizedString("_user_zip_", comment: ""))
-        row.cellConfig["textLabel.font"] = UIFont.systemFont(ofSize: 15.0)
-        row.cellConfig["textField.font"] = UIFont.systemFont(ofSize: 15.0)
-        row.cellConfig["textField.textAlignment"] = NSTextAlignment.right.rawValue
-        row.cellConfig["imageView.image"] = CCGraphics.changeThemingColorImage(UIImage.init(named: "cityzip"), width: 50, height: 50, color: NCBrandColor.sharedInstance.icon)
-        row.value = tableAccount.zip
-        if row.value == nil { row.value = "" }
-        section.addFormRow(row)
-        
-        row = XLFormRowDescriptor(tag: "usercountry", rowType: XLFormRowDescriptorTypeSelectorPickerView, title: NSLocalizedString("_user_country_", comment: ""))
-        row.cellConfig["textLabel.font"] = UIFont.systemFont(ofSize: 15.0)
-        row.cellConfig["detailTextLabel.font"] = UIFont.systemFont(ofSize: 15.0)
-        row.cellConfig["imageView.image"] = CCGraphics.changeThemingColorImage(UIImage.init(named: "country"), width: 50, height: 50, color: NCBrandColor.sharedInstance.icon)
-        var locales = [String]()
-        for localeCode in NSLocale.isoCountryCodes {
-            let countryName = (Locale.current as NSLocale).displayName(forKey: .countryCode, value: localeCode) ?? ""
-            if localeCode == tableAccount.country {
-                row.value = countryName
-            }
-            locales.append(countryName)
-        }
-        row.selectorOptions = locales.sorted()
-        if row.value == nil { row.value = "" }
-        section.addFormRow(row)
-        
-        row = XLFormRowDescriptor(tag: "userphone", rowType: XLFormRowDescriptorTypePhone, title: NSLocalizedString("_user_phone_", comment: ""))
-        row.cellConfig["textLabel.font"] = UIFont.systemFont(ofSize: 15.0)
-        row.cellConfig["textField.font"] = UIFont.systemFont(ofSize: 15.0)
-        row.cellConfig["textField.textAlignment"] = NSTextAlignment.right.rawValue
-        row.cellConfig["imageView.image"] = CCGraphics.changeThemingColorImage(UIImage.init(named: "phone"), width: 50, height: 50, color: NCBrandColor.sharedInstance.icon)
-        row.value = tableAccount.phone
-        if row.value == nil { row.value = "" }
-        section.addFormRow(row)
-        
-        row = XLFormRowDescriptor(tag: "useremail", rowType: XLFormRowDescriptorTypeEmail, title: NSLocalizedString("_user_email_", comment: ""))
-        row.cellConfig["textLabel.font"] = UIFont.systemFont(ofSize: 15.0)
-        row.cellConfig["textField.font"] = UIFont.systemFont(ofSize: 15.0)
-        row.cellConfig["textField.textAlignment"] = NSTextAlignment.right.rawValue
-        row.cellConfig["imageView.image"] = CCGraphics.changeThemingColorImage(UIImage.init(named: "email"), width: 50, height: 50, color: NCBrandColor.sharedInstance.icon)
-        row.value = tableAccount.email
-        if row.value == nil { row.value = "" }
-        section.addFormRow(row)
-        
-        row = XLFormRowDescriptor(tag: "userweb", rowType: XLFormRowDescriptorTypeEmail, title: NSLocalizedString("_user_web_", comment: ""))
-        row.cellConfig["textLabel.font"] = UIFont.systemFont(ofSize: 15.0)
-        row.cellConfig["textField.font"] = UIFont.systemFont(ofSize: 15.0)
-        row.cellConfig["textField.textAlignment"] = NSTextAlignment.right.rawValue
-        row.cellConfig["imageView.image"] = CCGraphics.changeThemingColorImage(UIImage.init(named: "web"), width: 50, height: 50, color: NCBrandColor.sharedInstance.icon)
-        row.value = tableAccount.webpage
-        if row.value == nil { row.value = "" }
-        section.addFormRow(row)
-        
-        row = XLFormRowDescriptor(tag: "usertwitter", rowType: XLFormRowDescriptorTypeTwitter, title: NSLocalizedString("_user_twitter_", comment: ""))
-        row.cellConfig["textLabel.font"] = UIFont.systemFont(ofSize: 15.0)
-        row.cellConfig["textField.font"] = UIFont.systemFont(ofSize: 15.0)
-        row.cellConfig["textField.textAlignment"] = NSTextAlignment.right.rawValue
-        row.cellConfig["imageView.image"] = CCGraphics.changeThemingColorImage(UIImage.init(named: "twitter"), width: 50, height: 50, color: NCBrandColor.sharedInstance.icon)
-        row.value = tableAccount.twitter
-        if row.value == nil { row.value = "" }
-        section.addFormRow(row)
-        
-        row = XLFormRowDescriptor(tag: "userbusinesstype", rowType: XLFormRowDescriptorTypeMultipleSelector, title: NSLocalizedString("_user_businesstype_", comment: ""))
-        row.cellConfig["textLabel.font"] = UIFont.systemFont(ofSize: 15.0)
-        row.cellConfig["detailTextLabel.font"] = UIFont.systemFont(ofSize: 15.0)
-        row.cellConfig["imageView.image"] = CCGraphics.changeThemingColorImage(UIImage.init(named: "businesstype"), width: 50, height: 50, color: NCBrandColor.sharedInstance.icon)
-        row.selectorOptions = ["ARCHITECT", "BRICKLAYER", "CARPENTER", "ELECTRICIAN", "INSTALLER", "PAINTER", "PLUMBER", "ROOFER", "STOVEBUILDER","STUCCOER", "WINDOWBUILDER", "OTHER"]
-        row.value = tableAccount.businessType.components(separatedBy: ",")
-        if row.value == nil { row.value = "" }
-        section.addFormRow(row)
-        
-        row = XLFormRowDescriptor(tag: "userbusinesssize", rowType: XLFormRowDescriptorTypeSelectorPickerView, title: NSLocalizedString("_user_businesssize_", comment: ""))
-        row.cellConfig["textLabel.font"] = UIFont.systemFont(ofSize: 15.0)
-        row.cellConfig["detailTextLabel.font"] = UIFont.systemFont(ofSize: 15.0)
-        row.cellConfig["imageView.image"] = CCGraphics.changeThemingColorImage(UIImage.init(named: "users"), width: 50, height: 50, color: NCBrandColor.sharedInstance.icon)
-        row.selectorOptions = ["1-4", "5-9", "10-19", "20-49", "50-99", "100-249", "250-499", "500-999", "1000+"];
-        row.value = tableAccount.businessSize;
-        section.addFormRow(row)
-        
-        row = XLFormRowDescriptor(tag: "userrole", rowType: XLFormRowDescriptorTypeSelectorPickerView, title: NSLocalizedString("_user_role_", comment: ""))
-        row.cellConfig["textLabel.font"] = UIFont.systemFont(ofSize: 15.0)
-        row.cellConfig["detailTextLabel.font"] = UIFont.systemFont(ofSize: 15.0)
-        row.cellConfig["imageView.image"] = CCGraphics.changeThemingColorImage(UIImage.init(named: "role"), width: 50, height: 50, color: NCBrandColor.sharedInstance.icon)
-        row.selectorOptions = [NSLocalizedString("_user_owner_", comment: ""),NSLocalizedString("_user_employee_", comment: ""),NSLocalizedString("_user_contractor_", comment: "")];
-        if tableAccount.role == "owner" { row.value = NSLocalizedString("_user_owner_", comment: "") }
-        else if tableAccount.role == "employee" { row.value = NSLocalizedString("_user_employee_", comment: "") }
-        else if tableAccount.role == "contractor" { row.value = NSLocalizedString("_user_contractor_", comment: "") }
-        else { row.value = "" }
-        section.addFormRow(row)
-        
-        row = XLFormRowDescriptor(tag: "usercompany", rowType: XLFormRowDescriptorTypeText, title: NSLocalizedString("_user_company_", comment: ""))
-        row.cellConfig["textLabel.font"] = UIFont.systemFont(ofSize: 15.0)
-        row.cellConfig["textField.font"] = UIFont.systemFont(ofSize: 15.0)
-        row.cellConfig["textField.textAlignment"] = NSTextAlignment.right.rawValue
-        row.cellConfig["imageView.image"] = CCGraphics.changeThemingColorImage(UIImage.init(named: "company"), width: 50, height: 50, color: NCBrandColor.sharedInstance.icon)
-        row.value = tableAccount.company
-        if row.value == nil { row.value = "" }
-        section.addFormRow(row)
-        
-        self.form = form
-    }
-    
-    override func formRowDescriptorValueHasChanged(_ formRow: XLFormRowDescriptor!, oldValue: Any!, newValue: Any!) {
-        super.formRowDescriptorValueHasChanged(formRow, oldValue: oldValue, newValue: newValue)
-        
-    }
-    
-    // MARK: - View Life Cycle
-    
-    override func viewDidLoad() {
-        super.viewDidLoad()
-        
-        self.navigationItem.title = NSLocalizedString("_user_editprofile_", comment: "")
-
-        self.navigationController?.navigationBar.isTranslucent = false
-        self.navigationController?.navigationBar.barTintColor = NCBrandColor.sharedInstance.brand
-        self.navigationController?.navigationBar.tintColor = NCBrandColor.sharedInstance.brandText
-        self.navigationController?.navigationBar.titleTextAttributes = [NSAttributedString.Key.foregroundColor: NCBrandColor.sharedInstance.brandText]
-        
-        self.navigationController?.interactivePopGestureRecognizer?.isEnabled = false
-        
-        self.navigationItem.setHidesBackButton(true, animated: false)
-        self.navigationItem.rightBarButtonItem = UIBarButtonItem(title: NSLocalizedString("_save_", comment: ""), style: UIBarButtonItem.Style.plain, target: self, action: #selector(save))
-        self.navigationItem.leftBarButtonItem = UIBarButtonItem(title: NSLocalizedString("_cancel_", comment: ""), style: UIBarButtonItem.Style.plain, target: self, action: #selector(cancel))
-       
-        self.tableView.separatorStyle = UITableViewCell.SeparatorStyle.none
-        self.tableView.backgroundColor = NCBrandColor.sharedInstance.backgroundView
-        self.tableView.showsVerticalScrollIndicator = false
-    
-        initializeForm()
-    }
-
-    @objc func cancel() {
-        self.navigationController?.popViewController(animated: true)
-        self.navigationController?.interactivePopGestureRecognizer?.isEnabled = true
-    }
-    
-    @objc func save() {
-        
-        NCUtility.sharedInstance.startActivityIndicator(view: self.view, bottom: 0)
-        
-        // Full name
-        if self.form.formRow(withTag: "userfullname")?.value == nil {
-            tableAccount.displayName = ""
-        } else {
-            tableAccount.displayName = self.form.formRow(withTag: "userfullname")?.value as! String
-        }
-
-        // Address
-        if self.form.formRow(withTag: "useraddress")?.value == nil {
-            tableAccount.address = ""
-        } else {
-            tableAccount.address = self.form.formRow(withTag: "useraddress")?.value as! String
-        }
-        
-        // City
-        if self.form.formRow(withTag: "usercity")?.value == nil {
-            tableAccount.city = ""
-        } else {
-            tableAccount.city = self.form.formRow(withTag: "usercity")?.value as! String
-        }
-        
-        // Zip
-        if self.form.formRow(withTag: "userzip")?.value == nil {
-            tableAccount.zip = ""
-        } else {
-            tableAccount.zip = self.form.formRow(withTag: "userzip")?.value as! String
-        }
-        
-        let countryNameRow = self.form.formRow(withTag: "usercountry")!.value as? String
-        for localeCode in NSLocale.isoCountryCodes {
-            let countryName = (Locale.current as NSLocale).displayName(forKey: .countryCode, value: localeCode) ?? ""
-            if countryNameRow == countryName {
-                tableAccount.country = localeCode
-                break
-            }
-        }
-        
-        // Phone
-        if self.form.formRow(withTag: "userphone")?.value == nil {
-            tableAccount.phone = ""
-        } else {
-            tableAccount.phone = self.form.formRow(withTag: "userphone")?.value as! String
-        }
-        
-        // Email
-        if self.form.formRow(withTag: "useremail")?.value == nil {
-            tableAccount.email = ""
-        } else {
-            tableAccount.email = self.form.formRow(withTag: "useremail")?.value as! String
-        }
-        
-        // Web
-        if self.form.formRow(withTag: "userweb")?.value == nil {
-            tableAccount.webpage = ""
-        } else {
-            tableAccount.webpage = self.form.formRow(withTag: "userweb")?.value as! String
-        }
-        
-        // Twitter
-        if self.form.formRow(withTag: "usertwitter")?.value == nil {
-            tableAccount.twitter = ""
-        } else {
-            tableAccount.twitter = self.form.formRow(withTag: "usertwitter")?.value as! String
-        }
-        
-        // Company
-        if self.form.formRow(withTag: "usercompany")?.value == nil {
-            tableAccount.company = ""
-        } else {
-            tableAccount.company = self.form.formRow(withTag: "usercompany")?.value as! String
-        }
-        
-        tableAccount.businessSize = self.form.formRow(withTag: "userbusinesssize")!.value as! String
-       
-        let roleRow = self.form.formRow(withTag: "userrole")!.value as! String
-        switch roleRow {
-        case NSLocalizedString("_user_owner_", comment: ""): tableAccount.role = "owner"
-        case NSLocalizedString("_user_employee_", comment: ""): tableAccount.role = "employee"
-        case NSLocalizedString("_user_contractor_", comment: ""): tableAccount.role = "contractor"
-        default: break
-        }
-        
-        let businesstypeArray = self.form.formRow(withTag: "userbusinesstype")!.value
-        tableAccount.businessType = (businesstypeArray as! [String]).joined(separator: ",")
-        if tableAccount.businessType.first == "," {
-           tableAccount.businessType.removeFirst()
-        }
-        
-        OCNetworking.sharedManager()?.putHCUserProfile(withAccount: appDelegate.activeAccount, serverUrl: appDelegate.activeUrl, address: tableAccount.address, businesssize: tableAccount.businessSize, businesstype: tableAccount.businessType, city: tableAccount.city, company: tableAccount.company, country: tableAccount.country, displayname: tableAccount.displayName, email: tableAccount.email, phone: tableAccount.phone, role_: tableAccount.role, twitter: tableAccount.twitter, website: tableAccount.webpage, zip: tableAccount.zip, completion: { (account, message, errorCode) in
-            if errorCode == 0 && account == self.appDelegate.activeAccount {
-                NCManageDatabase.sharedInstance.updateAccount(self.tableAccount)
-                self.navigationController?.popViewController(animated: true)
-                self.navigationController?.interactivePopGestureRecognizer?.isEnabled = true
-            } else if errorCode != 0 {
-                self.appDelegate.messageNotification("_error_", description: message, visible: true, delay: TimeInterval(k_dismissAfterSecond), type: TWMessageBarMessageType.error, errorCode: errorCode)
-            }
-            NCUtility.sharedInstance.stopActivityIndicator()
-        })
-    }
-}

二進制
iOSClient/Supporting Files/ast.lproj/Localizable.strings


二進制
iOSClient/Supporting Files/ca.lproj/Localizable.strings


二進制
iOSClient/Supporting Files/cs-CZ.lproj/Localizable.strings


二進制
iOSClient/Supporting Files/da.lproj/Localizable.strings


二進制
iOSClient/Supporting Files/de.lproj/Localizable.strings


二進制
iOSClient/Supporting Files/el.lproj/Localizable.strings


二進制
iOSClient/Supporting Files/en-GB.lproj/Localizable.strings


+ 3 - 1
iOSClient/Supporting Files/en.lproj/Localizable.strings

@@ -75,7 +75,8 @@
 "_postpone_"                = "Postpone";
 "_remove_"                  = "Remove";
 "_file_not_found_"          = "File not found";
-"_continue_"                = "Do you want to continue?";
+"_continue_"                = "Continue";
+"_continue_request_"        = "Do you want to continue?";
 "_auto_upload_folder_"      = "Auto upload";
 "_gallery_"                 = "Gallery";
 "_photo_"                   = "Photo";
@@ -99,6 +100,7 @@
 "_denied_album_"            = "This app does not have access to \"Photos\", you can enable access in Privacy Settings";
 "_denied_camera_"           = "This app does not have access to \"Camera\", you can enable access in Privacy Settings";
 "_start_"                   = "Start";
+"_purchase_"                = "Purchase";
 
 // App
 

二進制
iOSClient/Supporting Files/es-419.lproj/Localizable.strings


二進制
iOSClient/Supporting Files/es-AR.lproj/Localizable.strings


二進制
iOSClient/Supporting Files/es-CL.lproj/Localizable.strings


二進制
iOSClient/Supporting Files/es-CO.lproj/Localizable.strings


二進制
iOSClient/Supporting Files/es-CR.lproj/Localizable.strings


二進制
iOSClient/Supporting Files/es-DO.lproj/Localizable.strings


二進制
iOSClient/Supporting Files/es-EC.lproj/Localizable.strings


二進制
iOSClient/Supporting Files/es-GT.lproj/Localizable.strings


二進制
iOSClient/Supporting Files/es-HN.lproj/Localizable.strings


二進制
iOSClient/Supporting Files/es-MX.lproj/Localizable.strings


二進制
iOSClient/Supporting Files/es-NI.lproj/Localizable.strings


二進制
iOSClient/Supporting Files/es-PA.lproj/Localizable.strings


二進制
iOSClient/Supporting Files/es-PE.lproj/Localizable.strings


二進制
iOSClient/Supporting Files/es-PR.lproj/Localizable.strings


二進制
iOSClient/Supporting Files/es-PY.lproj/Localizable.strings


二進制
iOSClient/Supporting Files/es-SV.lproj/Localizable.strings


二進制
iOSClient/Supporting Files/es-UY.lproj/Localizable.strings


二進制
iOSClient/Supporting Files/es.lproj/Localizable.strings


二進制
iOSClient/Supporting Files/eu.lproj/Localizable.strings


二進制
iOSClient/Supporting Files/fa.lproj/Localizable.strings


二進制
iOSClient/Supporting Files/fi-FI.lproj/Localizable.strings


二進制
iOSClient/Supporting Files/fr.lproj/Localizable.strings


二進制
iOSClient/Supporting Files/gl.lproj/Localizable.strings


二進制
iOSClient/Supporting Files/hu.lproj/Localizable.strings


二進制
iOSClient/Supporting Files/is.lproj/Localizable.strings


二進制
iOSClient/Supporting Files/it.lproj/Localizable.strings


二進制
iOSClient/Supporting Files/ja-JP.lproj/Localizable.strings


二進制
iOSClient/Supporting Files/ka-GE.lproj/Localizable.strings


二進制
iOSClient/Supporting Files/ko.lproj/Localizable.strings


二進制
iOSClient/Supporting Files/lt_LT.lproj/Localizable.strings


二進制
iOSClient/Supporting Files/nb-NO.lproj/Localizable.strings


二進制
iOSClient/Supporting Files/nl.lproj/Localizable.strings


二進制
iOSClient/Supporting Files/pl.lproj/Localizable.strings


二進制
iOSClient/Supporting Files/pt-BR.lproj/Localizable.strings


二進制
iOSClient/Supporting Files/pt-PT.lproj/Localizable.strings


二進制
iOSClient/Supporting Files/ru.lproj/Localizable.strings


二進制
iOSClient/Supporting Files/sk-SK.lproj/Localizable.strings


二進制
iOSClient/Supporting Files/sq.lproj/Localizable.strings


二進制
iOSClient/Supporting Files/sr.lproj/Localizable.strings


二進制
iOSClient/Supporting Files/sv.lproj/Localizable.strings


二進制
iOSClient/Supporting Files/tr.lproj/Localizable.strings


二進制
iOSClient/Supporting Files/zh-Hans.lproj/Localizable.strings


二進制
iOSClient/Supporting Files/zh-Hant-TW.lproj/Localizable.strings