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) {
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
}
)
}
}