         NSUserActivity.wmf_makeActive(NSUserActivity.wmf_savedPagesView())
     }
     
+    // MARK: - Analytics
+    
     override var analyticsName: String {
         return "Saved Articles"
     }

        }
        dataStore.savedPageList.removeEntry(with: articleURL)
    }
    
    override func viewDidLoad() {
        super.viewDidLoad()

    fileprivate let reuseIdentifier = "SavedArticleCollectionViewCell"
    
    override func setupFetchedResultsController(with dataStore: MWKDataStore) {
        let articleRequest = WMFArticle.fetchRequest()
        articleRequest.predicate = NSPredicate(format: "savedDate != NULL")
        articleRequest.sortDescriptors = [sortDescriptor]
        fetchedResultsController = NSFetchedResultsController(fetchRequest: articleRequest, managedObjectContext: dataStore.viewContext, sectionNameKeyPath: nil, cacheName: nil)
    }
    
    // MARK: - Sorting
    
    fileprivate var sortDescriptor: NSSortDescriptor = NSSortDescriptor(key: "savedDate", ascending: false) {
        didSet {
            guard sortDescriptor != oldValue else {
                return
            }
            setupFetchedResultsController(with: dataStore)
            collectionViewUpdater = CollectionViewUpdater(fetchedResultsController: fetchedResultsController, collectionView: collectionView!)
            do {
                try fetchedResultsController.performFetch()
            } catch let err {
                assertionFailure("Couldn't sort by \(sortDescriptor.key ?? "unknown key"): \(err)")
            }
            collectionView?.reloadData()
        }
    }
    
    fileprivate func sort(by key: String, ascending: Bool) {
        sortDescriptor = NSSortDescriptor(key: key, ascending: ascending)
    }
    
    // MARK: - Swipe actions
    
    override func canSave(at indexPath: IndexPath) -> Bool {
        return false
