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.