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
Browse files Browse the repository at this point in the history
  • Loading branch information
ekager committed Aug 2, 2019
1 parent 7916025 commit dbd92c0
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,8 @@ class BookmarkFragment : LibraryPageFragment<BookmarkNode>(), BackHandler, Accou
bookmarkStore,
sharedViewModel,
FenixSnackbarPresenter(view),
::deleteMulti
::deleteMulti,
::invokePendingDeletion
)

bookmarkView = BookmarkView(view.bookmark_layout, bookmarkInteractor)
Expand Down Expand Up @@ -177,10 +178,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 -> {
invokePendingDeletion()
nav(
R.id.bookmarkFragment,
BookmarkFragmentDirections
Expand All @@ -189,13 +192,15 @@ class BookmarkFragment : LibraryPageFragment<BookmarkNode>(), BackHandler, Accou
true
}
R.id.open_bookmarks_in_new_tabs_multi_select -> {
invokePendingDeletion()
openItemsInNewTab { node -> node.url }

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

nav(R.id.bookmarkFragment, BookmarkFragmentDirections.actionBookmarkFragmentToHomeFragment())
Expand All @@ -219,7 +224,10 @@ class BookmarkFragment : LibraryPageFragment<BookmarkNode>(), BackHandler, Accou
}
}

override fun onBackPressed(): Boolean = bookmarkView.onBackPressed()
override fun onBackPressed(): Boolean {
invokePendingDeletion()
return bookmarkView.onBackPressed()
}

override fun onAuthenticated(account: OAuthAccount, newAccount: Boolean) {
bookmarkInteractor.signedIn()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,8 @@ class BookmarkFragmentInteractor(
private val bookmarkStore: BookmarkStore,
private val sharedViewModel: BookmarksSharedViewModel,
private val snackbarPresenter: FenixSnackbarPresenter,
private val deleteBookmarkNodes: (Set<BookmarkNode>, Event) -> Unit
private val deleteBookmarkNodes: (Set<BookmarkNode>, Event) -> Unit,
private val invokePendingDelete: () -> Unit
) : BookmarkViewInteractor, SignInInteractor {

val activity: HomeActivity?
Expand All @@ -51,6 +52,7 @@ class BookmarkFragmentInteractor(
}

override fun open(item: BookmarkNode) {
invokePendingDelete.invoke()
require(item.type == BookmarkNodeType.ITEM)
item.url?.let { url ->
activity!!
Expand All @@ -64,6 +66,7 @@ class BookmarkFragmentInteractor(
}

override fun expand(folder: BookmarkNode) {
invokePendingDelete.invoke()
require(folder.type == BookmarkNodeType.FOLDER)
navController.nav(
R.id.bookmarkFragment,
Expand Down Expand Up @@ -107,6 +110,7 @@ class BookmarkFragmentInteractor(
}

override fun share(item: BookmarkNode) {
invokePendingDelete.invoke()
require(item.type == BookmarkNodeType.ITEM)
item.url?.apply {
navController.nav(
Expand All @@ -121,6 +125,7 @@ class BookmarkFragmentInteractor(
}

override fun openInNewTab(item: BookmarkNode) {
invokePendingDelete.invoke()
require(item.type == BookmarkNodeType.ITEM)
item.url?.let { url ->
activity?.browsingModeManager?.mode =
Expand All @@ -135,6 +140,7 @@ class BookmarkFragmentInteractor(
}

override fun openInPrivateTab(item: BookmarkNode) {
invokePendingDelete.invoke()
require(item.type == BookmarkNodeType.ITEM)
item.url?.let { url ->
activity?.browsingModeManager?.mode =
Expand Down Expand Up @@ -172,6 +178,7 @@ class BookmarkFragmentInteractor(
}

override fun clickedSignIn() {
invokePendingDelete.invoke()
context.components.services.launchPairingSignIn(context, navController)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ class BookmarkFragmentInteractorTest {
private val sharedViewModel: BookmarksSharedViewModel = 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 applicationContext: FenixApplication = mockk(relaxed = true)
private val homeActivity: HomeActivity = mockk(relaxed = true)
Expand Down Expand Up @@ -87,7 +88,8 @@ class BookmarkFragmentInteractorTest {
bookmarkStore,
sharedViewModel,
snackbarPresenter,
deleteBookmarkNodes
deleteBookmarkNodes,
invokePendingDeletion
)
}

Expand Down

0 comments on commit dbd92c0

Please sign in to comment.