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 59d36bf78915..b3564e0fef90 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 206c05924766..133e41436b94 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 000000000000..75fe48ed078c --- /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 0936699cffb1..87381b5264f8 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.