 		}
 
 		guard articleExtractor?.state != .processing else {
-			articleExtractor?.cancel()
-			articleExtractor = nil
-			isShowingExtractedArticle = false
-			articleViewController?.articleExtractorButtonState = .off
+			stopArticleExtractor()
 			articleViewController?.state = .article(article)
 			return
 		}

		
		// If we are using a phone and navigate away from the detail, clear up the article resources (including activity)
		if viewController === masterTimelineViewController && !isThreePanelMode && rootSplitViewController.isCollapsed {
			selectArticle(nil)
		}
		
	}

	func selectArticle(_ article: Article?, automated: Bool = true) {
		guard article != currentArticle else { return }
		
		stopArticleExtractor()
		currentArticle = article
		activityManager.reading(currentArticle)
		
