diff --git a/app/src/main/java/org/mozilla/fenix/library/bookmarks/BookmarkFragmentInteractor.kt b/app/src/main/java/org/mozilla/fenix/library/bookmarks/BookmarkFragmentInteractor.kt index 4a65edfdf..0b6e14c06 100644 --- a/app/src/main/java/org/mozilla/fenix/library/bookmarks/BookmarkFragmentInteractor.kt +++ b/app/src/main/java/org/mozilla/fenix/library/bookmarks/BookmarkFragmentInteractor.kt @@ -52,17 +52,7 @@ class BookmarkFragmentInteractor( override fun open(item: BookmarkNode) { when (item.type) { - BookmarkNodeType.ITEM -> { - item.url?.let { url -> - activity!! - .openToBrowserAndLoad( - searchTermOrURL = url, - newTab = true, - from = BrowserDirection.FromBookmarks - ) - } - metrics.track(Event.OpenedBookmark) - } + BookmarkNodeType.ITEM -> openItem(item) BookmarkNodeType.FOLDER -> { navController.nav( R.id.bookmarkFragment, @@ -123,28 +113,29 @@ class BookmarkFragmentInteractor( } override fun openInNewTab(item: BookmarkNode) { - require(item.type == BookmarkNodeType.ITEM) - item.url?.let { url -> - activity?.browsingModeManager?.mode = BrowsingMode.Normal - activity?.openToBrowserAndLoad( - searchTermOrURL = url, - newTab = true, - from = BrowserDirection.FromBookmarks - ) - metrics.track(Event.OpenedBookmarkInNewTab) - } + openItem(item, BrowsingMode.Normal) } override fun openInPrivateTab(item: BookmarkNode) { + openItem(item, BrowsingMode.Private) + } + + private fun openItem(item: BookmarkNode, tabMode: BrowsingMode? = null) { require(item.type == BookmarkNodeType.ITEM) item.url?.let { url -> - activity?.browsingModeManager?.mode = BrowsingMode.Private + tabMode?.let { activity?.browsingModeManager?.mode = it } activity?.openToBrowserAndLoad( searchTermOrURL = url, newTab = true, from = BrowserDirection.FromBookmarks ) - metrics.track(Event.OpenedBookmarkInPrivateTab) + metrics.track( + when (tabMode) { + BrowsingMode.Private -> Event.OpenedBookmarkInPrivateTab + BrowsingMode.Normal -> Event.OpenedBookmarkInNewTab + null -> Event.OpenedBookmark + } + ) } }