|
|
|
@ -21,8 +21,6 @@ import androidx.lifecycle.lifecycleScope
|
|
|
|
|
import androidx.navigation.NavDirections
|
|
|
|
|
import androidx.navigation.fragment.findNavController
|
|
|
|
|
import androidx.navigation.fragment.navArgs
|
|
|
|
|
import kotlinx.android.synthetic.main.component_bookmark.view.*
|
|
|
|
|
import kotlinx.android.synthetic.main.fragment_bookmark.view.*
|
|
|
|
|
import kotlinx.coroutines.CoroutineScope
|
|
|
|
|
import kotlinx.coroutines.Dispatchers.IO
|
|
|
|
|
import kotlinx.coroutines.Dispatchers.Main
|
|
|
|
@ -44,6 +42,7 @@ import org.mozilla.fenix.R
|
|
|
|
|
import org.mozilla.fenix.components.FenixSnackbar
|
|
|
|
|
import org.mozilla.fenix.components.StoreProvider
|
|
|
|
|
import org.mozilla.fenix.components.metrics.Event
|
|
|
|
|
import org.mozilla.fenix.databinding.FragmentBookmarkBinding
|
|
|
|
|
import org.mozilla.fenix.ext.bookmarkStorage
|
|
|
|
|
import org.mozilla.fenix.ext.components
|
|
|
|
|
import org.mozilla.fenix.ext.minus
|
|
|
|
@ -72,13 +71,16 @@ class BookmarkFragment : LibraryPageFragment<BookmarkNode>(), UserInteractionHan
|
|
|
|
|
private var pendingBookmarkDeletionJob: (suspend () -> Unit)? = null
|
|
|
|
|
private var pendingBookmarksToDelete: MutableSet<BookmarkNode> = mutableSetOf()
|
|
|
|
|
|
|
|
|
|
private var _binding: FragmentBookmarkBinding? = null
|
|
|
|
|
private val binding get() = _binding!!
|
|
|
|
|
|
|
|
|
|
private val metrics
|
|
|
|
|
get() = context?.components?.analytics?.metrics
|
|
|
|
|
|
|
|
|
|
override val selectedItems get() = bookmarkStore.state.mode.selectedItems
|
|
|
|
|
|
|
|
|
|
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
|
|
|
|
|
val view = inflater.inflate(R.layout.fragment_bookmark, container, false)
|
|
|
|
|
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View {
|
|
|
|
|
_binding = FragmentBookmarkBinding.inflate(inflater, container, false)
|
|
|
|
|
|
|
|
|
|
bookmarkStore = StoreProvider.get(this) {
|
|
|
|
|
BookmarkFragmentStore(BookmarkFragmentState(null))
|
|
|
|
@ -103,8 +105,8 @@ class BookmarkFragment : LibraryPageFragment<BookmarkNode>(), UserInteractionHan
|
|
|
|
|
metrics = metrics!!
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
bookmarkView = BookmarkView(view.bookmarkLayout, bookmarkInteractor, findNavController())
|
|
|
|
|
bookmarkView.view.bookmark_folders_sign_in.visibility = View.GONE
|
|
|
|
|
bookmarkView = BookmarkView(binding.bookmarkLayout, bookmarkInteractor, findNavController())
|
|
|
|
|
bookmarkView.binding.bookmarkFoldersSignIn.visibility = View.GONE
|
|
|
|
|
|
|
|
|
|
viewLifecycleOwner.lifecycle.addObserver(
|
|
|
|
|
BookmarkDeselectNavigationListener(
|
|
|
|
@ -114,7 +116,7 @@ class BookmarkFragment : LibraryPageFragment<BookmarkNode>(), UserInteractionHan
|
|
|
|
|
)
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
return view
|
|
|
|
|
return binding.root
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private fun showSnackBarWithText(text: String) {
|
|
|
|
@ -138,7 +140,7 @@ class BookmarkFragment : LibraryPageFragment<BookmarkNode>(), UserInteractionHan
|
|
|
|
|
// Don't want to pester user too much with it, and if there are lots of bookmarks present,
|
|
|
|
|
// it'll just get visually lost. Inside of the "Desktop Bookmarks" node, it'll nicely stand-out,
|
|
|
|
|
// since there are always only three other items in there. It's also the right place contextually.
|
|
|
|
|
bookmarkView.view.bookmark_folders_sign_in.isVisible =
|
|
|
|
|
bookmarkView.binding.bookmarkFoldersSignIn.isVisible =
|
|
|
|
|
it.tree?.guid == BookmarkRoot.Root.id && accountManager.authenticatedAccount() == null
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@ -361,6 +363,7 @@ class BookmarkFragment : LibraryPageFragment<BookmarkNode>(), UserInteractionHan
|
|
|
|
|
override fun onDestroyView() {
|
|
|
|
|
super.onDestroyView()
|
|
|
|
|
_bookmarkInteractor = null
|
|
|
|
|
_binding = null
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private fun showRemoveFolderDialog(selected: Set<BookmarkNode>) {
|
|
|
|
|