Skip to content

Commit c25a06f

Browse files
Alexandru Marcamarc-mozilla
authored andcommitted
Revert "Bug 1969980 - part 3 - remove URL copied bookmark snackbar r=android-reviewers,android-l10n-reviewers,delphine,mavduevskiy" for causing lint failures @ SnackbarBindingTest.kt
This reverts commit 30815a2.
1 parent fe28f40 commit c25a06f

File tree

7 files changed

+39
-1
lines changed

7 files changed

+39
-1
lines changed

mobile/android/fenix/app/src/main/java/org/mozilla/fenix/library/bookmarks/BookmarkController.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,7 @@ class DefaultBookmarkController(
148148
override fun handleCopyUrl(item: BookmarkNode) {
149149
val urlClipData = ClipData.newPlainText(item.url, item.url)
150150
clipboardManager?.setPrimaryClip(urlClipData)
151+
showSnackbar(resources.getString(R.string.url_copied))
151152
}
152153

153154
override fun handleBookmarkSharing(item: BookmarkNode) {

mobile/android/fenix/app/src/main/java/org/mozilla/fenix/library/bookmarks/BookmarkFragment.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -206,6 +206,9 @@ class BookmarkFragment : LibraryPageFragment<BookmarkNode>(), UserInteractionHan
206206
rootTitles = composeRootTitles(lifecycleHolder.context),
207207
) ?: ""
208208
},
209+
showUrlCopiedSnackbar = {
210+
showSnackBarWithText(resources.getString(R.string.url_copied))
211+
},
209212
getBrowsingMode = {
210213
lifecycleHolder.homeActivity.browsingModeManager.mode
211214
},

mobile/android/fenix/app/src/main/java/org/mozilla/fenix/library/bookmarks/edit/EditBookmarkFragment.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,7 @@ class EditBookmarkFragment : Fragment(R.layout.fragment_edit_bookmark), MenuProv
154154
rootTitles = composeRootTitles(lifecycleHolder.context),
155155
) ?: ""
156156
},
157+
showUrlCopiedSnackbar = { },
157158
getBrowsingMode = {
158159
lifecycleHolder.homeActivity.browsingModeManager.mode
159160
},

mobile/android/fenix/app/src/main/java/org/mozilla/fenix/library/bookmarks/ui/BookmarksMiddleware.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ private const val WARN_OPEN_ALL_SIZE = 15
4242
* one or more bookmarks
4343
* @param showTabsTray Invoked after opening tabs from menus.
4444
* @param resolveFolderTitle Invoked to lookup user-friendly bookmark titles.
45+
* @param showUrlCopiedSnackbar Invoked when a bookmark url is copied.
4546
* @param getBrowsingMode Invoked when retrieving the app's current [BrowsingMode].
4647
* @param openTab Invoked when opening a tab when a bookmark is clicked.
4748
* @param saveBookmarkSortOrder Invoked to persist the new sort order.
@@ -62,6 +63,7 @@ internal class BookmarksMiddleware(
6263
private val shareBookmarks: (List<BookmarkItem.Bookmark>) -> Unit = {},
6364
private val showTabsTray: (isPrivateMode: Boolean) -> Unit,
6465
private val resolveFolderTitle: (BookmarkNode) -> String,
66+
private val showUrlCopiedSnackbar: () -> Unit,
6567
private val getBrowsingMode: () -> BrowsingMode,
6668
private val openTab: (url: String, openInNewTab: Boolean) -> Unit,
6769
private val saveBookmarkSortOrder: suspend (BookmarksListSortOrder) -> Unit,
@@ -497,6 +499,7 @@ internal class BookmarksMiddleware(
497499
is BookmarksListMenuAction.Bookmark.CopyClicked -> {
498500
val urlClipData = ClipData.newPlainText(bookmark.url, bookmark.url)
499501
clipboardManager?.setPrimaryClip(urlClipData)
502+
showUrlCopiedSnackbar()
500503
}
501504

502505
is BookmarksListMenuAction.Bookmark.ShareClicked -> {

mobile/android/fenix/app/src/main/res/values/strings.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2055,7 +2055,7 @@
20552055
<!-- Tab collection deletion prompt dialog option to delete the collection -->
20562056
<string name="tab_collection_dialog_positive">Delete</string>
20572057
<!-- Message for copying the URL via long press on the toolbar -->
2058-
<string name="url_copied" tools:ignore="UnusedResources" moz:removedIn="142">URL copied</string>
2058+
<string name="url_copied">URL copied</string>
20592059
<!-- Sample text for accessibility font size -->
20602060
<string name="accessibility_text_size_sample_text_1">This is sample text. It is here to show how text will appear when you increase or decrease the size with this setting.</string>
20612061
<!-- Summary for Accessibility Text Size Scaling Preference -->

mobile/android/fenix/app/src/test/java/org/mozilla/fenix/library/bookmarks/BookmarkControllerTest.kt

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -297,6 +297,21 @@ class BookmarkControllerTest {
297297
}
298298
}
299299

300+
@Test
301+
fun `handleCopyUrl should copy bookmark url to clipboard and show a toast`() {
302+
val urlCopiedMessage = context.getString(R.string.url_copied)
303+
304+
var showSnackbarInvoked = false
305+
createController(
306+
showSnackbar = {
307+
assertEquals(urlCopiedMessage, it)
308+
showSnackbarInvoked = true
309+
},
310+
).handleCopyUrl(item)
311+
312+
assertTrue(showSnackbarInvoked)
313+
}
314+
300315
@Test
301316
fun `handleBookmarkSharing should navigate to the 'Share' fragment`() {
302317
val navDirectionsSlot = slot<NavDirections>()

mobile/android/fenix/app/src/test/java/org/mozilla/fenix/snackbar/SnackbarBindingTest.kt

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -504,6 +504,21 @@ class SnackbarBindingTest {
504504
assertEquals(SnackbarState.None, appStore.state.snackbarState)
505505
}
506506

507+
@Test
508+
fun `WHEN the current URL is copied to clipboard THEN display a snackbar`() {
509+
val binding = buildSnackbarBinding()
510+
binding.start()
511+
512+
appStore.dispatch(URLCopiedToClipboard)
513+
waitForStoreToSettle()
514+
515+
verify(snackbarDelegate).show(
516+
text = testContext.getString(R.string.browser_toolbar_url_copied_to_clipboard_snackbar),
517+
duration = LENGTH_LONG,
518+
)
519+
assertEquals(SnackbarState.None, appStore.state.snackbarState)
520+
}
521+
507522
@Test
508523
fun `WHEN download is failed THEN display a snackbar`() {
509524
val snackbarAction = argumentCaptor<((v: View) -> Unit)>()

0 commit comments

Comments
 (0)