For #2316: Adds confirmation dialog to delete bookmark
This commit is contained in:
parent
605a8262b8
commit
0b3a8b7a54
|
@ -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(),
|
||||
|
|
|
@ -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<String?, String?>) {
|
||||
launch(IO) {
|
||||
try {
|
||||
|
|
|
@ -431,6 +431,8 @@
|
|||
<string name="bookmark_deletion_multiple_snackbar_message">Deleting selected bookmarks</string>
|
||||
<!-- Bookmark undo button for deletion snackbar action -->
|
||||
<string name="bookmark_undo_deletion">UNDO</string>
|
||||
<!-- Bookmark deletion confirmation -->
|
||||
<string name="bookmark_deletion_confirmation">Are you sure you want to delete this bookmark?</string>
|
||||
|
||||
<!-- Site Permissions -->
|
||||
<!-- Button label that take the user to the Android App setting -->
|
||||
|
|
Loading…
Reference in New Issue
Block a user