From 02989500259d9674d4f88b21ad77ab0deb8c9394 Mon Sep 17 00:00:00 2001 From: ekager Date: Fri, 8 Feb 2019 07:19:46 -0800 Subject: [PATCH] Closes #335 - Adds Report Site Issue Menu Item --- .../mozilla/fenix/browser/BrowserFragment.kt | 18 ++++++++++-------- .../fenix/search/toolbar/ToolbarMenu.kt | 10 ++++++++++ app/src/main/res/drawable/ic_report_issues.xml | 12 ++++++++++++ app/src/main/res/values/strings.xml | 2 +- 4 files changed, 33 insertions(+), 9 deletions(-) create mode 100644 app/src/main/res/drawable/ic_report_issues.xml diff --git a/app/src/main/java/org/mozilla/fenix/browser/BrowserFragment.kt b/app/src/main/java/org/mozilla/fenix/browser/BrowserFragment.kt index 59d36bf78..b3564e0fe 100644 --- a/app/src/main/java/org/mozilla/fenix/browser/BrowserFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/browser/BrowserFragment.kt @@ -24,22 +24,18 @@ import mozilla.components.feature.contextmenu.ContextMenuCandidate import mozilla.components.feature.contextmenu.ContextMenuFeature import mozilla.components.feature.customtabs.CustomTabsToolbarFeature import mozilla.components.feature.downloads.DownloadsFeature +import mozilla.components.feature.prompts.PromptFeature import mozilla.components.feature.session.SessionFeature import mozilla.components.feature.session.SessionUseCases import mozilla.components.support.ktx.android.arch.lifecycle.addObservers -import org.mozilla.fenix.R -import org.mozilla.fenix.ext.requireComponents -import mozilla.components.feature.prompts.PromptFeature import org.mozilla.fenix.BackHandler +import org.mozilla.fenix.R import org.mozilla.fenix.components.FindInPageIntegration +import org.mozilla.fenix.ext.requireComponents import org.mozilla.fenix.ext.share import org.mozilla.fenix.mvi.ActionBusFactory import org.mozilla.fenix.mvi.getSafeManagedObservable -import org.mozilla.fenix.search.toolbar.SearchAction -import org.mozilla.fenix.search.toolbar.ToolbarComponent -import org.mozilla.fenix.search.toolbar.SearchState -import org.mozilla.fenix.search.toolbar.ToolbarUIView -import org.mozilla.fenix.search.toolbar.ToolbarMenu +import org.mozilla.fenix.search.toolbar.* class BrowserFragment : Fragment(), BackHandler { @@ -200,6 +196,11 @@ class BrowserFragment : Fragment(), BackHandler { is ToolbarMenu.Item.RequestDesktop -> sessionUseCases.requestDesktopSite.invoke(action.item.isChecked) is ToolbarMenu.Item.Share -> requireComponents.core.sessionManager .selectedSession?.url?.apply { requireContext().share(this) } + is ToolbarMenu.Item.ReportIssue -> requireComponents.core.sessionManager + .selectedSession?.url?.apply { + val reportUrl = String.format(REPORT_SITE_ISSUE_URL, this) + sessionUseCases.loadUrl.invoke(reportUrl) + } } } @@ -208,5 +209,6 @@ class BrowserFragment : Fragment(), BackHandler { private const val REQUEST_CODE_DOWNLOAD_PERMISSIONS = 1 private const val REQUEST_CODE_PROMPT_PERMISSIONS = 2 private const val TOOLBAR_HEIGHT = 56f + private const val REPORT_SITE_ISSUE_URL = "https://webcompat.com/issues/new?url=%s&label=browser-fenix" } } diff --git a/app/src/main/java/org/mozilla/fenix/search/toolbar/ToolbarMenu.kt b/app/src/main/java/org/mozilla/fenix/search/toolbar/ToolbarMenu.kt index 206c05924..133e41436 100644 --- a/app/src/main/java/org/mozilla/fenix/search/toolbar/ToolbarMenu.kt +++ b/app/src/main/java/org/mozilla/fenix/search/toolbar/ToolbarMenu.kt @@ -29,6 +29,7 @@ class ToolbarMenu( object Back : Item() object Forward : Item() object Reload : Item() + object ReportIssue : Item() } val menuBuilder by lazy { BrowserMenuBuilder(menuItems) } @@ -133,6 +134,15 @@ class ToolbarMenu( onItemTapped.invoke(Item.Share) }, + BrowserMenuImageText( + context.getString(R.string.browser_menu_report_issue), + R.drawable.ic_report_issues, + context.getString(R.string.browser_menu_report_issue), + R.color.icons + ) { + onItemTapped.invoke(Item.ReportIssue) + }, + BrowserMenuDivider(), menuToolbar diff --git a/app/src/main/res/drawable/ic_report_issues.xml b/app/src/main/res/drawable/ic_report_issues.xml new file mode 100644 index 000000000..75fe48ed0 --- /dev/null +++ b/app/src/main/res/drawable/ic_report_issues.xml @@ -0,0 +1,12 @@ + + + + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 0936699cf..87381b526 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -24,7 +24,7 @@ Find in Page Private Tab New Tab - Report Issue + Report Site Issue Share Fenix will collect your browsing sessions on your Home Screen for you to retrieve later.