Bug 1643132 - Remove native "Report site issue" functionality.
This will be replaced by the WebCompat team's system extension that ships as an android-component.master
parent
f40e0acf96
commit
d046d908fc
|
@ -257,7 +257,5 @@ class BrowserFragment : BaseBrowserFragment(), UserInteractionHandler {
|
|||
companion object {
|
||||
private const val SHARED_TRANSITION_MS = 200L
|
||||
private const val TAB_ITEM_TRANSITION_NAME = "tab_item"
|
||||
const val REPORT_SITE_ISSUE_URL =
|
||||
"https://webcompat.com/issues/new?url=%s&label=browser-fenix"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -420,7 +420,7 @@ sealed class Event {
|
|||
data class BrowserMenuItemTapped(val item: Item) : Event() {
|
||||
enum class Item {
|
||||
SETTINGS, HELP, DESKTOP_VIEW_ON, DESKTOP_VIEW_OFF, FIND_IN_PAGE, NEW_TAB,
|
||||
NEW_PRIVATE_TAB, SHARE, REPORT_SITE_ISSUE, BACK, FORWARD, RELOAD, STOP, OPEN_IN_FENIX,
|
||||
NEW_PRIVATE_TAB, SHARE, BACK, FORWARD, RELOAD, STOP, OPEN_IN_FENIX,
|
||||
SAVE_TO_COLLECTION, ADD_TO_TOP_SITES, ADD_TO_HOMESCREEN, QUIT, READER_MODE_ON,
|
||||
READER_MODE_OFF, OPEN_IN_APP, BOOKMARK, READER_MODE_APPEARANCE, ADDONS_MANAGER,
|
||||
BOOKMARKS, HISTORY, SYNC_TABS
|
||||
|
|
|
@ -20,7 +20,6 @@ import mozilla.appservices.places.BookmarkRoot
|
|||
import mozilla.components.browser.session.Session
|
||||
import mozilla.components.browser.session.SessionManager
|
||||
import mozilla.components.browser.state.selector.findTab
|
||||
import mozilla.components.browser.state.selector.selectedTab
|
||||
import mozilla.components.concept.engine.EngineView
|
||||
import mozilla.components.concept.engine.prompt.ShareData
|
||||
import mozilla.components.support.ktx.kotlin.isUrl
|
||||
|
@ -28,7 +27,6 @@ import org.mozilla.fenix.NavGraphDirections
|
|||
import org.mozilla.fenix.R
|
||||
import org.mozilla.fenix.browser.BrowserAnimator
|
||||
import org.mozilla.fenix.browser.BrowserAnimator.Companion.getToolbarNavOptions
|
||||
import org.mozilla.fenix.browser.BrowserFragment
|
||||
import org.mozilla.fenix.browser.BrowserFragmentDirections
|
||||
import org.mozilla.fenix.browser.readermode.ReaderModeController
|
||||
import org.mozilla.fenix.collections.SaveCollectionStep
|
||||
|
@ -215,15 +213,6 @@ class DefaultBrowserToolbarController(
|
|||
findInPageLauncher()
|
||||
activity.components.analytics.metrics.track(Event.FindInPageOpened)
|
||||
}
|
||||
ToolbarMenu.Item.ReportIssue -> {
|
||||
val selectedTab = activity.components.core.store.state.selectedTab
|
||||
selectedTab?.let {
|
||||
val currentUrl = it.content.url
|
||||
val reportUrl = String.format(BrowserFragment.REPORT_SITE_ISSUE_URL, currentUrl)
|
||||
val private = it.content.private
|
||||
reportSiteIssue(reportUrl, private)
|
||||
}
|
||||
}
|
||||
|
||||
ToolbarMenu.Item.AddonsManager -> {
|
||||
navController.nav(
|
||||
|
@ -346,14 +335,6 @@ class DefaultBrowserToolbarController(
|
|||
}
|
||||
}
|
||||
|
||||
private fun reportSiteIssue(reportUrl: String, private: Boolean) {
|
||||
if (private) {
|
||||
activity.components.useCases.tabsUseCases.addPrivateTab.invoke(reportUrl)
|
||||
} else {
|
||||
activity.components.useCases.tabsUseCases.addTab.invoke(reportUrl)
|
||||
}
|
||||
}
|
||||
|
||||
@SuppressWarnings("ComplexMethod")
|
||||
private fun trackToolbarItemInteraction(item: ToolbarMenu.Item) {
|
||||
val eventItem = when (item) {
|
||||
|
@ -370,7 +351,6 @@ class DefaultBrowserToolbarController(
|
|||
}
|
||||
|
||||
ToolbarMenu.Item.FindInPage -> Event.BrowserMenuItemTapped.Item.FIND_IN_PAGE
|
||||
ToolbarMenu.Item.ReportIssue -> Event.BrowserMenuItemTapped.Item.REPORT_SITE_ISSUE
|
||||
ToolbarMenu.Item.OpenInFenix -> Event.BrowserMenuItemTapped.Item.OPEN_IN_FENIX
|
||||
ToolbarMenu.Item.Share -> Event.BrowserMenuItemTapped.Item.SHARE
|
||||
ToolbarMenu.Item.SaveToCollection -> Event.BrowserMenuItemTapped.Item.SAVE_TO_COLLECTION
|
||||
|
|
|
@ -26,10 +26,8 @@ import mozilla.components.browser.state.store.BrowserStore
|
|||
import mozilla.components.concept.storage.BookmarksStorage
|
||||
import mozilla.components.support.ktx.android.content.getColorFromAttr
|
||||
import org.mozilla.fenix.R
|
||||
import org.mozilla.fenix.Config
|
||||
import org.mozilla.fenix.FeatureFlags
|
||||
import org.mozilla.fenix.HomeActivity
|
||||
import org.mozilla.fenix.ReleaseChannel
|
||||
import org.mozilla.fenix.browser.browsingmode.BrowsingMode
|
||||
import org.mozilla.fenix.ext.asActivity
|
||||
import org.mozilla.fenix.ext.components
|
||||
|
@ -183,10 +181,6 @@ class DefaultToolbarMenu(
|
|||
?.browsingModeManager?.mode == BrowsingMode.Normal
|
||||
val shouldDeleteDataOnQuit = Settings.getInstance(context)
|
||||
.shouldDeleteBrowsingDataOnQuit
|
||||
val shouldShowWebcompatReporter = Config.channel !in setOf(
|
||||
ReleaseChannel.FenixProduction,
|
||||
ReleaseChannel.FennecProduction
|
||||
)
|
||||
|
||||
val menuItems = listOfNotNull(
|
||||
historyItem,
|
||||
|
@ -195,7 +189,6 @@ class DefaultToolbarMenu(
|
|||
settings,
|
||||
if (shouldDeleteDataOnQuit) deleteDataOnQuit else null,
|
||||
BrowserMenuDivider(),
|
||||
if (shouldShowWebcompatReporter) reportIssue else null,
|
||||
findInPage,
|
||||
addToTopSites,
|
||||
addToHomescreen.apply { visible = ::canAddToHomescreen },
|
||||
|
@ -292,14 +285,6 @@ class DefaultToolbarMenu(
|
|||
onItemTapped.invoke(ToolbarMenu.Item.FindInPage)
|
||||
}
|
||||
|
||||
private val reportIssue = BrowserMenuImageText(
|
||||
label = context.getString(R.string.browser_menu_report_issue),
|
||||
imageResource = R.drawable.ic_report_issues,
|
||||
iconTintColorResource = primaryTextColor()
|
||||
) {
|
||||
onItemTapped.invoke(ToolbarMenu.Item.ReportIssue)
|
||||
}
|
||||
|
||||
private val saveToCollection = BrowserMenuImageText(
|
||||
label = context.getString(R.string.browser_menu_save_to_collection_2),
|
||||
imageResource = R.drawable.ic_tab_collection,
|
||||
|
|
|
@ -17,7 +17,6 @@ interface ToolbarMenu {
|
|||
object Forward : Item()
|
||||
object Reload : Item()
|
||||
object Stop : Item()
|
||||
object ReportIssue : Item()
|
||||
object OpenInFenix : Item()
|
||||
object SaveToCollection : Item()
|
||||
object AddToTopSites : Item()
|
||||
|
|
|
@ -64,7 +64,6 @@ interface QuickSettingsController {
|
|||
* @param addNewTab [AddNewTabUseCase] callback allowing for loading a URL in a new tab.
|
||||
* @param requestRuntimePermissions [OnNeedToRequestPermissions] callback allowing for requesting
|
||||
* specific Android runtime permissions.
|
||||
* @param reportSiteIssue callback allowing to report an issue with the current web page.
|
||||
* @param displayPermissions callback for when [WebsitePermissionsView] needs to be displayed.
|
||||
* @param dismiss callback allowing to request this entire Fragment to be dismissed.
|
||||
*/
|
||||
|
@ -81,7 +80,6 @@ class DefaultQuickSettingsController(
|
|||
private val reload: ReloadUrlUseCase,
|
||||
private val addNewTab: AddNewTabUseCase,
|
||||
private val requestRuntimePermissions: OnNeedToRequestPermissions = { },
|
||||
private val reportSiteIssue: () -> Unit,
|
||||
private val displayPermissions: () -> Unit,
|
||||
private val dismiss: () -> Unit
|
||||
) : QuickSettingsController {
|
||||
|
|
|
@ -87,7 +87,6 @@ class QuickSettingsSheetDialogFragment : AppCompatDialogFragment() {
|
|||
requestPermissions(permissions, REQUEST_CODE_QUICK_SETTINGS_PERMISSIONS)
|
||||
tryToRequestPermissions = true
|
||||
},
|
||||
reportSiteIssue = ::launchIntentReceiver,
|
||||
displayPermissions = ::showPermissionsView,
|
||||
dismiss = ::dismiss
|
||||
)
|
||||
|
|
|
@ -34,17 +34,5 @@
|
|||
android:textColor="?accentBright"
|
||||
android:visibility="gone"
|
||||
tools:visibility="visible"
|
||||
app:layout_constraintBottom_toTopOf="@id/reportSiteIssueAction" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/reportSiteIssueAction"
|
||||
style="@style/QuickSettingsText.Icon"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="@dimen/quicksettings_item_height"
|
||||
android:gravity="top"
|
||||
android:paddingStart="48dp"
|
||||
android:paddingEnd="0dp"
|
||||
android:text="@string/browser_menu_report_issue"
|
||||
android:textColor="?accentUsedOnDarkBackground"
|
||||
app:layout_constraintBottom_toBottomOf="parent" />
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
|
|
@ -105,8 +105,6 @@
|
|||
<string name="browser_menu_new_tab">New tab</string>
|
||||
<!-- Browser menu button that saves the current tab to a collection -->
|
||||
<string name="browser_menu_save_to_collection_2">Save to collection</string>
|
||||
<!-- Browser menu button that opens a dialog to report issues with the current site -->
|
||||
<string name="browser_menu_report_issue">Report site issue</string>
|
||||
<!-- Browser menu button that open a share menu to share the current site -->
|
||||
<string name="browser_menu_share">Share</string>
|
||||
<!-- Share menu title, displayed when a user is sharing their current site -->
|
||||
|
|
|
@ -36,7 +36,6 @@ import mozilla.components.concept.engine.EngineView
|
|||
import mozilla.components.feature.search.SearchUseCases
|
||||
import mozilla.components.feature.session.SessionUseCases
|
||||
import mozilla.components.feature.tab.collections.TabCollection
|
||||
import mozilla.components.feature.tabs.TabsUseCases
|
||||
import org.junit.After
|
||||
import org.junit.Assert.assertEquals
|
||||
import org.junit.Before
|
||||
|
@ -45,7 +44,6 @@ import org.junit.runner.RunWith
|
|||
import org.mozilla.fenix.HomeActivity
|
||||
import org.mozilla.fenix.R
|
||||
import org.mozilla.fenix.browser.BrowserAnimator
|
||||
import org.mozilla.fenix.browser.BrowserFragment
|
||||
import org.mozilla.fenix.browser.BrowserFragmentDirections
|
||||
import org.mozilla.fenix.browser.readermode.ReaderModeController
|
||||
import org.mozilla.fenix.collections.SaveCollectionStep
|
||||
|
@ -422,84 +420,6 @@ class DefaultBrowserToolbarControllerTest {
|
|||
verify { metrics.track(Event.FindInPageOpened) }
|
||||
}
|
||||
|
||||
@Test
|
||||
fun handleToolbarReportIssuePressInNormalMode() {
|
||||
val tabsUseCases: TabsUseCases = mockk(relaxed = true)
|
||||
val addTabUseCase: TabsUseCases.AddNewTabUseCase = mockk(relaxed = true)
|
||||
|
||||
val browserStore =
|
||||
BrowserStore(
|
||||
BrowserState(
|
||||
tabs = listOf(
|
||||
createTab(
|
||||
url = "https://mozilla.org",
|
||||
private = false,
|
||||
id = "tab1"
|
||||
)
|
||||
),
|
||||
selectedTabId = "tab1"
|
||||
)
|
||||
)
|
||||
|
||||
val item = ToolbarMenu.Item.ReportIssue
|
||||
|
||||
every { activity.components.core.store } returns browserStore
|
||||
every { activity.components.useCases.tabsUseCases } returns tabsUseCases
|
||||
every { tabsUseCases.addTab } returns addTabUseCase
|
||||
|
||||
controller.handleToolbarItemInteraction(item)
|
||||
|
||||
verify { metrics.track(Event.BrowserMenuItemTapped(Event.BrowserMenuItemTapped.Item.REPORT_SITE_ISSUE)) }
|
||||
verify {
|
||||
// Hardcoded URL because this function modifies the URL with an apply
|
||||
addTabUseCase.invoke(
|
||||
String.format(
|
||||
BrowserFragment.REPORT_SITE_ISSUE_URL,
|
||||
"https://mozilla.org"
|
||||
)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
fun handleToolbarReportIssuePressInPrivateMode() {
|
||||
val tabsUseCases: TabsUseCases = mockk(relaxed = true)
|
||||
val addPrivateTabUseCase: TabsUseCases.AddNewPrivateTabUseCase = mockk(relaxed = true)
|
||||
|
||||
val browserStore =
|
||||
BrowserStore(
|
||||
BrowserState(
|
||||
tabs = listOf(
|
||||
createTab(
|
||||
url = "https://mozilla.org",
|
||||
private = true,
|
||||
id = "tab1"
|
||||
)
|
||||
),
|
||||
selectedTabId = "tab1"
|
||||
)
|
||||
)
|
||||
|
||||
val item = ToolbarMenu.Item.ReportIssue
|
||||
|
||||
every { activity.components.core.store } returns browserStore
|
||||
every { activity.components.useCases.tabsUseCases } returns tabsUseCases
|
||||
every { tabsUseCases.addPrivateTab } returns addPrivateTabUseCase
|
||||
|
||||
controller.handleToolbarItemInteraction(item)
|
||||
|
||||
verify { metrics.track(Event.BrowserMenuItemTapped(Event.BrowserMenuItemTapped.Item.REPORT_SITE_ISSUE)) }
|
||||
verify {
|
||||
// Hardcoded URL because this function modifies the URL with an apply
|
||||
addPrivateTabUseCase.invoke(
|
||||
String.format(
|
||||
BrowserFragment.REPORT_SITE_ISSUE_URL,
|
||||
"https://mozilla.org"
|
||||
)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
fun handleToolbarSaveToCollectionPressWhenAtLeastOneCollectionExists() {
|
||||
val item = ToolbarMenu.Item.SaveToCollection
|
||||
|
|
|
@ -51,7 +51,6 @@ class DefaultQuickSettingsControllerTest {
|
|||
private val reload = mockk<SessionUseCases.ReloadUrlUseCase>(relaxed = true)
|
||||
private val addNewTab = mockk<TabsUseCases.AddNewTabUseCase>(relaxed = true)
|
||||
private val requestPermissions = mockk<(Array<String>) -> Unit>(relaxed = true)
|
||||
private val reportIssue = mockk<() -> Unit>(relaxed = true)
|
||||
private val displayPermissions = mockk<() -> Unit>(relaxed = true)
|
||||
private val dismiss = mockk<() -> Unit>(relaxed = true)
|
||||
private val controller = DefaultQuickSettingsController(
|
||||
|
@ -66,7 +65,6 @@ class DefaultQuickSettingsControllerTest {
|
|||
reload = reload,
|
||||
addNewTab = addNewTab,
|
||||
requestRuntimePermissions = requestPermissions,
|
||||
reportSiteIssue = reportIssue,
|
||||
displayPermissions = displayPermissions,
|
||||
dismiss = dismiss
|
||||
)
|
||||
|
@ -147,7 +145,6 @@ class DefaultQuickSettingsControllerTest {
|
|||
reload = reload,
|
||||
addNewTab = addNewTab,
|
||||
requestRuntimePermissions = requestPermissions,
|
||||
reportSiteIssue = reportIssue,
|
||||
displayPermissions = displayPermissions,
|
||||
dismiss = dismiss
|
||||
)
|
||||
|
|
Loading…
Reference in New Issue