Skip to content
This repository has been archived by the owner on Feb 20, 2023. It is now read-only.

Commit

Permalink
For #3967 - Invokes pending deletion with more bookmark actions (#4522)
Browse files Browse the repository at this point in the history
  • Loading branch information
ekager authored and boek committed Aug 21, 2019
1 parent 6c020a0 commit c1b1c2f
Show file tree
Hide file tree
Showing 3 changed files with 38 additions and 13 deletions.
Expand Up @@ -44,7 +44,8 @@ class DefaultBookmarkController(
private val context: Context,
private val navController: NavController,
private val snackbarPresenter: FenixSnackbarPresenter,
private val deleteBookmarkNodes: (Set<BookmarkNode>, Event) -> Unit
private val deleteBookmarkNodes: (Set<BookmarkNode>, Event) -> Unit,
private val invokePendingDeletion: () -> Unit
) : BookmarkController {

private val activity: HomeActivity = context as HomeActivity
Expand Down Expand Up @@ -77,7 +78,8 @@ class DefaultBookmarkController(
}

override fun handleBookmarkSharing(item: BookmarkNode) {
navigate(BookmarkFragmentDirections.actionBookmarkFragmentToShareFragment(
navigate(
BookmarkFragmentDirections.actionBookmarkFragmentToShareFragment(
url = item.url!!,
title = item.title
)
Expand All @@ -93,10 +95,12 @@ class DefaultBookmarkController(
}

override fun handleBackPressed() {
invokePendingDeletion.invoke()
navController.popBackStack()
}

override fun handleSigningIn() {
invokePendingDeletion.invoke()
services.launchPairingSignIn(context, navController)
}

Expand All @@ -106,13 +110,15 @@ class DefaultBookmarkController(
from: BrowserDirection,
mode: BrowsingMode
) {
invokePendingDeletion.invoke()
with(activity) {
browsingModeManager.mode = mode
openToBrowserAndLoad(searchTermOrURL, newTab, from)
}
}

private fun navigate(directions: NavDirections) {
invokePendingDeletion.invoke()
navController.nav(R.id.bookmarkFragment, directions)
}
}
Expand Up @@ -19,6 +19,7 @@ import androidx.fragment.app.activityViewModels
import androidx.lifecycle.Observer
import androidx.lifecycle.lifecycleScope
import androidx.navigation.NavController
import androidx.navigation.NavDirections
import androidx.navigation.fragment.findNavController
import kotlinx.android.synthetic.main.fragment_bookmark.view.*
import kotlinx.coroutines.Dispatchers.IO
Expand Down Expand Up @@ -91,7 +92,8 @@ class BookmarkFragment : LibraryPageFragment<BookmarkNode>(), BackHandler, Accou
context = context!!,
navController = findNavController(),
snackbarPresenter = FenixSnackbarPresenter(view),
deleteBookmarkNodes = ::deleteMulti
deleteBookmarkNodes = ::deleteMulti,
invokePendingDeletion = ::invokePendingDeletion
),
metrics = metrics!!
)
Expand Down Expand Up @@ -185,12 +187,12 @@ class BookmarkFragment : LibraryPageFragment<BookmarkNode>(), BackHandler, Accou
override fun onOptionsItemSelected(item: MenuItem): Boolean {
return when (item.itemId) {
R.id.libraryClose -> {
invokePendingDeletion()
close()
true
}
R.id.add_bookmark_folder -> {
nav(
R.id.bookmarkFragment,
navigate(
BookmarkFragmentDirections
.actionBookmarkFragmentToBookmarkAddFolderFragment()
)
Expand All @@ -199,23 +201,23 @@ class BookmarkFragment : LibraryPageFragment<BookmarkNode>(), BackHandler, Accou
R.id.open_bookmarks_in_new_tabs_multi_select -> {
openItemsInNewTab { node -> node.url }

nav(R.id.bookmarkFragment, BookmarkFragmentDirections.actionBookmarkFragmentToHomeFragment())
navigate(BookmarkFragmentDirections.actionBookmarkFragmentToHomeFragment())
metrics?.track(Event.OpenedBookmarksInNewTabs)
true
}
R.id.open_bookmarks_in_private_tabs_multi_select -> {
openItemsInNewTab(private = true) { node -> node.url }

nav(R.id.bookmarkFragment, BookmarkFragmentDirections.actionBookmarkFragmentToHomeFragment())
navigate(BookmarkFragmentDirections.actionBookmarkFragmentToHomeFragment())
metrics?.track(Event.OpenedBookmarksInPrivateTabs)
true
}
R.id.edit_bookmark_multi_select -> {
val bookmark = bookmarkStore.state.mode.selectedItems.first()
nav(
R.id.bookmarkFragment,
BookmarkFragmentDirections
.actionBookmarkFragmentToBookmarkEditFragment(bookmark.guid)
navigate(
BookmarkFragmentDirections.actionBookmarkFragmentToBookmarkEditFragment(
bookmark.guid
)
)
true
}
Expand All @@ -227,6 +229,11 @@ class BookmarkFragment : LibraryPageFragment<BookmarkNode>(), BackHandler, Accou
}
}

private fun navigate(directions: NavDirections) {
invokePendingDeletion()
nav(R.id.bookmarkFragment, directions)
}

override fun onBackPressed(): Boolean = bookmarkView.onBackPressed()

override fun onAuthenticated(account: OAuthAccount, newAccount: Boolean) {
Expand Down
Expand Up @@ -38,6 +38,7 @@ class BookmarkControllerTest {
private val navController: NavController = mockk(relaxed = true)
private val snackbarPresenter: FenixSnackbarPresenter = mockk(relaxed = true)
private val deleteBookmarkNodes: (Set<BookmarkNode>, Event) -> Unit = mockk(relaxed = true)
private val invokePendingDeletion: () -> Unit = mockk(relaxed = true)

private val homeActivity: HomeActivity = mockk(relaxed = true)
private val services: Services = mockk(relaxed = true)
Expand All @@ -63,13 +64,16 @@ class BookmarkControllerTest {
)

every { homeActivity.components.services } returns services
every { navController.currentDestination } returns NavDestination("").apply { id = R.id.bookmarkFragment }
every { navController.currentDestination } returns NavDestination("").apply {
id = R.id.bookmarkFragment
}

controller = DefaultBookmarkController(
context = homeActivity,
navController = navController,
snackbarPresenter = snackbarPresenter,
deleteBookmarkNodes = deleteBookmarkNodes
deleteBookmarkNodes = deleteBookmarkNodes,
invokePendingDeletion = invokePendingDeletion
)
}

Expand All @@ -78,6 +82,7 @@ class BookmarkControllerTest {
controller.handleBookmarkTapped(item)

verifyOrder {
invokePendingDeletion.invoke()
homeActivity.browsingModeManager.mode = BrowsingMode.Normal
homeActivity.openToBrowserAndLoad(item.url!!, true, BrowserDirection.FromBookmarks)
}
Expand All @@ -88,6 +93,7 @@ class BookmarkControllerTest {
controller.handleBookmarkExpand(tree)

verify {
invokePendingDeletion.invoke()
navController.navigate(BookmarkFragmentDirections.actionBookmarkFragmentSelf(tree.guid))
}
}
Expand All @@ -106,6 +112,7 @@ class BookmarkControllerTest {
controller.handleBookmarkEdit(item)

verify {
invokePendingDeletion.invoke()
navController.navigate(BookmarkFragmentDirections.actionBookmarkFragmentToBookmarkEditFragment(item.guid))
}
}
Expand Down Expand Up @@ -141,6 +148,7 @@ class BookmarkControllerTest {
controller.handleBookmarkSharing(item)

verify {
invokePendingDeletion.invoke()
navController.navigate(
BookmarkFragmentDirections.actionBookmarkFragmentToShareFragment(
item.url,
Expand All @@ -155,6 +163,7 @@ class BookmarkControllerTest {
controller.handleOpeningBookmark(item, BrowsingMode.Normal)

verifyOrder {
invokePendingDeletion.invoke()
homeActivity.browsingModeManager.mode = BrowsingMode.Normal
homeActivity.openToBrowserAndLoad(item.url!!, true, BrowserDirection.FromBookmarks)
}
Expand All @@ -165,6 +174,7 @@ class BookmarkControllerTest {
controller.handleOpeningBookmark(item, BrowsingMode.Private)

verifyOrder {
invokePendingDeletion.invoke()
homeActivity.browsingModeManager.mode = BrowsingMode.Private
homeActivity.openToBrowserAndLoad(item.url!!, true, BrowserDirection.FromBookmarks)
}
Expand Down Expand Up @@ -202,6 +212,7 @@ class BookmarkControllerTest {
controller.handleBackPressed()

verify {
invokePendingDeletion.invoke()
navController.popBackStack()
}
}
Expand All @@ -211,6 +222,7 @@ class BookmarkControllerTest {
controller.handleSigningIn()

verify {
invokePendingDeletion.invoke()
services.launchPairingSignIn(homeActivity, navController)
}
}
Expand Down

0 comments on commit c1b1c2f

Please sign in to comment.