No issue: reduce code duplication in BookmarkFragmentInteractor

This commit is contained in:
Grisha Kruglov 2019-08-09 16:25:00 -07:00 committed by Grisha Kruglov
parent 5fe05e919a
commit f323105163
1 changed files with 14 additions and 23 deletions

View File

@ -52,17 +52,7 @@ class BookmarkFragmentInteractor(
override fun open(item: BookmarkNode) { override fun open(item: BookmarkNode) {
when (item.type) { when (item.type) {
BookmarkNodeType.ITEM -> { BookmarkNodeType.ITEM -> openItem(item)
item.url?.let { url ->
activity!!
.openToBrowserAndLoad(
searchTermOrURL = url,
newTab = true,
from = BrowserDirection.FromBookmarks
)
}
metrics.track(Event.OpenedBookmark)
}
BookmarkNodeType.FOLDER -> { BookmarkNodeType.FOLDER -> {
navController.nav( navController.nav(
R.id.bookmarkFragment, R.id.bookmarkFragment,
@ -123,28 +113,29 @@ class BookmarkFragmentInteractor(
} }
override fun openInNewTab(item: BookmarkNode) { override fun openInNewTab(item: BookmarkNode) {
require(item.type == BookmarkNodeType.ITEM) openItem(item, BrowsingMode.Normal)
item.url?.let { url ->
activity?.browsingModeManager?.mode = BrowsingMode.Normal
activity?.openToBrowserAndLoad(
searchTermOrURL = url,
newTab = true,
from = BrowserDirection.FromBookmarks
)
metrics.track(Event.OpenedBookmarkInNewTab)
}
} }
override fun openInPrivateTab(item: BookmarkNode) { override fun openInPrivateTab(item: BookmarkNode) {
openItem(item, BrowsingMode.Private)
}
private fun openItem(item: BookmarkNode, tabMode: BrowsingMode? = null) {
require(item.type == BookmarkNodeType.ITEM) require(item.type == BookmarkNodeType.ITEM)
item.url?.let { url -> item.url?.let { url ->
activity?.browsingModeManager?.mode = BrowsingMode.Private tabMode?.let { activity?.browsingModeManager?.mode = it }
activity?.openToBrowserAndLoad( activity?.openToBrowserAndLoad(
searchTermOrURL = url, searchTermOrURL = url,
newTab = true, newTab = true,
from = BrowserDirection.FromBookmarks from = BrowserDirection.FromBookmarks
) )
metrics.track(Event.OpenedBookmarkInPrivateTab) metrics.track(
when (tabMode) {
BrowsingMode.Private -> Event.OpenedBookmarkInPrivateTab
BrowsingMode.Normal -> Event.OpenedBookmarkInNewTab
null -> Event.OpenedBookmark
}
)
} }
} }