diff --git a/app/src/main/java/org/mozilla/fenix/browser/BrowserFragment.kt b/app/src/main/java/org/mozilla/fenix/browser/BrowserFragment.kt index d0efb0934..93d55b688 100644 --- a/app/src/main/java/org/mozilla/fenix/browser/BrowserFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/browser/BrowserFragment.kt @@ -555,7 +555,7 @@ class BrowserFragment : Fragment(), BackHandler, CoroutineScope { it.rootView, Snackbar.LENGTH_LONG ) - .setAnchorView(nestedScrollQuickAction) + .setAnchorView(toolbarComponent.uiView.view) .setAction(getString(R.string.edit_bookmark_snackbar_action)) { Navigation.findNavController( requireActivity(), diff --git a/app/src/main/java/org/mozilla/fenix/library/bookmarks/edit/EditBookmarkFragment.kt b/app/src/main/java/org/mozilla/fenix/library/bookmarks/edit/EditBookmarkFragment.kt index 2f22a9ada..604d6e843 100644 --- a/app/src/main/java/org/mozilla/fenix/library/bookmarks/edit/EditBookmarkFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/library/bookmarks/edit/EditBookmarkFragment.kt @@ -4,6 +4,7 @@ package org.mozilla.fenix.library.bookmarks.edit +import android.content.DialogInterface import android.graphics.PorterDuff import android.graphics.PorterDuffColorFilter import android.os.Bundle @@ -13,6 +14,7 @@ import android.view.MenuInflater import android.view.MenuItem import android.view.View import android.view.ViewGroup +import androidx.appcompat.app.AlertDialog import androidx.appcompat.app.AppCompatActivity import androidx.fragment.app.Fragment import androidx.lifecycle.ViewModelProviders @@ -147,19 +149,35 @@ class EditBookmarkFragment : Fragment(), CoroutineScope { override fun onOptionsItemSelected(item: MenuItem): Boolean { return when (item.itemId) { R.id.delete_bookmark_button -> { - launch(IO) { - requireComponents.core.bookmarksStorage.deleteNode(guidToEdit) - requireComponents.analytics.metrics.track(Event.RemoveBookmark) - launch(Main) { - Navigation.findNavController(requireActivity(), R.id.container).popBackStack() - } - } + displayDeleteBookmarkDialog() true } else -> super.onOptionsItemSelected(item) } } + private fun displayDeleteBookmarkDialog() { + activity?.let { activity -> + AlertDialog.Builder(activity).apply { + setMessage(R.string.bookmark_deletion_confirmation) + setNegativeButton(android.R.string.cancel) { dialog: DialogInterface, _ -> + dialog.cancel() + } + setPositiveButton(R.string.tab_collection_dialog_positive) { dialog: DialogInterface, _ -> + launch(IO) { + requireComponents.core.bookmarksStorage.deleteNode(guidToEdit) + requireComponents.analytics.metrics.track(Event.RemoveBookmark) + launch(Main) { + Navigation.findNavController(requireActivity(), R.id.container).popBackStack() + } + } + dialog.dismiss() + } + create() + }.show() + } + } + private fun updateBookmarkNode(pair: Pair) { launch(IO) { try { diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 0922eb395..f853b29a6 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -431,6 +431,8 @@ Deleting selected bookmarks UNDO + + Are you sure you want to delete this bookmark?