From 282f3eafd7ee7defcf952c09e1fc00d5c8d0c222 Mon Sep 17 00:00:00 2001 From: Emily Kager Date: Fri, 14 Jun 2019 15:03:52 -0700 Subject: [PATCH] [fenix] Closes https://github.com/mozilla-mobile/fenix/issues/3493 - Show tab saved to collection snackbar in BrowserFragment --- .../mozilla/fenix/browser/BrowserFragment.kt | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) 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 c9b0fc2054..774a123ed7 100644 --- a/app/src/main/java/org/mozilla/fenix/browser/BrowserFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/browser/BrowserFragment.kt @@ -68,6 +68,7 @@ import org.mozilla.fenix.collections.SaveCollectionStep import org.mozilla.fenix.collections.getStepForCollectionsSize import org.mozilla.fenix.components.FenixSnackbar import org.mozilla.fenix.components.FindInPageIntegration +import org.mozilla.fenix.components.TabCollectionStorage import org.mozilla.fenix.components.metrics.Event import org.mozilla.fenix.components.metrics.Event.BrowserMenuItemTapped.Item import org.mozilla.fenix.components.toolbar.SearchAction @@ -458,6 +459,7 @@ class BrowserFragment : Fragment(), BackHandler, CoroutineScope { sessionObserver = subscribeToSession() sessionManagerObserver = subscribeToSessions() tabCollectionObserver = subscribeToTabCollections() + requireComponents.core.tabCollectionStorage.register(collectionStorageObserver, this) getSessionById()?.let { updateBookmarkState(it) } @@ -923,6 +925,32 @@ class BrowserFragment : Fragment(), BackHandler, CoroutineScope { } } + private val collectionStorageObserver = object : TabCollectionStorage.Observer { + override fun onCollectionCreated(title: String, sessions: List) { + super.onCollectionCreated(title, sessions) + showTabSavedToCollectionSnackbar() + } + + override fun onTabsAdded( + tabCollection: mozilla.components.feature.tab.collections.TabCollection, + sessions: List + ) { + super.onTabsAdded(tabCollection, sessions) + showTabSavedToCollectionSnackbar() + } + } + + private fun showTabSavedToCollectionSnackbar() { + context?.let { context: Context -> + view?.let { view: View -> + val string = context.getString(R.string.create_collection_tab_saved) + FenixSnackbar.make(view, Snackbar.LENGTH_SHORT).setText(string) + .setAnchorView(toolbarComponent.uiView.view) + .show() + } + } + } + private fun shareUrl(url: String) { val directions = BrowserFragmentDirections.actionBrowserFragmentToShareFragment(url) nav(R.id.browserFragment, directions)