Browse Source

New Menu Account

Marino Faggiana 8 years ago
parent
commit
38fb39d0fe

+ 38 - 47
Nextcloud.xcodeproj/project.pbxproj

@@ -57,8 +57,6 @@
 		F708CF9C1E56E8CC00271D8B /* TableAccount+CoreDataProperties.m in Sources */ = {isa = PBXBuildFile; fileRef = F708CF6C1E56E8CC00271D8B /* TableAccount+CoreDataProperties.m */; };
 		F70A630B1D5B3467004E2AA5 /* libcrypto.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F70A63061D5B3467004E2AA5 /* libcrypto.a */; };
 		F70A630F1D5B3467004E2AA5 /* libssl.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F70A63071D5B3467004E2AA5 /* libssl.a */; };
-		F70FD1C71E67552700C0FDA6 /* CCControlCenterTransfer.m in Sources */ = {isa = PBXBuildFile; fileRef = F70FD1C61E67552700C0FDA6 /* CCControlCenterTransfer.m */; };
-		F70FD1CB1E675F1500C0FDA6 /* CCControlCenterActivity.m in Sources */ = {isa = PBXBuildFile; fileRef = F70FD1CA1E675F1500C0FDA6 /* CCControlCenterActivity.m */; };
 		F714526D1DC1523B0006A5D4 /* libMagicalRecord.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F7B61E9B1DC13C20009E938F /* libMagicalRecord.a */; };
 		F71459B81D12E3B700CAFEEC /* CCError.m in Sources */ = {isa = PBXBuildFile; fileRef = F76C3B881C638A4C00DC4301 /* CCError.m */; };
 		F71459BA1D12E3B700CAFEEC /* NSString+TruncateToWidth.m in Sources */ = {isa = PBXBuildFile; fileRef = F73049B91CB567F000C7C320 /* NSString+TruncateToWidth.m */; };
@@ -120,7 +118,6 @@
 		F72AAECB1E5C60C700BB17E1 /* AHKActionSheetViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = F72AAEC51E5C60C700BB17E1 /* AHKActionSheetViewController.m */; };
 		F72AAECC1E5C60C700BB17E1 /* UIImage+AHKAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = F72AAEC71E5C60C700BB17E1 /* UIImage+AHKAdditions.m */; };
 		F72AAECD1E5C60C700BB17E1 /* UIWindow+AHKAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = F72AAEC91E5C60C700BB17E1 /* UIWindow+AHKAdditions.m */; };
-		F72AE40B1E67246200B3E477 /* ControlCenter.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = F72AE40A1E67246200B3E477 /* ControlCenter.storyboard */; };
 		F72C63891DC14B0400FA5ED5 /* libMagicalRecord.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F7B61E9B1DC13C20009E938F /* libMagicalRecord.a */; };
 		F732B3371E8045A1002B7D75 /* SwiftWebVC.strings in Resources */ = {isa = PBXBuildFile; fileRef = F732B3351E8045A1002B7D75 /* SwiftWebVC.strings */; };
 		F732BA061D76CE1500E9878B /* CCNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = F732BA041D76CE1500E9878B /* CCNetworking.m */; };
@@ -521,6 +518,10 @@
 		F7A321571E9E2A070069AD1B /* CCFavoritesCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = F7A321521E9E2A070069AD1B /* CCFavoritesCell.xib */; };
 		F7A321581E9E2A070069AD1B /* CCSynchronize.m in Sources */ = {isa = PBXBuildFile; fileRef = F7A321541E9E2A070069AD1B /* CCSynchronize.m */; };
 		F7A321651E9E37960069AD1B /* CCActivity.m in Sources */ = {isa = PBXBuildFile; fileRef = F7A321641E9E37960069AD1B /* CCActivity.m */; };
+		F7A321791E9E3EAF0069AD1B /* CCTransfers.m in Sources */ = {isa = PBXBuildFile; fileRef = F7A321751E9E3EAF0069AD1B /* CCTransfers.m */; };
+		F7A3217A1E9E3EAF0069AD1B /* CCTransfersCell.m in Sources */ = {isa = PBXBuildFile; fileRef = F7A321771E9E3EAF0069AD1B /* CCTransfersCell.m */; };
+		F7A3217B1E9E3EAF0069AD1B /* CCTransfersCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = F7A321781E9E3EAF0069AD1B /* CCTransfersCell.xib */; };
+		F7A3218C1E9E42B30069AD1B /* CCMenuAccount.m in Sources */ = {isa = PBXBuildFile; fileRef = F7A3218B1E9E42B30069AD1B /* CCMenuAccount.m */; };
 		F7B1FBC41E72E3D1001781FE /* Media.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = F7B1FBB11E72E3D1001781FE /* Media.xcassets */; };
 		F7B1FBC61E72E3D1001781FE /* SwiftModalWebVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = F7B1FBBF1E72E3D1001781FE /* SwiftModalWebVC.swift */; };
 		F7B1FBC71E72E3D1001781FE /* SwiftWebVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = F7B1FBC01E72E3D1001781FE /* SwiftWebVC.swift */; };
@@ -536,10 +537,6 @@
 		F7C525A21E3B6DA800FFE02C /* CCNotification.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = F7C525A11E3B6DA800FFE02C /* CCNotification.storyboard */; };
 		F7C742D81E7BD5C900D9C973 /* MainInterface.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = F7C742D71E7BD5C900D9C973 /* MainInterface.storyboard */; };
 		F7D2677C1E157053005ACB7E /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = F7F67BB81A24D27800EE80DA /* Images.xcassets */; };
-		F7D6A0911D82DBFA0045AD1A /* CCControlCenter.m in Sources */ = {isa = PBXBuildFile; fileRef = F7D6A08A1D82DBFA0045AD1A /* CCControlCenter.m */; };
-		F7D6A0931D82DBFA0045AD1A /* CCControlCenterTransferCell.m in Sources */ = {isa = PBXBuildFile; fileRef = F7D6A08C1D82DBFA0045AD1A /* CCControlCenterTransferCell.m */; };
-		F7D6A0951D82DBFA0045AD1A /* CCControlCenterTransferCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = F7D6A08D1D82DBFA0045AD1A /* CCControlCenterTransferCell.xib */; };
-		F7D6A0971D82DBFA0045AD1A /* CCMenu.m in Sources */ = {isa = PBXBuildFile; fileRef = F7D6A08F1D82DBFA0045AD1A /* CCMenu.m */; };
 		F7ECBA6D1E239DCD003E6328 /* CCCreateCloud.swift in Sources */ = {isa = PBXBuildFile; fileRef = F7ECBA6C1E239DCD003E6328 /* CCCreateCloud.swift */; };
 		F7EF0CAF1D9E95F400A9D15E /* CCSharedDBSession.m in Sources */ = {isa = PBXBuildFile; fileRef = F7EF0CAD1D9E95F400A9D15E /* CCSharedDBSession.m */; };
 		F7F06E8D1DBFACC600099AE9 /* NSBundle+CTAssetsPickerController.m in Sources */ = {isa = PBXBuildFile; fileRef = F7F06E2E1DBFACC600099AE9 /* NSBundle+CTAssetsPickerController.m */; };
@@ -1042,10 +1039,6 @@
 		F70F0F9C1C889487008DAB36 /* zip.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = zip.h; sourceTree = "<group>"; };
 		F70F0F9D1C889487008DAB36 /* SSZipArchive.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SSZipArchive.h; sourceTree = "<group>"; };
 		F70F0F9E1C889487008DAB36 /* SSZipArchive.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SSZipArchive.m; sourceTree = "<group>"; };
-		F70FD1C51E67552700C0FDA6 /* CCControlCenterTransfer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CCControlCenterTransfer.h; sourceTree = "<group>"; };
-		F70FD1C61E67552700C0FDA6 /* CCControlCenterTransfer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CCControlCenterTransfer.m; sourceTree = "<group>"; };
-		F70FD1C91E675F1500C0FDA6 /* CCControlCenterActivity.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CCControlCenterActivity.h; sourceTree = "<group>"; };
-		F70FD1CA1E675F1500C0FDA6 /* CCControlCenterActivity.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CCControlCenterActivity.m; sourceTree = "<group>"; };
 		F7151A801D477A4B00E6AF45 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/BKPasscodeView.strings; sourceTree = "<group>"; };
 		F7151A811D477A4B00E6AF45 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = "<group>"; };
 		F7151A821D477A4B00E6AF45 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
@@ -1109,7 +1102,6 @@
 		F72AAEC71E5C60C700BB17E1 /* UIImage+AHKAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIImage+AHKAdditions.m"; sourceTree = "<group>"; };
 		F72AAEC81E5C60C700BB17E1 /* UIWindow+AHKAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIWindow+AHKAdditions.h"; sourceTree = "<group>"; };
 		F72AAEC91E5C60C700BB17E1 /* UIWindow+AHKAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIWindow+AHKAdditions.m"; sourceTree = "<group>"; };
-		F72AE40A1E67246200B3E477 /* ControlCenter.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = ControlCenter.storyboard; sourceTree = "<group>"; };
 		F73049B81CB567F000C7C320 /* NSString+TruncateToWidth.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSString+TruncateToWidth.h"; sourceTree = "<group>"; };
 		F73049B91CB567F000C7C320 /* NSString+TruncateToWidth.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSString+TruncateToWidth.m"; sourceTree = "<group>"; };
 		F73200DD1E94E4DF00AB2F01 /* es-MX */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "es-MX"; path = "es-MX.lproj/CTAssetsPicker.strings"; sourceTree = "<group>"; };
@@ -1483,6 +1475,13 @@
 		F7A321541E9E2A070069AD1B /* CCSynchronize.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CCSynchronize.m; sourceTree = "<group>"; };
 		F7A321631E9E37960069AD1B /* CCActivity.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CCActivity.h; sourceTree = "<group>"; };
 		F7A321641E9E37960069AD1B /* CCActivity.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CCActivity.m; sourceTree = "<group>"; };
+		F7A321741E9E3EAF0069AD1B /* CCTransfers.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CCTransfers.h; sourceTree = "<group>"; };
+		F7A321751E9E3EAF0069AD1B /* CCTransfers.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CCTransfers.m; sourceTree = "<group>"; };
+		F7A321761E9E3EAF0069AD1B /* CCTransfersCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CCTransfersCell.h; sourceTree = "<group>"; };
+		F7A321771E9E3EAF0069AD1B /* CCTransfersCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CCTransfersCell.m; sourceTree = "<group>"; };
+		F7A321781E9E3EAF0069AD1B /* CCTransfersCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = CCTransfersCell.xib; sourceTree = "<group>"; };
+		F7A3218A1E9E42B30069AD1B /* CCMenuAccount.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CCMenuAccount.h; sourceTree = "<group>"; };
+		F7A3218B1E9E42B30069AD1B /* CCMenuAccount.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CCMenuAccount.m; sourceTree = "<group>"; };
 		F7A54C341C6267B500E2C8BF /* CCExifGeo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CCExifGeo.h; sourceTree = "<group>"; };
 		F7A54C351C6267B500E2C8BF /* CCExifGeo.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CCExifGeo.m; sourceTree = "<group>"; };
 		F7A582D61A24DAB500E903D7 /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = AppDelegate.m; sourceTree = "<group>"; };
@@ -1549,13 +1548,6 @@
 		F7D0E65E1BC5042E008D989A /* CCDetail.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CCDetail.h; sourceTree = "<group>"; };
 		F7D0E65F1BC5042E008D989A /* CCDetail.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CCDetail.m; sourceTree = "<group>"; };
 		F7D154271E2392A300202FD9 /* Nextcloud-Bridging-Header.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "Nextcloud-Bridging-Header.h"; sourceTree = "<group>"; };
-		F7D6A0891D82DBFA0045AD1A /* CCControlCenter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CCControlCenter.h; sourceTree = "<group>"; };
-		F7D6A08A1D82DBFA0045AD1A /* CCControlCenter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CCControlCenter.m; sourceTree = "<group>"; };
-		F7D6A08B1D82DBFA0045AD1A /* CCControlCenterTransferCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CCControlCenterTransferCell.h; sourceTree = "<group>"; };
-		F7D6A08C1D82DBFA0045AD1A /* CCControlCenterTransferCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CCControlCenterTransferCell.m; sourceTree = "<group>"; };
-		F7D6A08D1D82DBFA0045AD1A /* CCControlCenterTransferCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = CCControlCenterTransferCell.xib; sourceTree = "<group>"; };
-		F7D6A08E1D82DBFA0045AD1A /* CCMenu.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CCMenu.h; sourceTree = "<group>"; };
-		F7D6A08F1D82DBFA0045AD1A /* CCMenu.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CCMenu.m; sourceTree = "<group>"; };
 		F7D96F0B1D99498600A587A5 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/BKPasscodeView.strings; sourceTree = "<group>"; };
 		F7D96F0C1D99498600A587A5 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/Localizable.strings; sourceTree = "<group>"; };
 		F7D96F0D1D99498600A587A5 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/InfoPlist.strings; sourceTree = "<group>"; };
@@ -2985,6 +2977,27 @@
 			path = Activity;
 			sourceTree = "<group>";
 		};
+		F7A321731E9E3EAF0069AD1B /* Transfers */ = {
+			isa = PBXGroup;
+			children = (
+				F7A321741E9E3EAF0069AD1B /* CCTransfers.h */,
+				F7A321751E9E3EAF0069AD1B /* CCTransfers.m */,
+				F7A321761E9E3EAF0069AD1B /* CCTransfersCell.h */,
+				F7A321771E9E3EAF0069AD1B /* CCTransfersCell.m */,
+				F7A321781E9E3EAF0069AD1B /* CCTransfersCell.xib */,
+			);
+			path = Transfers;
+			sourceTree = "<group>";
+		};
+		F7A321891E9E42B20069AD1B /* MenuAccount */ = {
+			isa = PBXGroup;
+			children = (
+				F7A3218A1E9E42B30069AD1B /* CCMenuAccount.h */,
+				F7A3218B1E9E42B30069AD1B /* CCMenuAccount.m */,
+			);
+			path = MenuAccount;
+			sourceTree = "<group>";
+		};
 		F7ACE4281BAC0268006C0017 /* Settings */ = {
 			isa = PBXGroup;
 			children = (
@@ -3144,26 +3157,6 @@
 			name = "Supporting Files";
 			sourceTree = "<group>";
 		};
-		F7D6A0881D82DBFA0045AD1A /* ControlCenter+MenuAccount */ = {
-			isa = PBXGroup;
-			children = (
-				F72AE40A1E67246200B3E477 /* ControlCenter.storyboard */,
-				F7D6A0891D82DBFA0045AD1A /* CCControlCenter.h */,
-				F7D6A08A1D82DBFA0045AD1A /* CCControlCenter.m */,
-				F7D6A08B1D82DBFA0045AD1A /* CCControlCenterTransferCell.h */,
-				F7D6A08C1D82DBFA0045AD1A /* CCControlCenterTransferCell.m */,
-				F7D6A08D1D82DBFA0045AD1A /* CCControlCenterTransferCell.xib */,
-				F70FD1C51E67552700C0FDA6 /* CCControlCenterTransfer.h */,
-				F70FD1C61E67552700C0FDA6 /* CCControlCenterTransfer.m */,
-				F70FD1C91E675F1500C0FDA6 /* CCControlCenterActivity.h */,
-				F70FD1CA1E675F1500C0FDA6 /* CCControlCenterActivity.m */,
-				F7D6A08E1D82DBFA0045AD1A /* CCMenu.h */,
-				F7D6A08F1D82DBFA0045AD1A /* CCMenu.m */,
-			);
-			name = "ControlCenter+MenuAccount";
-			path = "MenuAccount+ControlCenter";
-			sourceTree = "<group>";
-		};
 		F7E95CEC1AC40BA40060D08E /* FileSystem */ = {
 			isa = PBXGroup;
 			children = (
@@ -3389,7 +3382,7 @@
 				F769D3941E9E1506006DBBB4 /* Local storage */,
 				F7BFFA621A24D7300044ED85 /* Login */,
 				F7BFCCBD1B68C21900548E76 /* ManageLocation+ManageAsset */,
-				F7D6A0881D82DBFA0045AD1A /* ControlCenter+MenuAccount */,
+				F7A321891E9E42B20069AD1B /* MenuAccount */,
 				F7F9E3451BC26B19004B9223 /* Move */,
 				F74D3DB81BAC1941000BAE4B /* Networking */,
 				F7C5259A1E3B441D00FFE02C /* Notification */,
@@ -3400,6 +3393,7 @@
 				F7ACE4281BAC0268006C0017 /* Settings */,
 				F728CE741BF6322C00E69702 /* Share */,
 				F721371B1BAFF0920012B613 /* Templates */,
+				F7A321731E9E3EAF0069AD1B /* Transfers */,
 				F70784811A2C8A0D00AC9FFF /* UploadFromOtherUpp */,
 				F7BFFA991A24D7BB0044ED85 /* Utility */,
 			);
@@ -3805,7 +3799,6 @@
 				F77B0F081D118A16002130FE /* ZSSunderline@2x.png in Resources */,
 				F77B0F0A1D118A16002130FE /* Reader-Mark-Y.png in Resources */,
 				F77B0F0C1D118A16002130FE /* Reader-Mark-Y@2x.png in Resources */,
-				F72AE40B1E67246200B3E477 /* ControlCenter.storyboard in Resources */,
 				F77B0F0D1D118A16002130FE /* ZSSundo@2x.png in Resources */,
 				F77B0F0E1D118A16002130FE /* BKPasscodeView.strings in Resources */,
 				F77B0F111D118A16002130FE /* ZSSparagraph.png in Resources */,
@@ -3814,7 +3807,6 @@
 				F77B0F141D118A16002130FE /* ZSSviewsource.png in Resources */,
 				F77B0F151D118A16002130FE /* ZSSforcejustify@2x.png in Resources */,
 				F77B0F171D118A16002130FE /* ZSSh1@2x.png in Resources */,
-				F7D6A0951D82DBFA0045AD1A /* CCControlCenterTransferCell.xib in Resources */,
 				F7F54CF31E5B14C700E19C62 /* ImageSelectedSmallOn@3x.png in Resources */,
 				F77B0F181D118A16002130FE /* Intro.strings in Resources */,
 				F7F54CFA1E5B14C700E19C62 /* UIBarButtonItemArrowLeft.png in Resources */,
@@ -3833,6 +3825,7 @@
 				F77B0F281D118A16002130FE /* Main.storyboard in Resources */,
 				F77B0F291D118A16002130FE /* ZSSleftjustify.png in Resources */,
 				F77B0F2B1D118A16002130FE /* ZSSclearstyle@2x.png in Resources */,
+				F7A3217B1E9E3EAF0069AD1B /* CCTransfersCell.xib in Resources */,
 				F77B0F2C1D118A16002130FE /* ZSSlink.png in Resources */,
 				F77B0F2D1D118A16002130FE /* ZSSsuperscript@2x.png in Resources */,
 				F7B1FBC41E72E3D1001781FE /* Media.xcassets in Resources */,
@@ -4168,7 +4161,6 @@
 				F708CF821E56E8CC00271D8B /* TableDirectory+CoreDataProperties.m in Sources */,
 				F77B0E121D118A16002130FE /* CCPatenteGuida.m in Sources */,
 				F7B1FBC61E72E3D1001781FE /* SwiftModalWebVC.swift in Sources */,
-				F7D6A0971D82DBFA0045AD1A /* CCMenu.m in Sources */,
 				F7A321651E9E37960069AD1B /* CCActivity.m in Sources */,
 				F77B0E131D118A16002130FE /* AppDelegate.m in Sources */,
 				F750374F1DBFA91A008FB480 /* NSArray+PureLayout.m in Sources */,
@@ -4180,7 +4172,6 @@
 				F77B0E161D118A16002130FE /* AFViewShaker.m in Sources */,
 				F77B0E1B1D118A16002130FE /* CCGraphics.m in Sources */,
 				F73CCE071DC13776007E38D8 /* NSExpression+XLFormAdditions.m in Sources */,
-				F70FD1CB1E675F1500C0FDA6 /* CCControlCenterActivity.m in Sources */,
 				F77B0E1D1D118A16002130FE /* ReaderThumbQueue.m in Sources */,
 				F7274FED1E6EB6F400C241B6 /* Constant.swift in Sources */,
 				F7659A6E1DC0B760004860C4 /* PSTGridLayoutRow.m in Sources */,
@@ -4233,11 +4224,11 @@
 				F77B0E451D118A16002130FE /* ReaderThumbRender.m in Sources */,
 				F77B0E481D118A16002130FE /* CCCrypto.m in Sources */,
 				F73CC0781E813DFF006E3047 /* BKShiftingView.m in Sources */,
-				F7D6A0911D82DBFA0045AD1A /* CCControlCenter.m in Sources */,
 				F708CF761E56E8CC00271D8B /* TableLocalFile+CoreDataProperties.m in Sources */,
 				F7659A6A1DC0B760004860C4 /* PSTGridLayoutInfo.m in Sources */,
 				F73CCE1D1DC13776007E38D8 /* XLFormValidator.m in Sources */,
 				F77B0E491D118A16002130FE /* UIImage+Saving.m in Sources */,
+				F7A3218C1E9E42B30069AD1B /* CCMenuAccount.m in Sources */,
 				F73CCE011DC13776007E38D8 /* XLFormRowDescriptor.m in Sources */,
 				F77B0E4C1D118A16002130FE /* CCDetail.m in Sources */,
 				F77B0E4D1D118A16002130FE /* CCCoreData.m in Sources */,
@@ -4272,7 +4263,6 @@
 				F7B3A4EE1E97818A000DACE8 /* CCLoginWeb.swift in Sources */,
 				F77B0E631D118A16002130FE /* CCShareOC.m in Sources */,
 				F73CCE261DC13788007E38D8 /* UIScrollView+EmptyDataSet.m in Sources */,
-				F70FD1C71E67552700C0FDA6 /* CCControlCenterTransfer.m in Sources */,
 				F7F54D071E5B14C800E19C62 /* MWGridCell.m in Sources */,
 				F77B0E651D118A16002130FE /* LMMediaPlayerView.m in Sources */,
 				F708CF731E56E8CC00271D8B /* TableLocalFile+CoreDataClass.m in Sources */,
@@ -4370,6 +4360,7 @@
 				F77B0EB71D118A16002130FE /* ReaderThumbRequest.m in Sources */,
 				F7F06EB31DBFACC600099AE9 /* CTAssetsGridViewCell.m in Sources */,
 				F77B0EB81D118A16002130FE /* CCAccountWeb.m in Sources */,
+				F7A321791E9E3EAF0069AD1B /* CCTransfers.m in Sources */,
 				F708CF7F1E56E8CC00271D8B /* TableDirectory+CoreDataClass.m in Sources */,
 				F77B0EB91D118A16002130FE /* HRColorUtil.m in Sources */,
 				F73CCDD91DC13776007E38D8 /* XLFormBaseCell.m in Sources */,
@@ -4402,7 +4393,7 @@
 				F77B0ECF1D118A16002130FE /* CYRToken.m in Sources */,
 				F72AAECA1E5C60C700BB17E1 /* AHKActionSheet.m in Sources */,
 				F7F06EB11DBFACC600099AE9 /* CTAssetsGridView.m in Sources */,
-				F7D6A0931D82DBFA0045AD1A /* CCControlCenterTransferCell.m in Sources */,
+				F7A3217A1E9E3EAF0069AD1B /* CCTransfersCell.m in Sources */,
 				F77B0ED11D118A16002130FE /* Acknowledgements.m in Sources */,
 				F77B0ED31D118A16002130FE /* PPImageScrollingCellView.m in Sources */,
 				F77B0ED41D118A16002130FE /* LMMediaPlayerHelper.m in Sources */,

+ 2 - 7
iOSClient/AppDelegate.h

@@ -33,14 +33,13 @@
 #import "TWMessageBarManager.h"
 #import "CCBKPasscode.h"
 #import "CCUtility.h"
-#import "CCControlCenter.h"
-#import "CCControlCenterTransfer.h"
 #import "CCActivity.h"
 #import "CCDetail.h"
 #import "CCQuickActions.h"
 #import "CCMain.h"
 #import "CCPhotosCameraUpload.h"
 #import "CCSettings.h"
+#import "CCTransfers.h"
 
 @interface AppDelegate : UIResponder <UIApplicationDelegate, BKPasscodeLockScreenManagerDelegate, BKPasscodeViewControllerDelegate, LMMediaPlayerViewDelegate, TWMessageBarStyleSheet, CCNetworkingDelegate>
 
@@ -115,10 +114,6 @@
 @property (nonatomic, strong) REMenuItem *downloadItem;
 @property (nonatomic, strong) REMenuItem *saveItem;
 
-// List Transfert
-@property (nonatomic, retain) CCControlCenter *controlCenter;
-@property (nonatomic, retain) CCControlCenterTransfer *controlCenterTransfer;
-
 // List Change Task
 @property (nonatomic, retain) NSMutableDictionary *listChangeTask;
 
@@ -135,7 +130,7 @@
 @property (nonatomic, retain) CCDetail *activeDetail;
 @property (nonatomic, retain) CCSettings *activeSettings;
 @property (nonatomic, retain) CCActivity *activeActivity;
-
+@property (nonatomic, retain) CCTransfers *activeTransfers;
 
 @property (nonatomic, strong) NSMutableDictionary *listMainVC;
 @property (nonatomic, strong) NSMutableDictionary *listProgressMetadata;

+ 0 - 9
iOSClient/Main/CCDetail.m

@@ -612,15 +612,6 @@
     photoBrowser.toolbar.hidden = NO;
 }
 
-- (void)setControlsHidden:(BOOL)hidden animated:(BOOL)animated permanent:(BOOL)permanent
-{
-    // Control Center
-    if (self.splitViewController.isCollapsed)
-        [app.controlCenter setControlCenterHidden:hidden];
-    
-    self.navigationController.navigationBar.hidden = hidden;
-}
-
 - (id <MWPhoto>)photoBrowser:(MWPhotoBrowser *)photoBrowser thumbPhotoAtIndex:(NSUInteger)index
 {
     NSString *directory;

+ 3 - 9
iOSClient/Main/CCMain.m

@@ -475,10 +475,6 @@
 
 - (void)setTitle
 {
-    // PopGesture in progress [swipe gesture to switch between views]
-    if (app.controlCenter.isPopGesture)
-        return;
-
     // Color text self.navigationItem.title
     [CCAspect aspectNavigationControllerBar:self.navigationController.navigationBar encrypted:_isFolderEncrypted online:[app.reachability isReachable] hidden:NO];
 
@@ -3645,7 +3641,6 @@
         
         // Backgroun reMenu (Gesture)
         [_reMenuBackgroundView removeFromSuperview];
-        [app.controlCenter disableSingleFingerTap];
         [_reMenuBackgroundView removeGestureRecognizer:_singleFingerTap];
     }];
 }
@@ -3662,7 +3657,6 @@
         
         // Backgroun reMenu & (Gesture)
         [self createReMenuBackgroundView:app.reMainMenu];
-        [app.controlCenter enableSingleFingerTap:@selector(toggleReMainMenu) target:self];
         _singleFingerTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(toggleReMainMenu)];
         [_reMenuBackgroundView addGestureRecognizer:_singleFingerTap];
     }
@@ -4805,14 +4799,14 @@
     if ([serverUrl isEqualToString:_serverUrl] == NO || _serverUrl == nil) {
         
         if ([selector isEqualToString:selectorDownloadSynchronize]) {
-            [app.controlCenterTransfer reloadDatasource];
+            [app.activeTransfers reloadDatasource];
         } else {
             CCMain *main = [app.listMainVC objectForKey:serverUrl];
             if (main) {
                 [main reloadDatasource];
             } else {
                 [self tableViewReload];
-                [app.controlCenterTransfer reloadDatasource];
+                [app.activeTransfers reloadDatasource];
             }
         }
         
@@ -4822,7 +4816,7 @@
     // Offline folder ?
     _isOfflineServerUrl = [CCCoreData isOfflineDirectoryServerUrl:_serverUrl activeAccount:app.activeAccount];
     
-    [app.controlCenterTransfer reloadDatasource];
+    [app.activeTransfers reloadDatasource];
     
     // Settaggio variabili per le ottimizzazioni
     _directoryGroupBy = [CCUtility getGroupBySettings];

+ 3 - 0
iOSClient/Main/CCMore.swift

@@ -131,6 +131,9 @@ class CCMore: UIViewController, UITableViewDelegate, UITableViewDataSource {
         // Menu Function
         if (indexPath.section == 0) {
             
+            if (indexPath.row == 0) {
+                self.navigationController?.performSegue(withIdentifier: "segueTransfers", sender: self)
+            }
             if (indexPath.row == 1) {
                 self.navigationController?.performSegue(withIdentifier: "segueActivity", sender: self)
             }

+ 34 - 1
iOSClient/Main/Main.storyboard

@@ -733,6 +733,7 @@
                         <segue destination="amx-XG-NId" kind="show" identifier="segueSettings" id="iJw-qx-dwJ"/>
                         <segue destination="o4I-W3-sMH" kind="show" identifier="segueLocalStorage" id="iz8-HB-F2p"/>
                         <segue destination="QIL-R2-8iE" kind="show" identifier="segueActivity" id="dwq-EG-6sD"/>
+                        <segue destination="Gtp-25-3Em" kind="show" identifier="segueTransfers" id="OLL-6n-NHS"/>
                     </connections>
                 </navigationController>
                 <placeholder placeholderIdentifier="IBFirstResponder" id="D7n-Z1-9wU" userLabel="First Responder" sceneMemberID="firstResponder"/>
@@ -776,7 +777,7 @@
         <scene sceneID="Mfj-Rm-dhR">
             <objects>
                 <collectionViewController storyboardIdentifier="CCActivity" id="QIL-R2-8iE" customClass="CCActivity" sceneMemberID="viewController">
-                    <collectionView key="view" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" misplaced="YES" dataMode="prototypes" id="KRS-wA-Hbs">
+                    <collectionView key="view" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" dataMode="prototypes" id="KRS-wA-Hbs">
                         <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
                         <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                         <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
@@ -869,6 +870,38 @@
             </objects>
             <point key="canvasLocation" x="10503" y="1218"/>
         </scene>
+        <!--Transfers-->
+        <scene sceneID="UaS-db-kwR">
+            <objects>
+                <viewController storyboardIdentifier="CCTransfers" id="Gtp-25-3Em" customClass="CCTransfers" sceneMemberID="viewController">
+                    <layoutGuides>
+                        <viewControllerLayoutGuide type="top" id="Ax9-2n-SWc"/>
+                        <viewControllerLayoutGuide type="bottom" id="d15-Pa-R8r"/>
+                    </layoutGuides>
+                    <view key="view" contentMode="scaleToFill" id="fak-dH-6Vp">
+                        <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
+                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                        <subviews>
+                            <tableView clipsSubviews="YES" contentMode="scaleToFill" fixedFrame="YES" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="default" rowHeight="44" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="pnc-dQ-cNG">
+                                <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
+                                <autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
+                                <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
+                                <connections>
+                                    <outlet property="dataSource" destination="Gtp-25-3Em" id="bzo-qN-Odm"/>
+                                    <outlet property="delegate" destination="Gtp-25-3Em" id="kun-RC-2pT"/>
+                                </connections>
+                            </tableView>
+                        </subviews>
+                        <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
+                    </view>
+                    <connections>
+                        <outlet property="tableView" destination="pnc-dQ-cNG" id="YDD-pc-NFL"/>
+                    </connections>
+                </viewController>
+                <placeholder placeholderIdentifier="IBFirstResponder" id="zjX-ak-rF5" userLabel="First Responder" sceneMemberID="firstResponder"/>
+            </objects>
+            <point key="canvasLocation" x="11145" y="1218"/>
+        </scene>
     </scenes>
     <resources>
         <image name="Plus" width="40" height="40"/>

+ 0 - 452
iOSClient/MenuAccount+ControlCenter/CCControlCenter.m

@@ -1,452 +0,0 @@
-//
-//  CCControlCenter.m
-//  Crypto Cloud Technology Nextcloud
-//
-//  Created by Marino Faggiana on 07/04/16.
-//  Copyright (c) 2014 TWS. All rights reserved.
-//
-//  Author Marino Faggiana <m.faggiana@twsweb.it>
-//
-//  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 "CCControlCenter.h"
-#import "CCControlCenterTransfer.h"
-
-#import "CCControlCenterActivity.h"
-
-#import "AppDelegate.h"
-#import "CCMain.h"
-#import "CCDetail.h"
-
-#define SIZE_FONT_NORECORD 18.0f
-#define ANIMATION_GESTURE 0.50f
-
-@interface CCControlCenter ()
-{
-    UIVisualEffectView *_mainView;
-    UIView *_endLine;
-    
-    CGFloat start, stop;
-    
-    UIPanGestureRecognizer *panNavigationBar, *panImageDrag;
-    UITapGestureRecognizer *_singleFingerTap;
-    
-    UIPageControl *_pageControl;
-}
-@end
-
-@implementation CCControlCenter
-
-#pragma --------------------------------------------------------------------------------------------
-#pragma mark ===== Init =====
-#pragma --------------------------------------------------------------------------------------------
-
--  (id)initWithCoder:(NSCoder *)aDecoder
-{
-    if (self = [super initWithCoder:aDecoder])  {
-        
-        app.controlCenter = self;
-    }
-    return self;
-}
-
-- (void)viewDidLoad
-{
-    [super viewDidLoad];
-    
-    _controlCenterPagesContent = [NSMutableArray new];
-
-    UIBlurEffect *effect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleLight];
-    _mainView = [[UIVisualEffectView alloc] initWithEffect:effect];
-    [_mainView setFrame:CGRectMake(0, 0, self.navigationBar.frame.size.width, 0)];
-    _mainView.hidden = YES;
-    
-    // TEST
-    //_mainView.backgroundColor = [UIColor yellowColor];
-    
-    // Create data model
-    _pageType = @[k_pageControlCenterTransfer, k_pageControlCenterActivity];
-    
-    // Create page view controller
-    _pageViewController = [[UIStoryboard storyboardWithName: @"ControlCenter" bundle:[NSBundle mainBundle]] instantiateViewControllerWithIdentifier:@"ControlCenterPageViewController"];
-    _pageViewController.dataSource = self;
-    _pageViewController.delegate = self;
-    
-    UIViewController *startingViewController;
-    NSArray *viewControllers;
-    
-    startingViewController= [self viewControllerAtIndex:0];
-    viewControllers = @[startingViewController];
-    [_pageViewController setViewControllers:viewControllers direction:UIPageViewControllerNavigationDirectionForward animated:NO completion:nil];
-    
-    [_pageViewController.view setFrame:CGRectMake(0, 0, self.navigationBar.frame.size.width, 0)];
-    _pageViewController.view.autoresizingMask = UIViewAutoresizingFlexibleWidth;
-     
-    [_mainView addSubview:_pageViewController.view];
-    
-    _labelMessageNoRecord =[[UILabel alloc]init];
-    _labelMessageNoRecord.backgroundColor=[UIColor clearColor];
-    _labelMessageNoRecord.textColor = COLOR_CONTROL_CENTER;
-    _labelMessageNoRecord.font = [UIFont systemFontOfSize:SIZE_FONT_NORECORD];
-    _labelMessageNoRecord.textAlignment = NSTextAlignmentCenter;
-
-    [_mainView addSubview:_labelMessageNoRecord];
-    
-    _endLine = [[UIView alloc] init];
-    [_endLine setFrame:CGRectMake(0, 0, self.navigationBar.frame.size.width, 0)];
-    _endLine.backgroundColor = COLOR_CONTROL_CENTER;
-
-    [_mainView addSubview:_endLine];
-    
-    [self.navigationBar.superview insertSubview:_mainView belowSubview:self.navigationBar];
-    
-    // Pop Gesture Recognizer
-    [self.interactivePopGestureRecognizer addTarget:self action:@selector(handlePopGesture:)];
-    
-    panImageDrag = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(handlePanGesture:)];
-    panImageDrag.maximumNumberOfTouches = panImageDrag.minimumNumberOfTouches = 1;
-    
-    // Add Gesture on _pageControl
-    NSArray *subviews = self.pageViewController.view.subviews;
-    for (int i=0; i<[subviews count]; i++) {
-        if ([[subviews objectAtIndex:i] isKindOfClass:[UIPageControl class]]) {
-            _pageControl = (UIPageControl *)[subviews objectAtIndex:i];
-            [_pageControl addGestureRecognizer:panImageDrag];
-        }
-    }
-
-    panNavigationBar = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(handlePanGesture:)];
-    panNavigationBar.maximumNumberOfTouches = panNavigationBar.minimumNumberOfTouches = 1;
-    
-    [self.navigationBar addGestureRecognizer:panNavigationBar];
-}
-
-/* iOS Developer Library : A panning gesture is continuous. It begins (UIGestureRecognizerStateBegan) when the minimum number of fingers allowed (minimumNumberOfTouches) has moved enough to be considered a pan. It changes (UIGestureRecognizerStateChanged) when a finger moves while at least the minimum number of fingers are pressed down. It ends (UIGestureRecognizerStateEnded) when all fingers are lifted. */
-
-- (void)handlePanGesture:(UIPanGestureRecognizer *)gesture;
-{
-    CGPoint currentPoint = [gesture locationInView:self.view];
-    CGFloat navigationBarH = self.navigationBar.frame.size.height + [UIApplication sharedApplication].statusBarFrame.size.height;
-    CGFloat navigationBarW = self.navigationBar.frame.size.width;
-    CGFloat heightScreen = [UIScreen mainScreen].bounds.size.height - self.tabBarController.tabBar.frame.size.height;
-    CGFloat heightTableView = heightScreen - navigationBarH;
-
-    float centerMaxH = [self getMaxH] / 2;
-    float step = [self getMaxH] / 10;
-    float tableViewY = navigationBarH;
-    
-    // BUG Scroll to top of UITableView by tapping status bar
-    _mainView.hidden = NO;
-    
-    // start
-    if (gesture.state == UIGestureRecognizerStateBegan) {
-     
-        start = currentPoint.y;
-    }
-    
-    // cancelled (return to 0)
-    if (gesture.state == UIGestureRecognizerStateCancelled) {
-        
-        currentPoint.y = 0;
-        tableViewY = 0;
-        panNavigationBar.enabled = YES;
-    }
-
-    // end
-    if (gesture.state == UIGestureRecognizerStateEnded) {
-        
-        stop = currentPoint.y;
-        
-        // DOWN
-        if (start < stop) {
-        
-            if (stop < (start + step + navigationBarH) && start <= navigationBarH) {
-                currentPoint.y = 0;
-                tableViewY = 0;
-                panNavigationBar.enabled = YES;
-            } else {
-                currentPoint.y = [self getMaxH];
-                tableViewY = navigationBarH;
-                panNavigationBar.enabled = NO;
-            }
-        }
-        
-        // UP
-        if (start >= stop && start >= navigationBarH) {
-            
-            if (stop > (start - step)) {
-                currentPoint.y = [self getMaxH];
-                tableViewY = navigationBarH;
-                panNavigationBar.enabled = NO;
-            } else {
-                currentPoint.y = 0;
-                tableViewY = 0;
-                panNavigationBar.enabled = YES;
-            }
-        }
-    }
-    
-    // changed
-    if (gesture.state == UIGestureRecognizerStateChanged) {
-        
-        if (currentPoint.y <= navigationBarH) {
-            currentPoint.y = 0;
-            tableViewY = 0;
-        }
-        else if (currentPoint.y >= [self getMaxH]) {
-            currentPoint.y = [self getMaxH];
-            tableViewY = navigationBarH;
-        }
-        else {
-            if (currentPoint.y - navigationBarH < navigationBarH) tableViewY = currentPoint.y - navigationBarH;
-            else tableViewY = navigationBarH;
-        }
-    }
-    
-    [UIView animateWithDuration:ANIMATION_GESTURE delay:0.0 options:UIViewAnimationOptionTransitionCrossDissolve
-        animations:^ {
-        
-            _mainView.frame = CGRectMake(0, 0, navigationBarW, currentPoint.y);
-            _pageViewController.view.frame = CGRectMake(0, currentPoint.y - heightScreen + navigationBarH, navigationBarW, heightTableView);
-            _labelMessageNoRecord.frame = CGRectMake(0, currentPoint.y - centerMaxH, navigationBarW, SIZE_FONT_NORECORD+10);
-            _endLine.frame = CGRectMake(0, currentPoint.y - _pageControl.frame.size.height, navigationBarW, 1);
-            
-        } completion:^ (BOOL completed) {
-            
-            if (_mainView.frame.size.height == [self getMaxH]) {
-                [self setIsOpen:YES];
-            } else {
-                [self setIsOpen:NO];
-            }
-            
-            // BUG Scroll to top of UITableView by tapping status bar
-            if (_mainView.frame.size.height == 0)
-                _mainView.hidden = YES;
-        }
-    ];
-}
-
-/* iOS Developer Library : The navigation controller installs this gesture recognizer on its view and uses it to pop the topmost view controller off the navigation stack. You can use this property to retrieve the gesture recognizer and tie it to the behavior of other gesture recognizers in your user interface. When tying your gesture recognizers together, make sure they recognize their gestures simultaneously to ensure that your gesture recognizers are given a chance to handle the event. */
-
-- (void)handlePopGesture:(UIGestureRecognizer *)gesture
-{
-    if (gesture.state == UIGestureRecognizerStateBegan) {
-        _isPopGesture = YES;
-    }
-    
-    if (gesture.state == UIGestureRecognizerStateEnded) {
-        _isPopGesture = NO;
-    }
-}
-
-//  rotazione
-- (void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator
-{
-    if (_isOpen) {
-    
-        /*
-        [self setControlCenterHidden:YES];
-    
-        [coordinator animateAlongsideTransition:nil completion:^(id<UIViewControllerTransitionCoordinatorContext> context) {
-        
-            [self openControlCenterToSize];
-        
-            [self setControlCenterHidden: self.navigationBarHidden];
-        }];
-        */
-        
-        [self closeControlCenter];
-    }
-    
-    [super viewWillTransitionToSize:size withTransitionCoordinator:coordinator];
-}
-
-- (void)setControlCenterHidden:(BOOL)hidden
-{
-    _mainView.hidden = hidden;
-}
-
-- (float)getMaxH
-{
-    //return ([UIScreen mainScreen].bounds.size.height / 4) * 3;
-    
-    return [UIScreen mainScreen].bounds.size.height - self.tabBarController.tabBar.frame.size.height;
-}
-
-- (void)closeControlCenter
-{
-    _mainView.frame = CGRectMake(0, 0, self.navigationBar.frame.size.width, 0);
-    _pageViewController.view.frame = CGRectMake(0, 0, _mainView.frame.size.width, 0);
-    _labelMessageNoRecord.frame = CGRectMake(0, 0, _mainView.frame.size.width, 0);
-    _endLine.frame = CGRectMake(0, 0, _mainView.frame.size.width, 0);
- 
-    panNavigationBar.enabled = YES;
-    [self setIsOpen:NO];
-}
-
-- (void)setIsOpen:(BOOL)setOpen
-{
-    if (setOpen) {
-        
-        if (!_isOpen) {
-            
-            _isOpen = YES;
-
-            [app.controlCenterTransfer reloadDatasource];
-        }
-        
-    } else {
-        
-        _isOpen = NO;
-        
-    }
-    
-    [self changeTabBarApplicationFileImage];
-}
-
-#pragma --------------------------------------------------------------------------------------------
-#pragma mark - ===== Single Finger Tap =====
-#pragma --------------------------------------------------------------------------------------------
-
-- (void)enableSingleFingerTap:(SEL)selector target:(id)target
-{
-    _singleFingerTap = [[UITapGestureRecognizer alloc] initWithTarget:target action:selector];
-    [self.navigationBar addGestureRecognizer:_singleFingerTap];
-}
-
-- (void)disableSingleFingerTap
-{
-    [self.navigationBar removeGestureRecognizer:_singleFingerTap];
-}
-
-#pragma --------------------------------------------------------------------------------------------
-#pragma mark ===== Page  =====
-#pragma --------------------------------------------------------------------------------------------
-
-- (UIViewController *)viewControllerAtIndex:(NSUInteger)index
-{
-    if (([self.pageType count] == 0) || (index >= [self.pageType count])) {
-        return nil;
-    }
-    
-    UIViewController *pageContentViewController;
-    
-    if ([self.controlCenterPagesContent count] >= index+1) {
-        
-        pageContentViewController = [self.controlCenterPagesContent objectAtIndex:index];
-        
-    } else {
-        
-        if (index == 0)
-            pageContentViewController = [[UIStoryboard storyboardWithName: @"ControlCenter" bundle:[NSBundle mainBundle]]  instantiateViewControllerWithIdentifier:@"ControlCenterTransfer"];
-        
-        if (index == 1)
-            pageContentViewController = [[UIStoryboard storyboardWithName: @"ControlCenter" bundle:[NSBundle mainBundle]]  instantiateViewControllerWithIdentifier:@"ControlCenterActivity"];
-        
-        [self.controlCenterPagesContent addObject:pageContentViewController];
-    }
-    
-    ((CCControlCenterTransfer *) pageContentViewController).pageIndex = index;
-    ((CCControlCenterTransfer *) pageContentViewController).pageType = self.pageType[index];
-    
-    return pageContentViewController;
-}
-
-- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerBeforeViewController:(UIViewController *)viewController
-{
-    NSUInteger index = ((CCControlCenterTransfer *) viewController).pageIndex;
-    
-    if ((index == 0) || (index == NSNotFound)) {
-        return nil;
-    }
-    
-    index--;
-    return [self viewControllerAtIndex:index];
-}
-
-- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerAfterViewController:(UIViewController *)viewController
-{
-    NSUInteger index = ((CCControlCenterTransfer *) viewController).pageIndex;
-    
-    if (index == NSNotFound) {
-        return nil;
-    }
-    
-    index++;
-    if (index == [self.pageType count]) {
-        return nil;
-    }
-    return [self viewControllerAtIndex:index];
-}
-
-- (NSInteger)presentationCountForPageViewController:(UIPageViewController *)pageViewController
-{
-    return [self.pageType count];
-}
-
-- (NSInteger)presentationIndexForPageViewController:(UIPageViewController *)pageViewController
-{
-    return 0;
-}
-
-- (void)pageViewController:(UIPageViewController *)pageViewController didFinishAnimating:(BOOL)finished previousViewControllers:(NSArray<UIViewController *> *)previousViewControllers transitionCompleted:(BOOL)completed
-{
-    [self changeTabBarApplicationFileImage];
-}
-
-- (void)changeTabBarApplicationFileImage
-{
-    // Standard Image
-    if (!_isOpen) {
-        
-        self.title = NSLocalizedString(@"_home_", nil);
-
-        UITabBarItem *item = [self.tabBarController.tabBar.items objectAtIndex: k_tabBarApplicationIndexFile];
-        item.selectedImage = [UIImage imageNamed:image_tabBarFiles];
-        item.image = [UIImage imageNamed:image_tabBarFiles];
-        
-        return;
-    }
-
-    // Change Image
-    
-    if ([[self getActivePage] isEqualToString:k_pageControlCenterActivity]) {
-        
-        self.title = NSLocalizedString(@"_activity_", nil);
-        
-        UITabBarItem *item = [self.tabBarController.tabBar.items objectAtIndex: k_tabBarApplicationIndexFile];
-        item.selectedImage = [UIImage imageNamed:image_tabBarActivity];
-        item.image = [UIImage imageNamed:image_tabBarActivity];
-        
-    }
-    
-    if ([[self getActivePage] isEqualToString:k_pageControlCenterTransfer]) {
-        
-        self.title = NSLocalizedString(@"_transfers_", nil);
-        
-        UITabBarItem *item = [self.tabBarController.tabBar.items objectAtIndex: k_tabBarApplicationIndexFile];
-        item.selectedImage = [UIImage imageNamed:image_tabBarTransfer];
-        item.image = [UIImage imageNamed:image_tabBarTransfer];
-    }
-}
-
-- (NSString *)getActivePage
-{
-    CCControlCenterTransfer *vc = [self.pageViewController.viewControllers lastObject];
-    
-    return vc.pageType;
-}
-
-@end

+ 0 - 21
iOSClient/MenuAccount+ControlCenter/CCControlCenterActivity.h

@@ -1,21 +0,0 @@
-//
-//  CCControlCenterActivity.h
-//  Nextcloud
-//
-//  Created by Marino Faggiana on 01/03/17.
-//  Copyright © 2017 TWS. All rights reserved.
-//
-
-#import <Foundation/Foundation.h>
-
-@interface CCControlCenterActivity : UICollectionViewController <UICollectionViewDataSource, UICollectionViewDelegate>
-
-@property NSUInteger pageIndex;
-
-@property (nonatomic, strong) NSDate *storeDateFirstActivity;
-@property (nonatomic, strong) NSString *pageType;
-
-- (void)reloadDatasource;
-+ (CGFloat)getLabelHeight:(UILabel*)label width:(int)width;
-
-@end

+ 0 - 309
iOSClient/MenuAccount+ControlCenter/CCControlCenterActivity.m

@@ -1,309 +0,0 @@
-//
-//  CCControlCenterActivity.m
-//  Nextcloud
-//
-//  Created by Marino Faggiana on 01/03/17.
-//  Copyright © 2017 TWS. All rights reserved.
-//
-
-#import "CCControlCenterActivity.h"
-
-#import "AppDelegate.h"
-#import "CCSection.h"
-
-#define fontSizeData    [UIFont boldSystemFontOfSize:15]
-#define fontSizeAction  [UIFont systemFontOfSize:14]
-#define fontSizeNote    [UIFont systemFontOfSize:14]
-
-#define daysOfActivity  7
-
-@interface CCControlCenterActivity ()
-{
-    BOOL _verbose;
-
-    // Datasource
-    NSArray *_sectionDataSource;
-}
-@end
-
-@implementation CCControlCenterActivity
-
-#pragma --------------------------------------------------------------------------------------------
-#pragma mark ===== Init =====
-#pragma --------------------------------------------------------------------------------------------
-
--  (id)initWithCoder:(NSCoder *)aDecoder
-{
-    if (self = [super initWithCoder:aDecoder])  {
-        
-    }
-    return self;
-}
-
-- (void)viewDidLoad {
-    
-    [super viewDidLoad];
-    
-    _verbose = [CCUtility getActivityVerboseHigh];
-    
-    _sectionDataSource = [NSArray new];
-    
-    [self reloadDatasource];
-}
-
-// Apparirà
-- (void)viewWillAppear:(BOOL)animated
-{
-    [super viewWillAppear:animated];
-    
-    _verbose = [CCUtility getActivityVerboseHigh];
-    
-    app.controlCenter.labelMessageNoRecord.hidden = YES;
-}
-
-// E' arrivato
-- (void)viewDidAppear:(BOOL)animated
-{
-    [super viewDidAppear:animated];
-    
-    [self reloadDatasource];
-}
-
-- (void)didReceiveMemoryWarning {
-    
-    [super didReceiveMemoryWarning];
-}
-
-#pragma --------------------------------------------------------------------------------------------
-#pragma mark - ==== Datasource ====
-#pragma --------------------------------------------------------------------------------------------
-
-- (void)reloadDatasource
-{
-    // test
-    if (app.activeAccount.length == 0)
-        return;
-    
-    if (app.controlCenter.isOpen) {
-        
-        NSPredicate *predicate;
-        
-        NSDate *sixDaysAgo = [[NSCalendar currentCalendar] dateByAddingUnit:NSCalendarUnitDay value:-daysOfActivity toDate:[NSDate date] options:0];
-        
-        if (_verbose)
-            predicate = [NSPredicate predicateWithFormat:@"((account == %@) || (account == '')) AND (date > %@)", app.activeAccount, sixDaysAgo];
-        else
-            predicate = [NSPredicate predicateWithFormat:@"(account == %@) AND (verbose == %lu) AND (date > %@)", app.activeAccount, k_activityVerboseDefault, sixDaysAgo];
-
-        _sectionDataSource = [CCCoreData getAllTableActivityWithPredicate: predicate];
-        
-        [self reloadCollection];
-    }
-}
-
-- (void)reloadCollection
-{
-    NSDate *dateActivity;
-    
-    if ([_sectionDataSource count] == 0) {
-            
-        app.controlCenter.labelMessageNoRecord.text = NSLocalizedString(@"_no_activity_",nil);
-        app.controlCenter.labelMessageNoRecord.hidden = NO;
-            
-    } else {
-            
-        app.controlCenter.labelMessageNoRecord.hidden = YES;
-        dateActivity = ((TableActivity *)[_sectionDataSource objectAtIndex:0]).date;
-    }
-
-    if ([dateActivity compare:_storeDateFirstActivity] == NSOrderedDescending || _storeDateFirstActivity == nil || dateActivity == nil) {
-        _storeDateFirstActivity = dateActivity;
-        [self.collectionView reloadData];
-    }
-}
-    
-#pragma --------------------------------------------------------------------------------------------
-#pragma mark - ==== Table ====
-#pragma --------------------------------------------------------------------------------------------
-
-- (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView
-{
-    return [_sectionDataSource count];
-}
-
-- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section
-{
-    TableActivity *activity = [_sectionDataSource objectAtIndex:section];
-        
-    if ([activity.action isEqual: k_activityDebugActionDownload] || [activity.action isEqual: k_activityDebugActionUpload]) {
-        
-        if ([[NSFileManager defaultManager] fileExistsAtPath:[NSString stringWithFormat:@"%@/%@.ico", app.directoryUser, activity.fileID]])
-            return 1;
-        else
-            return 0;
-    }
-    
-    return 0;
-}
-
--(CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout referenceSizeForHeaderInSection:(NSInteger)section
-{
-    TableActivity *activity = [_sectionDataSource objectAtIndex:section];
-    
-    UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, collectionView.frame.size.width - 40, CGFLOAT_MAX)];
-    label.numberOfLines = 0;
-    label.lineBreakMode = NSLineBreakByWordWrapping;
-    [label sizeToFit];
-    
-    // Action
-    [label setFont:fontSizeAction];
-    label.text = [NSString stringWithFormat:@"%@ %@", activity.action, activity.file];
-    int heightAction = [[self class] getLabelHeight:label width:self.collectionView.frame.size.width];
-    
-    // Note
-    [label setFont:fontSizeNote];
-    
-    if (_verbose && activity.idActivity == 0 && [activity.selector length] > 0)
-        label.text = [NSString stringWithFormat:@"%@ Selector: %@", activity.note, activity.selector];
-    else
-        label.text = activity.note;
-    
-    int heightNote = [[self class] getLabelHeight:label width:self.collectionView.frame.size.width];
-    
-    int heightView = 40 + heightAction + heightNote + 17;
-    
-    return CGSizeMake(collectionView.frame.size.width, heightView);
-}
-
-- (UICollectionReusableView *)collectionView:(UICollectionView *)collectionView viewForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath
-{
-    UICollectionReusableView *reusableview;
-    
-    if (kind == UICollectionElementKindSectionHeader) {
-    
-        reusableview = [collectionView dequeueReusableSupplementaryViewOfKind:kind withReuseIdentifier:@"header" forIndexPath:indexPath];
-        
-        TableActivity *activity = [_sectionDataSource objectAtIndex:indexPath.section];
-    
-        UILabel *dateLabel = (UILabel *)[reusableview viewWithTag:100];
-        UILabel *actionLabel = (UILabel *)[reusableview viewWithTag:101];
-        UILabel *noteLabel = (UILabel *)[reusableview viewWithTag:102];
-        UIImageView *typeImage = (UIImageView *) [reusableview viewWithTag:103];
-    
-        [dateLabel setFont:fontSizeData];
-        dateLabel.textColor = [UIColor colorWithRed:100.0/255.0 green:100.0/255.0 blue:100.0/255.0 alpha:1.0];
-    
-        if (_verbose) {
-        
-            dateLabel.text = [NSDateFormatter localizedStringFromDate:activity.date dateStyle:NSDateFormatterFullStyle timeStyle:NSDateFormatterMediumStyle];
-        
-        } else {
-        
-            NSDateComponents* comps = [[NSCalendar currentCalendar] components:NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay fromDate:activity.date];
-            dateLabel.text = [CCUtility getTitleSectionDate:[[NSCalendar currentCalendar] dateFromComponents:comps]];
-        }
-    
-        [actionLabel setFont:fontSizeAction];
-        [actionLabel sizeToFit];
-        actionLabel.text = [NSString stringWithFormat:@"%@ %@", activity.action, activity.file];
-
-        if ([activity.type isEqualToString:k_activityTypeInfo]) {
-        
-            actionLabel.textColor = COLOR_BRAND;
-        
-            if (activity.idActivity == 0)
-                typeImage.image = [UIImage imageNamed:@"activityTypeInfo"];
-            else
-                typeImage.image = [UIImage imageNamed:@"activityTypeInfoServer"];
-        }
-    
-        if ([activity.type isEqualToString:k_activityTypeSuccess]) {
-        
-            actionLabel.textColor = [UIColor colorWithRed:87.0/255.0 green:187.0/255.0 blue:57.0/255.0 alpha:1.0];;
-            typeImage.image = [UIImage imageNamed:@"activityTypeSuccess"];
-        }
-    
-        if ([activity.type isEqualToString:k_activityTypeFailure]) {
-        
-            actionLabel.textColor = [UIColor redColor];
-            typeImage.image = [UIImage imageNamed:@"activityTypeFailure"];
-        }
-    
-        [noteLabel setFont:fontSizeNote];
-        [noteLabel sizeToFit];
-        noteLabel.textColor = COLOR_TEXT_ANTHRACITE;
-        noteLabel.numberOfLines = 0;
-        noteLabel.lineBreakMode = NSLineBreakByWordWrapping;
-    
-        if (_verbose && activity.idActivity == 0 && [activity.selector length] > 0)
-            noteLabel.text = [NSString stringWithFormat:@"%@ Selector: %@", activity.note, activity.selector];
-        else
-            noteLabel.text = activity.note;
-    }
-    
-    if (kind == UICollectionElementKindSectionFooter) {
-        
-         reusableview = [collectionView dequeueReusableSupplementaryViewOfKind:kind withReuseIdentifier:@"footer" forIndexPath:indexPath];
-    }
-    
-    return reusableview;
-}
-
-- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
-{
-    UICollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"cell" forIndexPath:indexPath];
-    cell.backgroundColor = [UIColor clearColor];
-    UIImageView *imageView = (UIImageView *)[cell viewWithTag:104];
-
-    TableActivity *activity = [_sectionDataSource objectAtIndex:indexPath.section];
-    
-    imageView.image = [UIImage imageWithContentsOfFile:[NSString stringWithFormat:@"%@/%@.ico", app.directoryUser, activity.fileID]];
-    
-    return cell;
-}
-
-- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath
-{
-    TableActivity *activity = [_sectionDataSource objectAtIndex:indexPath.section];
-    
-    CCMetadata *metadata = [CCCoreData getMetadataWithPreficate:[NSPredicate predicateWithFormat:@"(account == %@) AND (fileID == %@)", activity.account, activity.fileID] context:nil];
-    
-    if (metadata) {
-        
-        if (!self.splitViewController.isCollapsed && app.activeMain.detailViewController.isViewLoaded && app.activeMain.detailViewController.view.window)
-            [app.activeMain.navigationController popToRootViewControllerAnimated:NO];
-        
-        dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 0.1 * NSEC_PER_SEC), dispatch_get_main_queue(), ^{
-            
-            [app.activeMain performSegueWithIdentifier:@"segueDetail" sender:metadata];
-            
-            [app.controlCenter closeControlCenter];
-        });
-        
-    } else {
-        
-        [app messageNotification:@"_info_" description:@"_activity_file_not_present_" visible:YES delay:k_dismissAfterSecond type:TWMessageBarMessageTypeInfo];
-    }
-}
-
-#pragma --------------------------------------------------------------------------------------------
-#pragma mark - ==== Utility ====
-#pragma --------------------------------------------------------------------------------------------
-
-+ (CGFloat)getLabelHeight:(UILabel*)label width:(int)width
-{
-    CGSize constraint = CGSizeMake(width, CGFLOAT_MAX);
-    
-    NSMutableParagraphStyle *paragraph = [NSMutableParagraphStyle new];
-    paragraph.lineBreakMode = NSLineBreakByWordWrapping;
-    NSDictionary *attributes = @{NSFontAttributeName : label.font, NSParagraphStyleAttributeName: paragraph};
-    
-    NSStringDrawingContext *context = [NSStringDrawingContext new];
-    CGSize boundingBox = [label.text boundingRectWithSize:constraint options:NSStringDrawingUsesLineFragmentOrigin attributes:attributes context:context].size;
-    
-    CGSize size = CGSizeMake(ceil(boundingBox.width), ceil(boundingBox.height));
-    
-    return size.height;
-}
-
-@end

+ 0 - 20
iOSClient/MenuAccount+ControlCenter/CCControlCenterTransfer.h

@@ -1,20 +0,0 @@
-//
-//  CCControlCenterTransfer.h
-//  Nextcloud
-//
-//  Created by Marino Faggiana on 01/03/17.
-//  Copyright © 2017 TWS. All rights reserved.
-//
-
-#import <UIKit/UIKit.h>
-
-@interface CCControlCenterTransfer : UIViewController <UITableViewDataSource, UITableViewDelegate>
-
-@property NSUInteger pageIndex;
-@property (nonatomic, strong) NSString *pageType;
-
-@property (nonatomic, weak) IBOutlet UITableView *tableView;
-
-- (void)reloadDatasource;
-
-@end

+ 0 - 150
iOSClient/MenuAccount+ControlCenter/ControlCenter.storyboard

@@ -1,150 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="12118" systemVersion="16E195" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
-    <device id="retina4_7" orientation="portrait">
-        <adaptation id="fullscreen"/>
-    </device>
-    <dependencies>
-        <deployment identifier="iOS"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="12086"/>
-        <capability name="Constraints to layout margins" minToolsVersion="6.0"/>
-        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
-    </dependencies>
-    <scenes>
-        <!--Page View Controller-->
-        <scene sceneID="m6z-8w-IJV">
-            <objects>
-                <pageViewController storyboardIdentifier="ControlCenterPageViewController" autoresizesArchivedViewToFullSize="NO" transitionStyle="scroll" navigationOrientation="horizontal" spineLocation="none" id="khw-cy-z0B" sceneMemberID="viewController"/>
-                <placeholder placeholderIdentifier="IBFirstResponder" id="bXc-vg-quF" userLabel="First Responder" sceneMemberID="firstResponder"/>
-            </objects>
-            <point key="canvasLocation" x="6487" y="1218"/>
-        </scene>
-        <!--Control Center Activity-->
-        <scene sceneID="9Yy-2x-V4o">
-            <objects>
-                <collectionViewController storyboardIdentifier="ControlCenterActivity" id="Sa9-Gr-Uug" customClass="CCControlCenterActivity" sceneMemberID="viewController">
-                    <collectionView key="view" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" misplaced="YES" dataMode="prototypes" id="cgR-Jd-WnD">
-                        <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
-                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
-                        <collectionViewFlowLayout key="collectionViewLayout" minimumLineSpacing="10" minimumInteritemSpacing="10" id="cmY-iB-PWk">
-                            <size key="itemSize" width="40" height="40"/>
-                            <size key="headerReferenceSize" width="50" height="92"/>
-                            <size key="footerReferenceSize" width="50" height="5"/>
-                            <inset key="sectionInset" minX="48" minY="5" maxX="0.0" maxY="0.0"/>
-                        </collectionViewFlowLayout>
-                        <cells>
-                            <collectionViewCell opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" reuseIdentifier="cell" id="btw-Qo-oNg">
-                                <rect key="frame" x="48" y="97" width="40" height="40"/>
-                                <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
-                                <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center">
-                                    <rect key="frame" x="0.0" y="0.0" width="40" height="40"/>
-                                    <autoresizingMask key="autoresizingMask"/>
-                                    <subviews>
-                                        <imageView opaque="NO" userInteractionEnabled="NO" tag="104" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="x7j-w7-Sik">
-                                            <rect key="frame" x="0.0" y="0.0" width="40" height="40"/>
-                                            <autoresizingMask key="autoresizingMask"/>
-                                        </imageView>
-                                    </subviews>
-                                </view>
-                            </collectionViewCell>
-                        </cells>
-                        <collectionReusableView key="sectionHeaderView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" reuseIdentifier="header" id="6Zg-lt-YR9">
-                            <rect key="frame" x="0.0" y="0.0" width="375" height="92"/>
-                            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
-                            <subviews>
-                                <label opaque="NO" userInteractionEnabled="NO" tag="100" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="wordWrap" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="CHD-zb-9Fb">
-                                    <rect key="frame" x="48" y="8" width="319" height="20"/>
-                                    <constraints>
-                                        <constraint firstAttribute="height" constant="20" id="KNG-FZ-Mkw"/>
-                                    </constraints>
-                                    <fontDescription key="fontDescription" type="system" pointSize="12"/>
-                                    <nil key="textColor"/>
-                                    <nil key="highlightedColor"/>
-                                </label>
-                                <label opaque="NO" userInteractionEnabled="NO" tag="101" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="wordWrap" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="qKB-Ig-OvH">
-                                    <rect key="frame" x="48" y="33" width="319" height="20"/>
-                                    <constraints>
-                                        <constraint firstAttribute="height" relation="greaterThanOrEqual" constant="20" id="BTU-1T-ftI"/>
-                                    </constraints>
-                                    <fontDescription key="fontDescription" type="system" pointSize="12"/>
-                                    <nil key="textColor"/>
-                                    <nil key="highlightedColor"/>
-                                </label>
-                                <imageView userInteractionEnabled="NO" tag="103" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="LU0-Y8-8hN">
-                                    <rect key="frame" x="8" y="33" width="30" height="30"/>
-                                    <constraints>
-                                        <constraint firstAttribute="width" constant="30" id="p4B-3p-8mp"/>
-                                        <constraint firstAttribute="height" constant="30" id="p8e-3K-o0e"/>
-                                    </constraints>
-                                </imageView>
-                                <label opaque="NO" userInteractionEnabled="NO" tag="102" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="wordWrap" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="suK-ZC-07d">
-                                    <rect key="frame" x="48" y="58" width="319" height="20"/>
-                                    <constraints>
-                                        <constraint firstAttribute="height" relation="greaterThanOrEqual" constant="20" id="v2e-1C-t22"/>
-                                    </constraints>
-                                    <fontDescription key="fontDescription" type="system" pointSize="12"/>
-                                    <nil key="textColor"/>
-                                    <nil key="highlightedColor"/>
-                                </label>
-                            </subviews>
-                            <constraints>
-                                <constraint firstItem="CHD-zb-9Fb" firstAttribute="top" secondItem="6Zg-lt-YR9" secondAttribute="topMargin" id="8ru-Zh-wpS"/>
-                                <constraint firstItem="qKB-Ig-OvH" firstAttribute="top" secondItem="CHD-zb-9Fb" secondAttribute="bottom" constant="5" id="8rw-7X-U8w"/>
-                                <constraint firstItem="suK-ZC-07d" firstAttribute="trailing" secondItem="6Zg-lt-YR9" secondAttribute="trailingMargin" id="A1K-jb-U1u"/>
-                                <constraint firstItem="LU0-Y8-8hN" firstAttribute="leading" secondItem="6Zg-lt-YR9" secondAttribute="leadingMargin" id="FOM-MG-k6p"/>
-                                <constraint firstItem="qKB-Ig-OvH" firstAttribute="trailing" secondItem="6Zg-lt-YR9" secondAttribute="trailingMargin" id="NGy-ph-B0X"/>
-                                <constraint firstItem="qKB-Ig-OvH" firstAttribute="leading" secondItem="LU0-Y8-8hN" secondAttribute="trailing" constant="10" id="RtX-eW-zsg"/>
-                                <constraint firstItem="suK-ZC-07d" firstAttribute="top" secondItem="qKB-Ig-OvH" secondAttribute="bottom" constant="5" id="TYN-fx-aGV"/>
-                                <constraint firstItem="CHD-zb-9Fb" firstAttribute="trailing" secondItem="6Zg-lt-YR9" secondAttribute="trailingMargin" id="XTZ-m0-77T"/>
-                                <constraint firstItem="CHD-zb-9Fb" firstAttribute="leading" secondItem="6Zg-lt-YR9" secondAttribute="leadingMargin" constant="40" id="agi-9z-bgr"/>
-                                <constraint firstItem="suK-ZC-07d" firstAttribute="leading" secondItem="LU0-Y8-8hN" secondAttribute="trailing" constant="10" id="hzm-Os-54l"/>
-                                <constraint firstItem="LU0-Y8-8hN" firstAttribute="top" secondItem="6Zg-lt-YR9" secondAttribute="topMargin" constant="25" id="nBW-yd-hLP"/>
-                            </constraints>
-                        </collectionReusableView>
-                        <collectionReusableView key="sectionFooterView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" reuseIdentifier="footer" id="Bco-Ec-4yL">
-                            <rect key="frame" x="0.0" y="137" width="375" height="5"/>
-                            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
-                        </collectionReusableView>
-                        <connections>
-                            <outlet property="dataSource" destination="Sa9-Gr-Uug" id="TzW-IT-Zqv"/>
-                            <outlet property="delegate" destination="Sa9-Gr-Uug" id="zNO-J2-Q7Q"/>
-                        </connections>
-                    </collectionView>
-                </collectionViewController>
-                <placeholder placeholderIdentifier="IBFirstResponder" id="0k6-oO-NJC" userLabel="First Responder" sceneMemberID="firstResponder"/>
-            </objects>
-            <point key="canvasLocation" x="7160.8000000000002" y="1686.2068965517242"/>
-        </scene>
-        <!--Control Center Transfer-->
-        <scene sceneID="Gv7-Uy-0Cg">
-            <objects>
-                <viewController storyboardIdentifier="ControlCenterTransfer" id="XDY-MZ-Gnz" customClass="CCControlCenterTransfer" sceneMemberID="viewController">
-                    <layoutGuides>
-                        <viewControllerLayoutGuide type="top" id="uPE-Nb-KVS"/>
-                        <viewControllerLayoutGuide type="bottom" id="zG1-N8-9Mo"/>
-                    </layoutGuides>
-                    <view key="view" contentMode="scaleToFill" id="xeI-JC-cKn">
-                        <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
-                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
-                        <subviews>
-                            <tableView clipsSubviews="YES" contentMode="scaleToFill" fixedFrame="YES" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="default" rowHeight="44" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="cFo-AN-kZv">
-                                <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
-                                <autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
-                                <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
-                                <connections>
-                                    <outlet property="dataSource" destination="XDY-MZ-Gnz" id="ERx-9f-Lzx"/>
-                                    <outlet property="delegate" destination="XDY-MZ-Gnz" id="WCN-ad-5BK"/>
-                                </connections>
-                            </tableView>
-                        </subviews>
-                        <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
-                    </view>
-                    <connections>
-                        <outlet property="tableView" destination="cFo-AN-kZv" id="vLq-gh-way"/>
-                    </connections>
-                </viewController>
-                <placeholder placeholderIdentifier="IBFirstResponder" id="U19-6b-Mxz" userLabel="First Responder" sceneMemberID="firstResponder"/>
-            </objects>
-            <point key="canvasLocation" x="7161" y="982"/>
-        </scene>
-    </scenes>
-</document>

+ 2 - 2
iOSClient/MenuAccount+ControlCenter/CCMenu.h → iOSClient/MenuAccount/CCMenuAccount.h

@@ -1,5 +1,5 @@
 //
-//  CCMenu.h
+//  CCMenuAccount.h
 //  Crypto Cloud Technology Nextcloud
 //
 //  Created by Marino Faggiana on 07/04/16.
@@ -67,7 +67,7 @@ typedef struct {
 
 @end
 
-@interface CCMenu : NSObject
+@interface CCMenuAccount : NSObject
 
 + (void)showMenuInView:(UIView *)view fromRect:(CGRect)rect menuItems:(NSArray *)menuItems withOptions:(OptionalConfiguration)options;
 

+ 7 - 7
iOSClient/MenuAccount+ControlCenter/CCMenu.m → iOSClient/MenuAccount/CCMenuAccount.m

@@ -1,5 +1,5 @@
 //
-//  CCMenu.h
+//  CCMenuAccount.h
 //  Crypto Cloud Technology Nextcloud
 //
 //  Created by Marino Faggiana on 07/04/16.
@@ -24,7 +24,7 @@
 #import <Foundation/Foundation.h>
 #import <QuartzCore/QuartzCore.h>
 
-#import "CCMenu.h"
+#import "CCMenuAccount.h"
 
 ////////////////////////////////////////////////////////////////////////////////
 ////////////////////////////////////////////////////////////////////////////////
@@ -283,7 +283,7 @@ typedef enum {
     const CGFloat kMarginX = self.CCMenuViewOptions.marginXSpacing;
     const CGFloat kMarginY = self.CCMenuViewOptions.marginYSpacing;
     
-    UIFont *titleFont = [CCMenu titleFont];
+    UIFont *titleFont = [CCMenuAccount titleFont];
     if (!titleFont) titleFont = [UIFont boldSystemFontOfSize:16];
     
     CGFloat maxImageWidth = 0;
@@ -544,7 +544,7 @@ typedef enum {
     
     CGFloat R1 = R0, G1 = G0, B1 = B0;
     
-    UIColor *tintColor = [CCMenu tintColor];
+    UIColor *tintColor = [CCMenuAccount tintColor];
     if (tintColor) {
         
         CGFloat a;
@@ -677,11 +677,11 @@ typedef enum {
 ////////////////////////////////////////////////////////////////////////////////
 ////////////////////////////////////////////////////////////////////////////////
 
-static CCMenu *gMenu;
+static CCMenuAccount *gMenu;
 static UIColor *gTintColor;
 static UIFont *gTitleFont;
 
-@implementation CCMenu {
+@implementation CCMenuAccount {
     
     CCMenuView *_menuView;
     BOOL        _observing;
@@ -692,7 +692,7 @@ static UIFont *gTitleFont;
     static dispatch_once_t onceToken;
     dispatch_once(&onceToken, ^{
         
-        gMenu = [[CCMenu alloc] init];
+        gMenu = [[CCMenuAccount alloc] init];
     });
     return gMenu;
 }

+ 5 - 21
iOSClient/MenuAccount+ControlCenter/CCControlCenter.h → iOSClient/Transfers/CCTransfers.h

@@ -1,8 +1,8 @@
 //
-//  CCControlCenter.h
+//  CCTransfers.h
 //  Crypto Cloud Technology Nextcloud
 //
-//  Created by Marino Faggiana on 07/04/16.
+//  Created by Marino Faggiana on 12/04/17.
 //  Copyright (c) 2014 TWS. All rights reserved.
 //
 //  Author Marino Faggiana <m.faggiana@twsweb.it>
@@ -23,26 +23,10 @@
 
 #import <UIKit/UIKit.h>
 
-#import "CCGlobal.h"
-#import "CCSection.h"
-#import "CCMetadata.h"
+@interface CCTransfers : UIViewController <UITableViewDataSource, UITableViewDelegate>
 
-@interface CCControlCenter : UINavigationController <UIPageViewControllerDataSource, UIPageViewControllerDelegate>
-
-@property (nonatomic) BOOL isPopGesture;
-@property (nonatomic) BOOL isOpen;
-
-- (void)closeControlCenter;
-- (void)setControlCenterHidden:(BOOL)hidden;
-- (void)enableSingleFingerTap:(SEL)selector target:(id)target;
-- (void)disableSingleFingerTap;
-
-@property (strong, nonatomic) UILabel *labelMessageNoRecord;
-@property (strong, nonatomic) UIPageViewController *pageViewController;
-@property (strong, nonatomic) NSArray *pageType;
-@property (strong, nonatomic) NSMutableArray *controlCenterPagesContent;
-
-- (NSString *)getActivePage;
+@property (nonatomic, weak) IBOutlet UITableView *tableView;
 
+- (void)reloadDatasource;
 
 @end

+ 33 - 32
iOSClient/MenuAccount+ControlCenter/CCControlCenterTransfer.m → iOSClient/Transfers/CCTransfers.m

@@ -1,33 +1,48 @@
 //
-//  CCControlCenterPageContent.m
-//  Nextcloud
+//  CCTransfers.m
+//  Crypto Cloud Technology Nextcloud
 //
-//  Created by Marino Faggiana on 01/03/17.
-//  Copyright © 2017 TWS. All rights reserved.
+//  Created by Marino Faggiana on 12/04/17.
+//  Copyright (c) 2014 TWS. All rights reserved.
+//
+//  Author Marino Faggiana <m.faggiana@twsweb.it>
+//
+//  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 "CCControlCenterTransfer.h"
+#import "CCTransfers.h"
 
 #import "AppDelegate.h"
 #import "CCMain.h"
 #import "CCDetail.h"
 #import "CCSection.h"
 #import "CCMetadata.h"
-#import "CCControlCenterTransferCell.h"
+#import "CCTransfersCell.h"
 
 #define download 1
 #define downloadwwan 2
 #define upload 3
 #define uploadwwan 4
 
-@interface CCControlCenterTransfer ()
+@interface CCTransfers ()
 {    
     // Datasource
     CCSectionDataSourceMetadata *_sectionDataSource;
 }
 @end
 
-@implementation CCControlCenterTransfer
+@implementation CCTransfers
 
 #pragma --------------------------------------------------------------------------------------------
 #pragma mark ===== Init =====
@@ -39,7 +54,7 @@
         
         [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(triggerProgressTask:) name:@"NotificationProgressTask" object:nil];
         
-        app.controlCenterTransfer = self;
+        app.activeTransfers = self;
     }
     return self;
 }
@@ -49,7 +64,7 @@
     [super viewDidLoad];
     
     // Custom Cell
-    [_tableView registerNib:[UINib nibWithNibName:@"CCControlCenterTransferCell" bundle:nil] forCellReuseIdentifier:@"ControlCenterTransferCell"];
+    [_tableView registerNib:[UINib nibWithNibName:@"CCTransfersCell" bundle:nil] forCellReuseIdentifier:@"Cell"];
     
     _tableView.delegate = self;
     _tableView.dataSource = self;
@@ -63,8 +78,10 @@
 - (void)viewWillAppear:(BOOL)animated
 {
     [super viewWillAppear:animated];
-    
-    app.controlCenter.labelMessageNoRecord.hidden = YES;
+        
+    // Color
+    [CCAspect aspectNavigationControllerBar:self.navigationController.navigationBar encrypted:NO online:[app.reachability isReachable] hidden:NO];
+    [CCAspect aspectTabBar:self.tabBarController.tabBar hidden:NO];
 }
 
 // E' arrivato
@@ -104,7 +121,7 @@
     
     if (indexPath && indexPath.row == 0) {
         
-        CCControlCenterTransferCell *cell = (CCControlCenterTransferCell *)[_tableView cellForRowAtIndexPath:indexPath];
+        CCTransfersCell *cell = (CCTransfersCell *)[_tableView cellForRowAtIndexPath:indexPath];
         
         if (cryptated) cell.progressView.progressTintColor = COLOR_CRYPTOCLOUD;
         else cell.progressView.progressTintColor = COLOR_TEXT_ANTHRACITE;
@@ -246,26 +263,10 @@
     if (app.activeAccount.length == 0)
         return;
     
-    if (app.controlCenter.isOpen) {
-        
-        NSArray *recordsTableMetadata = [CCCoreData getTableMetadataWithPredicate:[NSPredicate predicateWithFormat:@"(account == %@) AND ((session CONTAINS 'upload') OR (session CONTAINS 'download' AND (sessionSelector != 'loadPlist')))", app.activeAccount] fieldOrder:@"sessionTaskIdentifier" ascending:YES];
+    NSArray *recordsTableMetadata = [CCCoreData getTableMetadataWithPredicate:[NSPredicate predicateWithFormat:@"(account == %@) AND ((session CONTAINS 'upload') OR (session CONTAINS 'download' AND (sessionSelector != 'loadPlist')))", app.activeAccount] fieldOrder:@"sessionTaskIdentifier" ascending:YES];
         
-        _sectionDataSource  = [CCSectionMetadata creataDataSourseSectionMetadata:recordsTableMetadata listProgressMetadata:app.listProgressMetadata groupByField:@"session" replaceDateToExifDate:NO activeAccount:app.activeAccount];
+    _sectionDataSource  = [CCSectionMetadata creataDataSourseSectionMetadata:recordsTableMetadata listProgressMetadata:app.listProgressMetadata groupByField:@"session" replaceDateToExifDate:NO activeAccount:app.activeAccount];
         
-        if ([[app.controlCenter getActivePage] isEqualToString:k_pageControlCenterTransfer]) {
-            
-            if ([_sectionDataSource.allRecordsDataSource count] == 0) {
-                
-                app.controlCenter.labelMessageNoRecord.text = NSLocalizedString(@"_no_transfer_",nil);
-                app.controlCenter.labelMessageNoRecord.hidden = NO;
-            
-            } else {
-            
-                app.controlCenter.labelMessageNoRecord.hidden = YES;
-            }
-        }
-    }
-    
     [_tableView reloadData];
     
     [app updateApplicationIconBadgeNumber];
@@ -476,7 +477,7 @@
     NSString *fileID = [[_sectionDataSource.sectionArrayRow objectForKey:[_sectionDataSource.sections objectAtIndex:indexPath.section]] objectAtIndex:indexPath.row];
     CCMetadata *metadata = [_sectionDataSource.allRecordsDataSource objectForKey:fileID];
     
-    CCControlCenterTransferCell *cell = (CCControlCenterTransferCell *)[tableView dequeueReusableCellWithIdentifier:@"ControlCenterTransferCell" forIndexPath:indexPath];
+    CCTransfersCell *cell = (CCTransfersCell *)[tableView dequeueReusableCellWithIdentifier:@"Cell" forIndexPath:indexPath];
     cell.backgroundColor = [UIColor clearColor];
     cell.selectionStyle = UITableViewCellSelectionStyleNone;
     

+ 2 - 2
iOSClient/MenuAccount+ControlCenter/CCControlCenterTransferCell.h → iOSClient/Transfers/CCTransfersCell.h

@@ -1,5 +1,5 @@
 //
-//  CCControlCenterTransferCell.h
+//  CCTransfersCell.h
 //  Crypto Cloud Technology Nextcloud
 //
 //  Created by Marino Faggiana on 05/05/15.
@@ -23,7 +23,7 @@
 
 #import <UIKit/UIKit.h>
 
-@interface CCControlCenterTransferCell : UITableViewCell
+@interface CCTransfersCell : UITableViewCell
 
 @property(nonatomic, weak) IBOutlet UIImageView *fileImageView;
 @property(nonatomic, weak) IBOutlet UIImageView *statusImageView;

+ 3 - 3
iOSClient/MenuAccount+ControlCenter/CCControlCenterTransferCell.m → iOSClient/Transfers/CCTransfersCell.m

@@ -1,5 +1,5 @@
 //
-//  CCControlCenterTransferCell.m
+//  CCTransfersCell.m
 //  Crypto Cloud Technology Nextcloud
 //
 //  Created by Marino Faggiana on 05/05/15.
@@ -21,9 +21,9 @@
 //  along with this program.  If not, see <http://www.gnu.org/licenses/>.
 //
 
-#import "CCControlCenterTransferCell.h"
+#import "CCTransfersCell.h"
 
-@implementation CCControlCenterTransferCell
+@implementation CCTransfersCell
 
 - (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
 {

+ 2 - 2
iOSClient/MenuAccount+ControlCenter/CCControlCenterTransferCell.xib → iOSClient/Transfers/CCTransfersCell.xib

@@ -13,11 +13,11 @@
     <objects>
         <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="CustomCellFileAndDirectory"/>
         <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
-        <tableViewCell contentMode="scaleToFill" selectionStyle="blue" indentationWidth="0.0" reuseIdentifier="ControlCenterTransferCell" rowHeight="167" id="2" userLabel="CCControlCenterTransferCell" customClass="CCControlCenterTransferCell">
+        <tableViewCell contentMode="scaleToFill" selectionStyle="blue" indentationWidth="0.0" reuseIdentifier="Cell" rowHeight="167" id="2" userLabel="CCTransfersCell" customClass="CCTransfersCell">
             <rect key="frame" x="0.0" y="0.0" width="600" height="50"/>
             <autoresizingMask key="autoresizingMask" flexibleMaxY="YES"/>
             <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" alpha="0.69999999999999996" contentMode="center" tableViewCell="2" id="sQq-jC-UEV">
-                <rect key="frame" x="0.0" y="0.0" width="600" height="50"/>
+                <rect key="frame" x="0.0" y="0.0" width="600" height="49.5"/>
                 <autoresizingMask key="autoresizingMask"/>
                 <subviews>
                     <label opaque="NO" userInteractionEnabled="NO" tag="101" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="QNC-8X-DAC">