diff --git a/CHANGELOG.md b/CHANGELOG.md
index 1aaba0e34d..c5e3801074 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -35,6 +35,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- #1571 - Added a snackbar for undoing bookmark deletion
- #1079 - Managing site permissions exceptions
- #1312 - Added clear textfield buttons for editing bookmarks
+- #1312 - Added a missing edit action for bookmark selections
### Changed
- #1429 - Updated site permissions ui for MVP
diff --git a/app/src/main/java/org/mozilla/fenix/library/bookmarks/BookmarkFragment.kt b/app/src/main/java/org/mozilla/fenix/library/bookmarks/BookmarkFragment.kt
index 66a0de72e2..4d73e78dbc 100644
--- a/app/src/main/java/org/mozilla/fenix/library/bookmarks/BookmarkFragment.kt
+++ b/app/src/main/java/org/mozilla/fenix/library/bookmarks/BookmarkFragment.kt
@@ -52,7 +52,6 @@ import org.mozilla.fenix.ext.urlToHost
import org.mozilla.fenix.mvi.ActionBusFactory
import org.mozilla.fenix.mvi.getAutoDisposeObservable
import org.mozilla.fenix.mvi.getManagedEmitter
-import org.mozilla.fenix.utils.ItsNotBrokenSnack
import kotlin.coroutines.CoroutineContext
@SuppressWarnings("TooManyFunctions")
@@ -114,9 +113,18 @@ class BookmarkFragment : Fragment(), CoroutineScope, BackHandler, AccountObserve
}
is BookmarkState.Mode.Selecting -> {
inflater.inflate(R.menu.bookmarks_select_multi, menu)
- activity?.title = getString(R.string.bookmarks_multi_select_title, mode.selectedItems.size)
val colorFilter =
PorterDuffColorFilter(R.attr.primaryText.getColorFromAttr(context!!), PorterDuff.Mode.SRC_IN)
+
+ val enableEditButton = mode.selectedItems.size == 1
+ menu.findItem(R.id.edit_bookmark_multi_select).run {
+ isVisible = enableEditButton
+ if (enableEditButton) {
+ icon.colorFilter = colorFilter
+ }
+ }
+
+ activity?.title = getString(R.string.bookmarks_multi_select_title, mode.selectedItems.size)
themeToolbar(toolbar, colorFilter)
}
}
@@ -264,8 +272,13 @@ class BookmarkFragment : Fragment(), CoroutineScope, BackHandler, AccountObserve
.navigate(BookmarkFragmentDirections.actionBookmarkFragmentToHomeFragment())
true
}
- R.id.share_bookmarks_multi_select -> {
- ItsNotBrokenSnack(context!!).showSnackbar(issueNumber = "1539")
+ R.id.edit_bookmark_multi_select -> {
+ val bookmark = getSelectedBookmarks().first()
+ Navigation.findNavController(requireActivity(), R.id.container)
+ .navigate(
+ BookmarkFragmentDirections
+ .actionBookmarkFragmentToBookmarkEditFragment(bookmark.guid)
+ )
true
}
R.id.open_bookmarks_in_private_tabs_multi_select -> {
diff --git a/app/src/main/res/drawable/ic_edit.xml b/app/src/main/res/drawable/ic_edit.xml
new file mode 100644
index 0000000000..dbd0ba7da9
--- /dev/null
+++ b/app/src/main/res/drawable/ic_edit.xml
@@ -0,0 +1,9 @@
+
+
+