diff --git a/iOS/Article/ArticleViewController.swift b/iOS/Article/ArticleViewController.swift index df9db6f21..dd89e9006 100644 --- a/iOS/Article/ArticleViewController.swift +++ b/iOS/Article/ArticleViewController.swift @@ -234,6 +234,7 @@ class ArticleViewController: UIViewController, MainControllerIdentifiable { } configureAppearanceMenu() + configureArticleExtractorMenu() } @@ -311,6 +312,29 @@ class ArticleViewController: UIViewController, MainControllerIdentifiable { appearanceBarButtonItem.menu = menu } + private func configureArticleExtractorMenu() { + if let feed = article?.webFeed { + let extractorOn = feed.isArticleExtractorAlwaysOn ?? false + let readerAction = UIAction(title: NSLocalizedString("Always Use Reader View", comment: "Always Use Reader View"), + image: AppAssets.articleExtractorOffSF, + identifier: nil, + discoverabilityTitle: nil, + attributes: [], + state: extractorOn ? .on : .off) { [weak self] _ in + if feed.isArticleExtractorAlwaysOn == nil { + feed.isArticleExtractorAlwaysOn = true + self?.currentWebViewController?.toggleArticleExtractor() + } else { + feed.isArticleExtractorAlwaysOn?.toggle() + } + self?.configureArticleExtractorMenu() + } + let menu = UIMenu(title: feed.nameForDisplay, image: AppAssets.articleExtractorOffSF, identifier: nil, options: .displayInline, children: [readerAction]) + articleExtractorButton.menu = menu + articleExtractorButton.showsMenuAsPrimaryAction = false + } + } + @objc func reloadDueToThemeChange(_ notification: Notification) {