From fc323c40722535114c561d39415978bcfd22db17 Mon Sep 17 00:00:00 2001 From: Stuart Breckenridge Date: Thu, 3 Mar 2022 08:50:55 +0800 Subject: [PATCH] Adds long press menu to article extractor button --- iOS/Article/ArticleViewController.swift | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) 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) {