() for articleFetcher in articleFetchers { - fetchedArticles.formUnion(articleFetcher.fetchArticles()) + if articleReadFilterType != ReadFilterType.none { + fetchedArticles.formUnion(articleFetcher.fetchUnreadArticles()) + } else { + fetchedArticles.formUnion(articleFetcher.fetchArticles()) + } } return fetchedArticles } @@ -1000,7 +1031,8 @@ private extension TimelineViewController { // if it’s been superseded by a newer fetch, or the timeline was emptied, etc., it won’t get called. precondition(Thread.isMainThread) cancelPendingAsyncFetches() - let fetchOperation = FetchRequestOperation(id: fetchSerialNumber, readFilter: false, representedObjects: representedObjects) { [weak self] (articles, operation) in + let readFilter = articleReadFilterType != ReadFilterType.none + let fetchOperation = FetchRequestOperation(id: fetchSerialNumber, readFilter: readFilter, representedObjects: representedObjects) { [weak self] (articles, operation) in precondition(Thread.isMainThread) guard !operation.isCanceled, let strongSelf = self, operation.id == strongSelf.fetchSerialNumber else { return