Browse Source

Improved class new UI

Marino Faggiana 6 years ago
parent
commit
f830caeef4

+ 69 - 33
Nextcloud.xcodeproj/project.pbxproj

@@ -128,7 +128,6 @@
 		F7169A1C1EE590930086BD69 /* NCShares.m in Sources */ = {isa = PBXBuildFile; fileRef = F7169A181EE590930086BD69 /* NCShares.m */; };
 		F7169A1D1EE590930086BD69 /* NCSharesCell.m in Sources */ = {isa = PBXBuildFile; fileRef = F7169A1A1EE590930086BD69 /* NCSharesCell.m */; };
 		F7169A1E1EE590930086BD69 /* NCSharesCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = F7169A1B1EE590930086BD69 /* NCSharesCell.xib */; };
-		F71A6519218304A90069C970 /* NCOfflineHeaderFooterSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = F71A6518218304A90069C970 /* NCOfflineHeaderFooterSection.swift */; };
 		F7226EDC1EE4089300EBECB1 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = F7226EDB1EE4089300EBECB1 /* Main.storyboard */; };
 		F726EEEC1FED1C820030B9C8 /* NCEndToEndInitialize.swift in Sources */ = {isa = PBXBuildFile; fileRef = F726EEEB1FED1C820030B9C8 /* NCEndToEndInitialize.swift */; };
 		F729B92B217A2E4E00FE2150 /* NCActionSheetHeaderView.xib in Resources */ = {isa = PBXBuildFile; fileRef = F729B92A217A2E4E00FE2150 /* NCActionSheetHeaderView.xib */; };
@@ -165,12 +164,7 @@
 		F732BA0B1D76DBA500E9878B /* CCNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = F732BA041D76CE1500E9878B /* CCNetworking.m */; };
 		F734E5891F019D860060CB77 /* UIScrollView+EmptyDataSet.m in Sources */ = {isa = PBXBuildFile; fileRef = F73CCE241DC13788007E38D8 /* UIScrollView+EmptyDataSet.m */; };
 		F7381EE1218218C9000B1560 /* NCOffline.swift in Sources */ = {isa = PBXBuildFile; fileRef = F7381EDA218218C9000B1560 /* NCOffline.swift */; };
-		F7381EE2218218C9000B1560 /* NCOfflineListCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = F7381EDB218218C9000B1560 /* NCOfflineListCell.xib */; };
-		F7381EE3218218C9000B1560 /* NCOfflineGridCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = F7381EDC218218C9000B1560 /* NCOfflineGridCell.swift */; };
-		F7381EE4218218C9000B1560 /* NCOfflineHeaderFooterMenu.swift in Sources */ = {isa = PBXBuildFile; fileRef = F7381EDD218218C9000B1560 /* NCOfflineHeaderFooterMenu.swift */; };
 		F7381EE5218218C9000B1560 /* NCOffline.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = F7381EDE218218C9000B1560 /* NCOffline.storyboard */; };
-		F7381EE6218218C9000B1560 /* NCOfflineListCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = F7381EDF218218C9000B1560 /* NCOfflineListCell.swift */; };
-		F7381EE7218218C9000B1560 /* NCOfflineGridCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = F7381EE0218218C9000B1560 /* NCOfflineGridCell.xib */; };
 		F738E8421F90FFD100F95C8E /* NCManageEndToEndEncryption.m in Sources */ = {isa = PBXBuildFile; fileRef = F738E8411F90FFD100F95C8E /* NCManageEndToEndEncryption.m */; };
 		F73B4EEE1F470D9100BBEE4B /* Big5Freq.tab in Resources */ = {isa = PBXBuildFile; fileRef = F73B4EAD1F470D9100BBEE4B /* Big5Freq.tab */; };
 		F73B4EEF1F470D9100BBEE4B /* CharDistribution.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F73B4EAE1F470D9100BBEE4B /* CharDistribution.cpp */; };
@@ -430,6 +424,13 @@
 		F762CB9B1EACB84400B38484 /* TWMessageBarManager.m in Sources */ = {isa = PBXBuildFile; fileRef = F762CB941EACB84400B38484 /* TWMessageBarManager.m */; };
 		F7632FBF21832F8700721B71 /* NCTrashHeaderMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = F7632FBE21832F8700721B71 /* NCTrashHeaderMenu.xib */; };
 		F7632FC1218353AA00721B71 /* NCTrashSectionFooter.xib in Resources */ = {isa = PBXBuildFile; fileRef = F7632FC0218353AA00721B71 /* NCTrashSectionFooter.xib */; };
+		F7632FD921836A5B00721B71 /* NCOfflineHeaderMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = F7632FD621836A5B00721B71 /* NCOfflineHeaderMenu.xib */; };
+		F7632FDA21836A5B00721B71 /* NCOfflineSectionFooter.xib in Resources */ = {isa = PBXBuildFile; fileRef = F7632FD721836A5B00721B71 /* NCOfflineSectionFooter.xib */; };
+		F7632FDB21836A5B00721B71 /* NCOfflineHeaderFooter.swift in Sources */ = {isa = PBXBuildFile; fileRef = F7632FD821836A5B00721B71 /* NCOfflineHeaderFooter.swift */; };
+		F7632FE021836A7100721B71 /* NCOfflineListCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = F7632FDC21836A7000721B71 /* NCOfflineListCell.xib */; };
+		F7632FE121836A7100721B71 /* NCOfflineGridCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = F7632FDD21836A7000721B71 /* NCOfflineGridCell.swift */; };
+		F7632FE221836A7100721B71 /* NCOfflineListCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = F7632FDE21836A7100721B71 /* NCOfflineListCell.swift */; };
+		F7632FE321836A7100721B71 /* NCOfflineGridCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = F7632FDF21836A7100721B71 /* NCOfflineGridCell.xib */; };
 		F7659A271DC0B726004860C4 /* EAIntroPage.m in Sources */ = {isa = PBXBuildFile; fileRef = F7659A231DC0B726004860C4 /* EAIntroPage.m */; };
 		F7659A291DC0B726004860C4 /* EAIntroView.m in Sources */ = {isa = PBXBuildFile; fileRef = F7659A251DC0B726004860C4 /* EAIntroView.m */; };
 		F7659A2E1DC0B72F004860C4 /* EARestrictedScrollView.m in Sources */ = {isa = PBXBuildFile; fileRef = F7659A2C1DC0B72F004860C4 /* EARestrictedScrollView.m */; };
@@ -918,7 +919,6 @@
 		F7169A1B1EE590930086BD69 /* NCSharesCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = NCSharesCell.xib; sourceTree = "<group>"; };
 		F7169A301EE59BB70086BD69 /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/Localizable.strings; sourceTree = "<group>"; };
 		F7169A4C1EE59C640086BD69 /* tr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = tr; path = tr.lproj/Localizable.strings; sourceTree = "<group>"; };
-		F71A6518218304A90069C970 /* NCOfflineHeaderFooterSection.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NCOfflineHeaderFooterSection.swift; sourceTree = "<group>"; };
 		F7226EDB1EE4089300EBECB1 /* Main.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = Main.storyboard; sourceTree = "<group>"; };
 		F7229B491DF71BB300E8C4E7 /* AUTHORS */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = AUTHORS; sourceTree = SOURCE_ROOT; };
 		F726EEEB1FED1C820030B9C8 /* NCEndToEndInitialize.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NCEndToEndInitialize.swift; sourceTree = "<group>"; };
@@ -952,12 +952,7 @@
 		F732BA031D76CE1500E9878B /* CCNetworking.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CCNetworking.h; sourceTree = "<group>"; };
 		F732BA041D76CE1500E9878B /* CCNetworking.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CCNetworking.m; sourceTree = "<group>"; };
 		F7381EDA218218C9000B1560 /* NCOffline.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NCOffline.swift; sourceTree = "<group>"; };
-		F7381EDB218218C9000B1560 /* NCOfflineListCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = NCOfflineListCell.xib; sourceTree = "<group>"; };
-		F7381EDC218218C9000B1560 /* NCOfflineGridCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NCOfflineGridCell.swift; sourceTree = "<group>"; };
-		F7381EDD218218C9000B1560 /* NCOfflineHeaderFooterMenu.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NCOfflineHeaderFooterMenu.swift; sourceTree = "<group>"; };
 		F7381EDE218218C9000B1560 /* NCOffline.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = NCOffline.storyboard; sourceTree = "<group>"; };
-		F7381EDF218218C9000B1560 /* NCOfflineListCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NCOfflineListCell.swift; sourceTree = "<group>"; };
-		F7381EE0218218C9000B1560 /* NCOfflineGridCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = NCOfflineGridCell.xib; sourceTree = "<group>"; };
 		F738E8401F90FFD100F95C8E /* NCManageEndToEndEncryption.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NCManageEndToEndEncryption.h; sourceTree = "<group>"; };
 		F738E8411F90FFD100F95C8E /* NCManageEndToEndEncryption.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NCManageEndToEndEncryption.m; sourceTree = "<group>"; };
 		F73B4EAD1F470D9100BBEE4B /* Big5Freq.tab */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = Big5Freq.tab; sourceTree = "<group>"; };
@@ -1335,6 +1330,13 @@
 		F762CB941EACB84400B38484 /* TWMessageBarManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TWMessageBarManager.m; sourceTree = "<group>"; };
 		F7632FBE21832F8700721B71 /* NCTrashHeaderMenu.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = NCTrashHeaderMenu.xib; sourceTree = "<group>"; };
 		F7632FC0218353AA00721B71 /* NCTrashSectionFooter.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = NCTrashSectionFooter.xib; sourceTree = "<group>"; };
+		F7632FD621836A5B00721B71 /* NCOfflineHeaderMenu.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = NCOfflineHeaderMenu.xib; sourceTree = "<group>"; };
+		F7632FD721836A5B00721B71 /* NCOfflineSectionFooter.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = NCOfflineSectionFooter.xib; sourceTree = "<group>"; };
+		F7632FD821836A5B00721B71 /* NCOfflineHeaderFooter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NCOfflineHeaderFooter.swift; sourceTree = "<group>"; };
+		F7632FDC21836A7000721B71 /* NCOfflineListCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = NCOfflineListCell.xib; sourceTree = "<group>"; };
+		F7632FDD21836A7000721B71 /* NCOfflineGridCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NCOfflineGridCell.swift; sourceTree = "<group>"; };
+		F7632FDE21836A7100721B71 /* NCOfflineListCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NCOfflineListCell.swift; sourceTree = "<group>"; };
+		F7632FDF21836A7100721B71 /* NCOfflineGridCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = NCOfflineGridCell.xib; sourceTree = "<group>"; };
 		F76344751BF259A800188725 /* synchronized.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = synchronized.gif; sourceTree = "<group>"; };
 		F76344761BF259A800188725 /* synchronizedcrypto.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = synchronizedcrypto.gif; sourceTree = "<group>"; };
 		F7659A221DC0B726004860C4 /* EAIntroPage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EAIntroPage.h; sourceTree = "<group>"; };
@@ -1864,6 +1866,8 @@
 				F792A77C1BC7C45400C9388E /* CCSplit.m */,
 				F7ECBA6C1E239DCD003E6328 /* CCCreateCloud.swift */,
 				F7D6650620FF341600BFBA9E /* NCMainCommon.swift */,
+				F729B92C217A2F1B00FE2150 /* NCActionSheetHeaderView.swift */,
+				F729B92A217A2E4E00FE2150 /* NCActionSheetHeaderView.xib */,
 			);
 			path = Main;
 			sourceTree = "<group>";
@@ -2143,12 +2147,8 @@
 			children = (
 				F7381EDE218218C9000B1560 /* NCOffline.storyboard */,
 				F7381EDA218218C9000B1560 /* NCOffline.swift */,
-				F7381EDC218218C9000B1560 /* NCOfflineGridCell.swift */,
-				F7381EE0218218C9000B1560 /* NCOfflineGridCell.xib */,
-				F7381EDD218218C9000B1560 /* NCOfflineHeaderFooterMenu.swift */,
-				F71A6518218304A90069C970 /* NCOfflineHeaderFooterSection.swift */,
-				F7381EDF218218C9000B1560 /* NCOfflineListCell.swift */,
-				F7381EDB218218C9000B1560 /* NCOfflineListCell.xib */,
+				F7632FD521836A3F00721B71 /* Section */,
+				F7632FD421836A3200721B71 /* Cell */,
 			);
 			path = Offline;
 			sourceTree = "<group>";
@@ -2855,6 +2855,48 @@
 			path = Icons;
 			sourceTree = "<group>";
 		};
+		F7632FC22183665F00721B71 /* Cell */ = {
+			isa = PBXGroup;
+			children = (
+				F7417DB6216CFED0007D05F5 /* NCTrashGridCell.swift */,
+				F7417DB4216CFE8E007D05F5 /* NCTrashGridCell.xib */,
+				F7ED7EDD216B85DA007AB4D9 /* NCTrashListCell.swift */,
+				F7ED7EDB216B83D5007AB4D9 /* NCTrashListCell.xib */,
+			);
+			path = Cell;
+			sourceTree = "<group>";
+		};
+		F7632FC32183667400721B71 /* Section */ = {
+			isa = PBXGroup;
+			children = (
+				F7632FC0218353AA00721B71 /* NCTrashSectionFooter.xib */,
+				F7417DB2216CE925007D05F5 /* NCTrashHeaderFooter.swift */,
+				F7632FBE21832F8700721B71 /* NCTrashHeaderMenu.xib */,
+			);
+			path = Section;
+			sourceTree = "<group>";
+		};
+		F7632FD421836A3200721B71 /* Cell */ = {
+			isa = PBXGroup;
+			children = (
+				F7632FDD21836A7000721B71 /* NCOfflineGridCell.swift */,
+				F7632FDF21836A7100721B71 /* NCOfflineGridCell.xib */,
+				F7632FDE21836A7100721B71 /* NCOfflineListCell.swift */,
+				F7632FDC21836A7000721B71 /* NCOfflineListCell.xib */,
+			);
+			path = Cell;
+			sourceTree = "<group>";
+		};
+		F7632FD521836A3F00721B71 /* Section */ = {
+			isa = PBXGroup;
+			children = (
+				F7632FD821836A5B00721B71 /* NCOfflineHeaderFooter.swift */,
+				F7632FD621836A5B00721B71 /* NCOfflineHeaderMenu.xib */,
+				F7632FD721836A5B00721B71 /* NCOfflineSectionFooter.xib */,
+			);
+			path = Section;
+			sourceTree = "<group>";
+		};
 		F7659A211DC0B726004860C4 /* EAIntroView */ = {
 			isa = PBXGroup;
 			children = (
@@ -2926,17 +2968,10 @@
 		F78F74322163753B00C2ADAD /* Trash */ = {
 			isa = PBXGroup;
 			children = (
-				F729B92C217A2F1B00FE2150 /* NCActionSheetHeaderView.swift */,
-				F729B92A217A2E4E00FE2150 /* NCActionSheetHeaderView.xib */,
 				F78F74332163757000C2ADAD /* NCTrash.storyboard */,
 				F78F74352163781100C2ADAD /* NCTrash.swift */,
-				F7632FC0218353AA00721B71 /* NCTrashSectionFooter.xib */,
-				F7417DB6216CFED0007D05F5 /* NCTrashGridCell.swift */,
-				F7417DB4216CFE8E007D05F5 /* NCTrashGridCell.xib */,
-				F7417DB2216CE925007D05F5 /* NCTrashHeaderFooter.swift */,
-				F7632FBE21832F8700721B71 /* NCTrashHeaderMenu.xib */,
-				F7ED7EDD216B85DA007AB4D9 /* NCTrashListCell.swift */,
-				F7ED7EDB216B83D5007AB4D9 /* NCTrashListCell.xib */,
+				F7632FC32183667400721B71 /* Section */,
+				F7632FC22183665F00721B71 /* Cell */,
 			);
 			path = Trash;
 			sourceTree = "<group>";
@@ -3816,13 +3851,13 @@
 				F712AC9C2175E56F0061158E /* CTAssetsPicker.strings in Resources */,
 				F7F54CF41E5B14C700E19C62 /* PlayButtonOverlayLarge.png in Resources */,
 				F7F54D041E5B14C800E19C62 /* VideoOverlay@2x.png in Resources */,
+				F7632FD921836A5B00721B71 /* NCOfflineHeaderMenu.xib in Resources */,
 				F712AC932175E56F0061158E /* CTAssetsPickerController.bundle in Resources */,
 				F7F54CF51E5B14C700E19C62 /* PlayButtonOverlayLarge@2x.png in Resources */,
 				F77D49A91DC238E500CDC568 /* loading.gif in Resources */,
 				F7F54CF91E5B14C700E19C62 /* PlayButtonOverlayLargeTap@3x.png in Resources */,
 				F7D4233D1F0596AC009C9782 /* Reader-Button-N@3x.png in Resources */,
 				F73B4EF21F470D9100BBEE4B /* EUCTWFreq.tab in Resources */,
-				F7381EE7218218C9000B1560 /* NCOfflineGridCell.xib in Resources */,
 				F7622FDB2175FCC0000383FF /* ActionSheetCollectionItemCell.xib in Resources */,
 				F700222C1EC479840080073F /* Custom.xcassets in Resources */,
 				F758B45A212C564000515F55 /* Scan.storyboard in Resources */,
@@ -3868,7 +3903,6 @@
 				F7D423361F0596AC009C9782 /* AppIcon-167.png in Resources */,
 				F7F54CF71E5B14C700E19C62 /* PlayButtonOverlayLargeTap.png in Resources */,
 				F710E8111EF95C9C00DC2427 /* ImagesIntro.xcassets in Resources */,
-				F7381EE2218218C9000B1560 /* NCOfflineListCell.xib in Resources */,
 				F77B0F4D1D118A16002130FE /* CCShare.storyboard in Resources */,
 				F7F54D021E5B14C700E19C62 /* UIBarButtonItemGrid@3x.png in Resources */,
 				F7F54CEA1E5B14C700E19C62 /* ImageSelectedOff@3x.png in Resources */,
@@ -3888,8 +3922,10 @@
 				F7D423461F0596AC009C9782 /* Reader-Mark-N@3x.png in Resources */,
 				F7F54CE61E5B14C700E19C62 /* ImageError@2x.png in Resources */,
 				F7F54CEF1E5B14C700E19C62 /* ImageSelectedSmallOff@2x.png in Resources */,
+				F7632FDA21836A5B00721B71 /* NCOfflineSectionFooter.xib in Resources */,
 				F7F54CFF1E5B14C700E19C62 /* UIBarButtonItemArrowRight@3x.png in Resources */,
 				F774DF0F1FCC26BE002AF9FC /* iTunesArtwork@1x.png in Resources */,
+				F7632FE321836A7100721B71 /* NCOfflineGridCell.xib in Resources */,
 				F77B0F611D118A16002130FE /* Acknowledgements.rtf in Resources */,
 				F77B0F631D118A16002130FE /* Localizable.strings in Resources */,
 				F7632FC1218353AA00721B71 /* NCTrashSectionFooter.xib in Resources */,
@@ -3922,6 +3958,7 @@
 				F774DF101FCC26BE002AF9FC /* iTunesArtwork@2x.png in Resources */,
 				F7D423481F0596AC009C9782 /* Reader-Mark-Y@2x.png in Resources */,
 				F7D4233F1F0596AC009C9782 /* Reader-Email@2x.png in Resources */,
+				F7632FE021836A7100721B71 /* NCOfflineListCell.xib in Resources */,
 				F73B4EF11F470D9100BBEE4B /* EUCKRFreq.tab in Resources */,
 				F774DF111FCC26BE002AF9FC /* iTunesArtwork@3x.png in Resources */,
 				F762CB961EACB84400B38484 /* icon-error@2x.png in Resources */,
@@ -4186,7 +4223,6 @@
 				F7B1FBC71E72E3D1001781FE /* SwiftWebVC.swift in Sources */,
 				F7622FB62175FCC0000383FF /* ActionSheetCancelButtonAppearance.swift in Sources */,
 				F7DC5FEC1F011EB700A903C7 /* MGSwipeButton.m in Sources */,
-				F7381EE4218218C9000B1560 /* NCOfflineHeaderFooterMenu.swift in Sources */,
 				F7D423801F0596C6009C9782 /* ReaderMainPagebar.m in Sources */,
 				F712ACAA2175E56F0061158E /* NSNumberFormatter+CTAssetsPickerController.m in Sources */,
 				F762CB061EACB66200B38484 /* XLFormTextViewCell.m in Sources */,
@@ -4206,6 +4242,7 @@
 				F7A5541F204EF8AF008468EC /* TOScrollBar.m in Sources */,
 				F7A321651E9E37960069AD1B /* CCActivity.m in Sources */,
 				F7FB1D3E215E191D00D669EA /* NCViewerDocumentWeb.swift in Sources */,
+				F7632FDB21836A5B00721B71 /* NCOfflineHeaderFooter.swift in Sources */,
 				F712AC902175E56F0061158E /* CTAssetSelectionLabel.m in Sources */,
 				F762CB0C1EACB66200B38484 /* XLFormSectionDescriptor.m in Sources */,
 				F77B0E131D118A16002130FE /* AppDelegate.m in Sources */,
@@ -4241,7 +4278,6 @@
 				F762CB081EACB66200B38484 /* XLFormOptionsViewController.m in Sources */,
 				F73CC0721E813DFF006E3047 /* BKPasscodeLockScreenManager.m in Sources */,
 				F73B4F101F470D9100BBEE4B /* nsSBCharSetProber.cpp in Sources */,
-				F7381EE3218218C9000B1560 /* NCOfflineGridCell.swift in Sources */,
 				F762CB0E1EACB66200B38484 /* NSExpression+XLFormAdditions.m in Sources */,
 				F73B4F071F470D9100BBEE4B /* nsEscSM.cpp in Sources */,
 				F77B0E221D118A16002130FE /* CCManageLocation.m in Sources */,
@@ -4261,7 +4297,6 @@
 				F73B4EF61F470D9100BBEE4B /* LangArabicModel.cpp in Sources */,
 				F7622FCC2175FCC0000383FF /* ActionSheetSectionMargin.swift in Sources */,
 				F7CA1ED420E7E3FE002CC65E /* PKPendingView.m in Sources */,
-				F71A6519218304A90069C970 /* NCOfflineHeaderFooterSection.swift in Sources */,
 				F73B4F0B1F470D9100BBEE4B /* nsGB2312Prober.cpp in Sources */,
 				F762CAFE1EACB66200B38484 /* XLFormLeftRightSelectorCell.m in Sources */,
 				F77B0E301D118A16002130FE /* CCHud.m in Sources */,
@@ -4454,8 +4489,8 @@
 				F77B0EC61D118A16002130FE /* CCCellMain.m in Sources */,
 				F758B3E6212C4A6C00515F55 /* PDFPage.swift in Sources */,
 				F7DC5FED1F011EB700A903C7 /* MGSwipeTableCell.m in Sources */,
-				F7381EE6218218C9000B1560 /* NCOfflineListCell.swift in Sources */,
 				F7622FB32175FCC0000383FF /* ActionSheetDangerButtonAppearance.swift in Sources */,
+				F7632FE221836A7100721B71 /* NCOfflineListCell.swift in Sources */,
 				F7D4238B1F0596C6009C9782 /* ThumbsViewController.m in Sources */,
 				F7622FB52175FCC0000383FF /* ActionSheetButtonItemAppearance.swift in Sources */,
 				F70022B61EC4C9100080073F /* OCCapabilities.m in Sources */,
@@ -4494,6 +4529,7 @@
 				F73CC06C1E813DFF006E3047 /* BKPasscodeField.m in Sources */,
 				F77B0ED51D118A16002130FE /* PHAsset+Utility.m in Sources */,
 				F7622FD22175FCC0000383FF /* ActionSheetSelectItem.swift in Sources */,
+				F7632FE121836A7100721B71 /* NCOfflineGridCell.swift in Sources */,
 				F73B4EFD1F470D9100BBEE4B /* LangHebrewModel.cpp in Sources */,
 				F70022CE1EC4C9100080073F /* OCShareUser.m in Sources */,
 				F77B0ED91D118A16002130FE /* main.m in Sources */,

+ 0 - 0
iOSClient/Trash/NCActionSheetHeaderView.swift → iOSClient/Main/NCActionSheetHeaderView.swift


+ 0 - 0
iOSClient/Trash/NCActionSheetHeaderView.xib → iOSClient/Main/NCActionSheetHeaderView.xib


+ 0 - 0
iOSClient/Offline/NCOfflineGridCell.swift → iOSClient/Offline/Cell/NCOfflineGridCell.swift


+ 0 - 0
iOSClient/Offline/NCOfflineGridCell.xib → iOSClient/Offline/Cell/NCOfflineGridCell.xib


+ 0 - 0
iOSClient/Offline/NCOfflineListCell.swift → iOSClient/Offline/Cell/NCOfflineListCell.swift


+ 0 - 0
iOSClient/Offline/NCOfflineListCell.xib → iOSClient/Offline/Cell/NCOfflineListCell.xib


+ 10 - 76
iOSClient/Offline/NCOffline.swift

@@ -46,9 +46,14 @@ class NCOffline: UIViewController ,UICollectionViewDataSource, UICollectionViewD
     override func viewDidLoad() {
         super.viewDidLoad()
         
+        // Cell
         collectionView.register(UINib.init(nibName: "NCOfflineListCell", bundle: nil), forCellWithReuseIdentifier: "cell-list")
         collectionView.register(UINib.init(nibName: "NCOfflineGridCell", bundle: nil), forCellWithReuseIdentifier: "cell-grid")
         
+        // Header - Footer
+        collectionView.register(UINib.init(nibName: "NCOfflineHeaderMenu", bundle: nil), forSupplementaryViewOfKind: UICollectionView.elementKindSectionHeader, withReuseIdentifier: "headerMenu")
+        collectionView.register(UINib.init(nibName: "NCOfflineSectionFooter", bundle: nil), forSupplementaryViewOfKind: UICollectionView.elementKindSectionFooter, withReuseIdentifier: "sectionFooter")
+        
         collectionView.alwaysBounceVertical = true
 
         listLayout = ListLayoutOffline()
@@ -112,14 +117,6 @@ class NCOffline: UIViewController ,UICollectionViewDataSource, UICollectionViewD
         return NSAttributedString.init(string: text, attributes: attributes)
     }
     
-    /*
-    func description(forEmptyDataSet scrollView: UIScrollView) -> NSAttributedString? {
-        let text = "\n"+NSLocalizedString("_no_file_pull_down_", comment: "")
-        let attributes = [NSAttributedString.Key.font: UIFont.systemFont(ofSize: 14), NSAttributedString.Key.foregroundColor: UIColor.lightGray]
-        return NSAttributedString.init(string: text, attributes: attributes)
-    }
-    */
-    
     func emptyDataSetShouldAllowScroll(_ scrollView: UIScrollView) -> Bool {
         return true
     }
@@ -392,80 +389,17 @@ class NCOffline: UIViewController ,UICollectionViewDataSource, UICollectionViewD
             
             offlineHeader.delegate = self
             
-            if self.datasource.count == 0 {
-                offlineHeader.buttonSwitch.isEnabled = false
-                offlineHeader.buttonOrder.isEnabled = false
-                offlineHeader.buttonMore.isEnabled = false
-            } else {
-                offlineHeader.buttonSwitch.isEnabled = true
-                offlineHeader.buttonOrder.isEnabled = true
-                offlineHeader.buttonMore.isEnabled = true
-            }
-            
-            // Order (∨∧▽△)
-            var title = ""
-            
-            switch datasourceSorted {
-            case "fileName":
-                if datasourceAscending == true { title = NSLocalizedString("_order_by_name_a_z_", comment: "") }
-                if datasourceAscending == false { title = NSLocalizedString("_order_by_name_z_a_", comment: "") }
-            case "date":
-                if datasourceAscending == false { title = NSLocalizedString("_order_by_date_more_recent_", comment: "") }
-                if datasourceAscending == true { title = NSLocalizedString("_order_by_date_less_recent_", comment: "") }
-            case "size":
-                if datasourceAscending == true { title = NSLocalizedString("_order_by_size_smallest_", comment: "") }
-                if datasourceAscending == false { title = NSLocalizedString("_order_by_size_largest_", comment: "") }
-            default:
-                title = NSLocalizedString("_order_by_", comment: "") + " " + datasourceSorted
-            }
-            
-            title = title + "  ▽"
-            let size = title.size(withAttributes:[.font: offlineHeader.buttonOrder.titleLabel?.font as Any])
-            
-            offlineHeader.buttonOrder.setTitle(title, for: .normal)
-            offlineHeader.buttonOrderWidthConstraint.constant = size.width + 5
+            offlineHeader.setStatusButton(datasource: datasource)
+            offlineHeader.setTitleOrder(datasourceSorted: datasourceSorted, datasourceAscending: datasourceAscending)
             
             return offlineHeader
             
         } else {
             
-            let offlineFooter = collectionView.dequeueReusableSupplementaryView(ofKind: kind, withReuseIdentifier: "footerMenu", for: indexPath) as! NCOfflineFooterMenu
-            
-            offlineFooter.labelFooter.textColor = NCBrandColor.sharedInstance.icon
-            
-            var folders: Int = 0, foldersText = ""
-            var files: Int = 0, filesText = ""
-            var size: Double = 0
-            
-            for record: tableMetadata in self.datasource {
-                if record.directory {
-                    folders += 1
-                } else {
-                    files += 1
-                    size = size + record.size
-                }
-            }
-            
-            if folders > 1 {
-                foldersText = "\(folders) " + NSLocalizedString("_folders_", comment: "")
-            } else if folders == 1 {
-                foldersText = "1 " + NSLocalizedString("_folder_", comment: "")
-            }
-            
-            if files > 1 {
-                filesText = "\(files) " + NSLocalizedString("_files_", comment: "") + " " + CCUtility.transformedSize(size)
-            } else if files == 1 {
-                filesText = "1 " + NSLocalizedString("_file_", comment: "") + " " + CCUtility.transformedSize(size)
-            }
-           
-            if foldersText == "" {
-                offlineFooter.labelFooter.text = filesText
-            } else if filesText == "" {
-                offlineFooter.labelFooter.text = foldersText
-            } else {
-                offlineFooter.labelFooter.text = foldersText + ", " + filesText
-            }
+            let offlineFooter = collectionView.dequeueReusableSupplementaryView(ofKind: kind, withReuseIdentifier: "sectionFooter", for: indexPath) as! NCOfflineSectionFooter
             
+            offlineFooter.setTitleLabelFooter(datasource: datasource)
+
             return offlineFooter
         }
     }

+ 0 - 77
iOSClient/Offline/NCOfflineHeaderFooterMenu.swift

@@ -1,77 +0,0 @@
-//
-//  NCOfflineHeaderFooterMenu.swift
-//  Nextcloud
-//
-//  Created by Marino Faggiana on 24/10/2018.
-//  Copyright © 2018 Marino Faggiana. 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 Foundation
-
-class NCOfflineHeaderMenu: UICollectionReusableView {
-    
-    @IBOutlet weak var buttonMore: UIButton!
-    @IBOutlet weak var buttonSwitch: UIButton!
-    @IBOutlet weak var buttonOrder: UIButton!
-    @IBOutlet weak var buttonOrderWidthConstraint: NSLayoutConstraint!
-    @IBOutlet weak var separator: UIView!
-    
-    var delegate: NCOfflineHeaderMenuDelegate?
-
-    override func awakeFromNib() {
-        super.awakeFromNib()
-        
-        buttonSwitch.setImage(CCGraphics.changeThemingColorImage(UIImage.init(named: "switchList"), multiplier: 2, color: NCBrandColor.sharedInstance.icon), for: .normal)
-        
-        buttonOrder.setTitle("", for: .normal)
-        buttonOrder.setTitleColor(NCBrandColor.sharedInstance.icon, for: .normal)
-        
-        buttonMore.setImage(CCGraphics.changeThemingColorImage(UIImage.init(named: "more"), multiplier: 2, color: NCBrandColor.sharedInstance.icon), for: .normal)
-        
-        separator.backgroundColor = NCBrandColor.sharedInstance.seperator
-    }
-    
-    @IBAction func touchUpInsideMore(_ sender: Any) {
-        delegate?.tapMoreHeaderMenu(sender: sender)
-    }
-    
-    @IBAction func touchUpInsideSwitch(_ sender: Any) {
-        delegate?.tapSwitchHeaderMenu(sender: sender)
-    }
-    
-    @IBAction func touchUpInsideOrder(_ sender: Any) {
-        delegate?.tapOrderHeaderMenu(sender: sender)
-    }
-}
-
-protocol NCOfflineHeaderMenuDelegate {
-    func tapSwitchHeaderMenu(sender: Any)
-    func tapMoreHeaderMenu(sender: Any)
-    func tapOrderHeaderMenu(sender: Any)
-
-}
-
-class NCOfflineFooterMenu: UICollectionReusableView {
-    
-    @IBOutlet weak var labelFooter: UILabel!
-
-    override func awakeFromNib() {
-        super.awakeFromNib()
-        
-    }
-}

+ 0 - 49
iOSClient/Offline/NCOfflineHeaderFooterSection.swift

@@ -1,49 +0,0 @@
-//
-//  NCOfflineHeaderFooterSection.swift
-//  Nextcloud
-//
-//  Created by Marino Faggiana on 24/10/2018.
-//  Copyright © 2018 Marino Faggiana. 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 Foundation
-
-class NCOfflineHeaderSection: UICollectionReusableView {
-    
-    @IBOutlet weak var labelHeader: UILabel!
-    @IBOutlet weak var separator: UIView!
-    
-    var delegate: NCOfflineHeaderMenuDelegate?
-
-    override func awakeFromNib() {
-        super.awakeFromNib()
-        
-        separator.backgroundColor = NCBrandColor.sharedInstance.seperator
-    }
-    
-}
-
-class NCOfflineFooterSection: UICollectionReusableView {
-    
-    @IBOutlet weak var labelFooter: UILabel!
-
-    override func awakeFromNib() {
-        super.awakeFromNib()
-        
-    }
-}

+ 152 - 0
iOSClient/Offline/Section/NCOfflineHeaderFooter.swift

@@ -0,0 +1,152 @@
+//
+//  NCOfflineHeaderFooter.swift
+//  Nextcloud
+//
+//  Created by Marino Faggiana on 09/10/2018.
+//  Copyright © 2018 Marino Faggiana. 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 Foundation
+
+class NCOfflineHeaderMenu: UICollectionReusableView {
+    
+    @IBOutlet weak var buttonMore: UIButton!
+    @IBOutlet weak var buttonSwitch: UIButton!
+    @IBOutlet weak var buttonOrder: UIButton!
+    @IBOutlet weak var buttonOrderWidthConstraint: NSLayoutConstraint!
+    @IBOutlet weak var separator: UIView!
+    
+    var delegate: NCOfflineHeaderMenuDelegate?
+
+    override func awakeFromNib() {
+        super.awakeFromNib()
+        
+        buttonSwitch.setImage(CCGraphics.changeThemingColorImage(UIImage.init(named: "switchList"), multiplier: 2, color: NCBrandColor.sharedInstance.icon), for: .normal)
+        
+        buttonOrder.setTitle("", for: .normal)
+        buttonOrder.setTitleColor(NCBrandColor.sharedInstance.icon, for: .normal)
+        
+        buttonMore.setImage(CCGraphics.changeThemingColorImage(UIImage.init(named: "more"), multiplier: 2, color: NCBrandColor.sharedInstance.icon), for: .normal)
+        
+        separator.backgroundColor = NCBrandColor.sharedInstance.seperator
+    }
+    
+    func setTitleOrder(datasourceSorted: String, datasourceAscending: Bool) {
+        
+        // Order (∨∧▽△)
+        var title = ""
+        
+        switch datasourceSorted {
+        case "fileName":
+            if datasourceAscending == true { title = NSLocalizedString("_order_by_name_a_z_", comment: "") }
+            if datasourceAscending == false { title = NSLocalizedString("_order_by_name_z_a_", comment: "") }
+        case "date":
+            if datasourceAscending == false { title = NSLocalizedString("_order_by_date_more_recent_", comment: "") }
+            if datasourceAscending == true { title = NSLocalizedString("_order_by_date_less_recent_", comment: "") }
+        case "size":
+            if datasourceAscending == true { title = NSLocalizedString("_order_by_size_smallest_", comment: "") }
+            if datasourceAscending == false { title = NSLocalizedString("_order_by_size_largest_", comment: "") }
+        default:
+            title = NSLocalizedString("_order_by_", comment: "") + " " + datasourceSorted
+        }
+        
+        title = title + "  ▽"
+        let size = title.size(withAttributes:[.font: buttonOrder.titleLabel?.font as Any])
+        
+        buttonOrder.setTitle(title, for: .normal)
+        buttonOrderWidthConstraint.constant = size.width + 5
+    }
+    
+    func setStatusButton(datasource: [tableMetadata]) {
+        
+        if datasource.count == 0 {
+            buttonSwitch.isEnabled = false
+            buttonOrder.isEnabled = false
+            buttonMore.isEnabled = false
+        } else {
+            buttonSwitch.isEnabled = true
+            buttonOrder.isEnabled = true
+            buttonMore.isEnabled = true
+        }
+    }
+    
+    @IBAction func touchUpInsideMore(_ sender: Any) {
+        delegate?.tapMoreHeaderMenu(sender: sender)
+    }
+    
+    @IBAction func touchUpInsideSwitch(_ sender: Any) {
+        delegate?.tapSwitchHeaderMenu(sender: sender)
+    }
+    
+    @IBAction func touchUpInsideOrder(_ sender: Any) {
+        delegate?.tapOrderHeaderMenu(sender: sender)
+    }
+}
+
+protocol NCOfflineHeaderMenuDelegate {
+    func tapSwitchHeaderMenu(sender: Any)
+    func tapMoreHeaderMenu(sender: Any)
+    func tapOrderHeaderMenu(sender: Any)
+}
+
+class NCOfflineSectionFooter: UICollectionReusableView {
+    
+    @IBOutlet weak var labelFooter: UILabel!
+
+    override func awakeFromNib() {
+        super.awakeFromNib()
+        
+        labelFooter.textColor = NCBrandColor.sharedInstance.icon
+    }
+    
+    func setTitleLabelFooter(datasource: [tableMetadata]) {
+        
+        var folders: Int = 0, foldersText = ""
+        var files: Int = 0, filesText = ""
+        var size: Double = 0
+        
+        for record: tableMetadata in datasource {
+            if record.directory {
+                folders += 1
+            } else {
+                files += 1
+                size = size + record.size
+            }
+        }
+        
+        if folders > 1 {
+            foldersText = "\(folders) " + NSLocalizedString("_folders_", comment: "")
+        } else if folders == 1 {
+            foldersText = "1 " + NSLocalizedString("_folder_", comment: "")
+        }
+        
+        if files > 1 {
+            filesText = "\(files) " + NSLocalizedString("_files_", comment: "") + " " + CCUtility.transformedSize(size)
+        } else if files == 1 {
+            filesText = "1 " + NSLocalizedString("_file_", comment: "") + " " + CCUtility.transformedSize(size)
+        }
+        
+        if foldersText == "" {
+            labelFooter.text = filesText
+        } else if filesText == "" {
+            labelFooter.text = foldersText
+        } else {
+            labelFooter.text = foldersText + ", " + filesText
+        }
+    }
+}

+ 89 - 0
iOSClient/Offline/Section/NCOfflineHeaderMenu.xib

@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="14313.18" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
+    <device id="retina4_7" orientation="portrait">
+        <adaptation id="fullscreen"/>
+    </device>
+    <dependencies>
+        <deployment identifier="iOS"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="14283.14"/>
+        <capability name="Safe area layout guides" minToolsVersion="9.0"/>
+        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
+    </dependencies>
+    <objects>
+        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
+        <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
+        <collectionReusableView opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" insetsLayoutMarginsFromSafeArea="NO" reuseIdentifier="headerMenu" id="tys-A2-nDX" customClass="NCOfflineHeaderMenu" customModule="Nextcloud" customModuleProvider="target">
+            <rect key="frame" x="0.0" y="0.0" width="375" height="50"/>
+            <autoresizingMask key="autoresizingMask"/>
+            <subviews>
+                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="LZu-Te-clJ" userLabel="Separator">
+                    <rect key="frame" x="0.0" y="48" width="375" height="1"/>
+                    <color key="backgroundColor" white="0.0" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                    <color key="tintColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                    <constraints>
+                        <constraint firstAttribute="height" constant="1" id="VuP-sT-hUI"/>
+                    </constraints>
+                </view>
+                <button opaque="NO" contentMode="scaleAspectFit" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="1LD-cd-zhc" userLabel="buttonSwitch">
+                    <rect key="frame" x="12" y="12.5" width="25" height="25"/>
+                    <constraints>
+                        <constraint firstAttribute="width" constant="25" id="D76-X9-Tw9"/>
+                        <constraint firstAttribute="height" constant="25" id="izT-Ru-XYG"/>
+                    </constraints>
+                    <state key="normal" image="switchList"/>
+                    <connections>
+                        <action selector="touchUpInsideSwitch:" destination="tys-A2-nDX" eventType="touchUpInside" id="iT8-1j-fib"/>
+                    </connections>
+                </button>
+                <button hidden="YES" opaque="NO" contentMode="scaleAspectFit" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="D0O-wK-14O" userLabel="buttonSwitch">
+                    <rect key="frame" x="338" y="12.5" width="25" height="25"/>
+                    <constraints>
+                        <constraint firstAttribute="width" constant="25" id="aEr-j8-JDO"/>
+                        <constraint firstAttribute="height" constant="25" id="bvx-Uh-NWD"/>
+                    </constraints>
+                    <state key="normal" image="moreBig"/>
+                    <connections>
+                        <action selector="touchUpInsideMore:" destination="tys-A2-nDX" eventType="touchUpInside" id="Jyu-Mx-nWq"/>
+                    </connections>
+                </button>
+                <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="0bo-yl-t5k" userLabel="buttonOrder">
+                    <rect key="frame" x="55" y="11" width="230" height="28"/>
+                    <constraints>
+                        <constraint firstAttribute="width" constant="230" id="jvv-Ug-l3I"/>
+                    </constraints>
+                    <fontDescription key="fontDescription" type="system" pointSize="13"/>
+                    <state key="normal" title="Sort by name (from A to Z)">
+                        <color key="titleColor" cocoaTouchSystemColor="darkTextColor"/>
+                    </state>
+                    <connections>
+                        <action selector="touchUpInsideOrder:" destination="tys-A2-nDX" eventType="touchUpInside" id="oiL-3O-hMQ"/>
+                    </connections>
+                </button>
+            </subviews>
+            <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+            <constraints>
+                <constraint firstItem="D0O-wK-14O" firstAttribute="centerY" secondItem="tys-A2-nDX" secondAttribute="centerY" id="6w7-ws-gX3"/>
+                <constraint firstAttribute="trailing" secondItem="LZu-Te-clJ" secondAttribute="trailing" id="7ww-Zl-sES"/>
+                <constraint firstAttribute="trailing" secondItem="D0O-wK-14O" secondAttribute="trailing" constant="12" id="AsZ-tP-fP1"/>
+                <constraint firstItem="LZu-Te-clJ" firstAttribute="leading" secondItem="tys-A2-nDX" secondAttribute="leading" id="ZEl-Ij-nt8"/>
+                <constraint firstItem="1LD-cd-zhc" firstAttribute="leading" secondItem="tys-A2-nDX" secondAttribute="leading" constant="12" id="dHo-I3-Z1V"/>
+                <constraint firstItem="1LD-cd-zhc" firstAttribute="centerY" secondItem="tys-A2-nDX" secondAttribute="centerY" id="hbd-cO-eBq"/>
+                <constraint firstItem="0bo-yl-t5k" firstAttribute="centerY" secondItem="tys-A2-nDX" secondAttribute="centerY" id="kSZ-op-97F"/>
+                <constraint firstAttribute="bottom" secondItem="LZu-Te-clJ" secondAttribute="bottom" constant="1" id="tJp-qc-NGO"/>
+                <constraint firstItem="0bo-yl-t5k" firstAttribute="leading" secondItem="1LD-cd-zhc" secondAttribute="trailing" constant="18" id="zlZ-IN-gGx"/>
+            </constraints>
+            <viewLayoutGuide key="safeArea" id="pm7-uW-mZE"/>
+            <connections>
+                <outlet property="buttonMore" destination="D0O-wK-14O" id="eEx-3R-zCS"/>
+                <outlet property="buttonOrder" destination="0bo-yl-t5k" id="Kbw-BG-73C"/>
+                <outlet property="buttonOrderWidthConstraint" destination="jvv-Ug-l3I" id="E6N-z6-2VC"/>
+                <outlet property="buttonSwitch" destination="1LD-cd-zhc" id="Ec2-cM-CoY"/>
+                <outlet property="separator" destination="LZu-Te-clJ" id="EwO-za-LxT"/>
+            </connections>
+        </collectionReusableView>
+    </objects>
+    <resources>
+        <image name="moreBig" width="80" height="80"/>
+        <image name="switchList" width="25" height="25"/>
+    </resources>
+</document>

+ 37 - 0
iOSClient/Offline/Section/NCOfflineSectionFooter.xib

@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="14313.18" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
+    <device id="retina4_7" orientation="portrait">
+        <adaptation id="fullscreen"/>
+    </device>
+    <dependencies>
+        <deployment identifier="iOS"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="14283.14"/>
+        <capability name="Safe area layout guides" minToolsVersion="9.0"/>
+        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
+    </dependencies>
+    <objects>
+        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
+        <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
+        <collectionReusableView opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" insetsLayoutMarginsFromSafeArea="NO" reuseIdentifier="sectionFooter" id="Vin-9E-7nW" customClass="NCOfflineSectionFooter" customModule="Nextcloud" customModuleProvider="target">
+            <rect key="frame" x="0.0" y="0.0" width="375" height="50"/>
+            <autoresizingMask key="autoresizingMask"/>
+            <subviews>
+                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="gzy-cT-Gjn" userLabel="LabelFooter">
+                    <rect key="frame" x="10" y="17" width="355" height="16"/>
+                    <fontDescription key="fontDescription" type="system" pointSize="13"/>
+                    <nil key="textColor"/>
+                    <nil key="highlightedColor"/>
+                </label>
+            </subviews>
+            <constraints>
+                <constraint firstAttribute="trailing" secondItem="gzy-cT-Gjn" secondAttribute="trailing" constant="10" id="QzY-ac-CRO"/>
+                <constraint firstItem="gzy-cT-Gjn" firstAttribute="centerY" secondItem="Vin-9E-7nW" secondAttribute="centerY" id="avP-sX-JB5"/>
+                <constraint firstItem="gzy-cT-Gjn" firstAttribute="leading" secondItem="Vin-9E-7nW" secondAttribute="leading" constant="10" id="hZz-MT-pHg"/>
+            </constraints>
+            <viewLayoutGuide key="safeArea" id="EFn-SN-cxu"/>
+            <connections>
+                <outlet property="labelFooter" destination="gzy-cT-Gjn" id="rIA-Pk-tZ6"/>
+            </connections>
+        </collectionReusableView>
+    </objects>
+</document>

+ 0 - 0
iOSClient/Trash/NCTrashGridCell.swift → iOSClient/Trash/Cell/NCTrashGridCell.swift


+ 0 - 0
iOSClient/Trash/NCTrashGridCell.xib → iOSClient/Trash/Cell/NCTrashGridCell.xib


+ 0 - 0
iOSClient/Trash/NCTrashListCell.swift → iOSClient/Trash/Cell/NCTrashListCell.swift


+ 0 - 0
iOSClient/Trash/NCTrashListCell.xib → iOSClient/Trash/Cell/NCTrashListCell.xib


+ 0 - 1
iOSClient/Trash/NCTrashHeaderFooter.swift → iOSClient/Trash/Section/NCTrashHeaderFooter.swift

@@ -102,7 +102,6 @@ protocol NCTrashHeaderMenuDelegate {
     func tapSwitchHeaderMenu(sender: Any)
     func tapMoreHeaderMenu(sender: Any)
     func tapOrderHeaderMenu(sender: Any)
-
 }
 
 class NCTrashSectionFooter: UICollectionReusableView {

+ 0 - 0
iOSClient/Trash/NCTrashHeaderMenu.xib → iOSClient/Trash/Section/NCTrashHeaderMenu.xib


+ 0 - 0
iOSClient/Trash/NCTrashSectionFooter.xib → iOSClient/Trash/Section/NCTrashSectionFooter.xib