marinofaggiana 6 years ago
parent
commit
a7c7787c71

+ 1 - 1
Nextcloud.xcodeproj/project.pbxproj

@@ -1666,7 +1666,6 @@
 				F78ACD4D219043E70088454D /* Layout */,
 				F78ACD3E21903BA20088454D /* Cell */,
 				F78ACD5921904E460088454D /* ActionSheetHeaderView */,
-				F76185582198A28E00A65DC4 /* NCPhotosPickerViewController */,
 				F7DFB7E9219C5A0500680748 /* Create cloud */,
 				F70211FA1BAC56E9003FC03E /* CCMain.h */,
 				F70211FB1BAC56E9003FC03E /* CCMain.m */,
@@ -2365,6 +2364,7 @@
 				F7FAE9F12214208B000FA9E8 /* NCGridMediaCell.xib */,
 				F78ACD4121903CE00088454D /* NCListCell.swift */,
 				F78ACD4321903CF20088454D /* NCListCell.xib */,
+				F76185582198A28E00A65DC4 /* NCPhotosPickerViewController */,
 			);
 			path = Cell;
 			sourceTree = "<group>";

+ 0 - 0
iOSClient/Main/NCPhotosPickerViewController/NCPhotosPickerViewController.swift → iOSClient/Main/Cell/NCPhotosPickerViewController/NCPhotosPickerViewController.swift


+ 0 - 2
iOSClient/Media/CCMedia.m

@@ -70,8 +70,6 @@
 
         [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(triggerProgressTask:) name:@"NotificationProgressTask" object:nil];
         [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(changeTheming) name:@"changeTheming" object:nil];
-        
-        appDelegate.activeMedia = self;
     }
     
     return self;

+ 33 - 7
iOSClient/Media/NCMedia.swift

@@ -53,6 +53,7 @@ class NCMedia: UIViewController ,UICollectionViewDataSource, UICollectionViewDel
     private var addWidth: CGFloat = 10
     
     private var readRetry = 0
+    private var stepDays = -60
 
     private let refreshControl = UIRefreshControl()
     
@@ -311,7 +312,7 @@ class NCMedia: UIViewController ,UICollectionViewDataSource, UICollectionViewDel
         actionSheet?.present(in: self, from: sender as! UIButton)
     }
     
-    func search(_ lteDate: Date, gteDate: Date, reiteration: Bool) {
+    func search(lteDate: Date, gteDate: Date, reiteration: Bool) {
         
         if appDelegate.activeAccount.count == 0 {
             return
@@ -327,9 +328,10 @@ class NCMedia: UIViewController ,UICollectionViewDataSource, UICollectionViewDel
                     NCManageDatabase.sharedInstance.createTablePhotos(metadatas as! [tableMetadata], lteDate: lteDate, gteDate: gteDate, account: account!)
                     self.loadDatasource()
                 } else if reiteration {
-                    let newGteDate = Calendar.current.date(byAdding: .day, value: -60, to: gteDate)!
+                    var newGteDate = Calendar.current.date(byAdding: .day, value: self.stepDays, to: gteDate)!
+                    newGteDate = Calendar.current.date(bySettingHour: 0, minute: 0, second: 0, of: newGteDate) ?? newGteDate
                     self.readRetry += 1
-                    self.search(lteDate, gteDate: newGteDate, reiteration: reiteration)
+                    self.search(lteDate: lteDate, gteDate: newGteDate, reiteration: reiteration)
                 }
             }
             
@@ -350,8 +352,9 @@ class NCMedia: UIViewController ,UICollectionViewDataSource, UICollectionViewDel
                 self.sectionDatasource = CCSectionMetadata.creataDataSourseSectionMetadata(metadatas, listProgressMetadata: nil, groupByField: "date", filterFileID: nil, filterTypeFileImage: self.filterTypeFileImage, filterTypeFileVideo: self.filterTypeFileVideo, activeAccount: self.appDelegate.activeAccount)
             } else {
                 self.sectionDatasource = CCSectionDataSourceMetadata()
-                let gteDate = Calendar.current.date(byAdding: .day, value: -1, to: Date())!
-                self.search(Date(), gteDate: gteDate, reiteration: true)
+                var gteDate = Calendar.current.date(byAdding: .day, value: self.stepDays, to: Date())!
+                gteDate = Calendar.current.date(bySettingHour: 0, minute: 0, second: 0, of: gteDate) ?? gteDate
+                self.search(lteDate: Date(), gteDate: gteDate, reiteration: true)
             }
         
             DispatchQueue.main.async {
@@ -364,13 +367,13 @@ class NCMedia: UIViewController ,UICollectionViewDataSource, UICollectionViewDel
 
     public func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) {
         //caused by user
-        print("SCROLL scrollViewDidEndDecelerating")
+        selectSearchSections()
     }
     
     public func scrollViewDidEndDragging(_ scrollView: UIScrollView, willDecelerate decelerate: Bool) {
         if (!decelerate) {
             //cause by user
-            print("SCROLL scrollViewDidEndDragging")
+            selectSearchSections()
         }
     }
     
@@ -489,7 +492,30 @@ class NCMedia: UIViewController ,UICollectionViewDataSource, UICollectionViewDel
         
         performSegue(withIdentifier: "segueDetail", sender: self)
     }
+
+    // MARK: Utility
     
+    func selectSearchSections() {
+        
+        let sections = NSMutableSet()
+        for item in collectionView.indexPathsForVisibleItems {
+            let date = sectionDatasource.sections.object(at: item.section) as! Date
+            sections.add(date)
+        }
+        let sortedSections = sections.sorted { (date1, date2) -> Bool in
+            (date1 as! Date).compare(date2 as! Date) == .orderedDescending
+        }
+        if sortedSections.count == 1 {
+            let lteDate = Calendar.current.date(byAdding: .day, value: 1, to: sortedSections.first as! Date)!
+            let gteDate = sortedSections.first as! Date
+            search(lteDate: lteDate, gteDate: gteDate, reiteration: false)
+        } else if sortedSections.count > 1 {
+            let lteDate = Calendar.current.date(byAdding: .day, value: 1, to: sortedSections.first as! Date)!
+            let gteDate = Calendar.current.date(byAdding: .day, value: -1, to: sortedSections.last as! Date)!
+            search(lteDate: lteDate, gteDate: gteDate, reiteration: false)
+        }
+    }
+
     // MARK: SEGUE
     
     override func prepare(for segue: UIStoryboardSegue, sender: Any?) {