         return ReadingListHintController(dataStore: dataStore, presenter: self)
     }()
     
-    override func numberOfSections(in collectionView: UICollectionView) -> Int {
+    var numberOfSectionsInExploreFeed: Int {
         guard let sections = fetchedResultsController.sections else {
             return 0
         }
         return sections.count
     }
     
+    override func numberOfSections(in collectionView: UICollectionView) -> Int {
+        return numberOfSectionsInExploreFeed
+    }
+    
     private func resetRefreshControl() {
-        
+        guard let refreshControl = collectionView.refreshControl,
+            refreshControl.isRefreshing else {
+            return
+        }
+        refreshControl.endRefreshing()
     }
     
     private func startMonitoringReachabilityIfNeeded() {

        return titleView
    }()

    // MARK - Search
    
    lazy var searchBarContainerView: UIView = {

        
    }
    
    var isLoadingNewContent = false
    var isScrolledToTop: Bool {
        return collectionView.contentOffset.y <= 0 - collectionView.contentInset.top
    }
    @objc(updateFeedSourcesWithDate:userInitiated:completion:)
    public func updateFeedSources(with date: Date?, userInitiated: Bool, completion: @escaping () -> Void) {
        assert(Thread.isMainThread)
        guard !isLoadingNewContent else {
            return
        }
        isLoadingNewContent = true
        if let refreshControl = collectionView.refreshControl, !refreshControl.isRefreshing {
            #if UI_TEST
            #else
            refreshControl.beginRefreshing()
            #endif
            if isScrolledToTop && numberOfSectionsInExploreFeed == 0 {
                collectionView.contentOffset = CGPoint(x: 0, y: 0 - collectionView.contentInset.top - refreshControl.frame.size.height)
            }
        }
        self.dataStore.feedContentController.updateFeedSources(with: date, userInitiated: userInitiated) {
            DispatchQueue.main.async {
                self.isLoadingNewContent = false
                self.resetRefreshControl()
                if date == nil {
                    self.startMonitoringReachabilityIfNeeded()
                    self.showOfflineEmptyViewIfNeeded()
                }
                completion()
            }
        }
    }
    
