For #2316: Adds confirmation dialog to delete bookmark

nightly-build-test
Sawyer Blatz 5 years ago
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…
Cancel
Save