From 9e0e5d95d9ac53212e84aa7caf71a88ad772b9de Mon Sep 17 00:00:00 2001 From: Sawyer Blatz Date: Thu, 30 May 2019 11:43:11 -0700 Subject: [PATCH] For #2931: Show browser snackbar above quick action sheet --- .../org/mozilla/fenix/browser/BrowserFragment.kt | 15 ++++++++++----- .../fenix/collections/CreateCollectionFragment.kt | 7 +++++-- .../collections/CreateCollectionViewModel.kt | 2 ++ 3 files changed, 17 insertions(+), 7 deletions(-) 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 31a5778e0..e4b539b83 100644 --- a/app/src/main/java/org/mozilla/fenix/browser/BrowserFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/browser/BrowserFragment.kt @@ -430,11 +430,15 @@ class BrowserFragment : Fragment(), BackHandler, CoroutineScope { is SearchAction.ToolbarLongClicked -> { getSessionById()?.let { session -> session.copyUrl(requireContext()) - view?.rootView?.let { - FenixSnackbar.make(it, Snackbar.LENGTH_LONG) - .setAnchorView(toolbarComponent.uiView.view) + view?.let { + val snackbar = FenixSnackbar.make(it, Snackbar.LENGTH_LONG) .setText(resources.getString(R.string.url_copied)) - .show() + + if (!session.isCustomTabSession()) { + snackbar.anchorView = nestedScrollQuickAction + } + + snackbar.show() } } } @@ -520,7 +524,7 @@ class BrowserFragment : Fragment(), BackHandler, CoroutineScope { it.rootView, Snackbar.LENGTH_LONG ) - .setAnchorView(toolbarComponent.uiView.view) + .setAnchorView(nestedScrollQuickAction) .setAction(getString(R.string.edit_bookmark_snackbar_action)) { Navigation.findNavController( requireActivity(), @@ -696,6 +700,7 @@ class BrowserFragment : Fragment(), BackHandler, CoroutineScope { viewModel?.selectedTabs = selectedSet viewModel?.saveCollectionStep = SaveCollectionStep.SelectCollection viewModel?.tabCollections = requireComponents.core.tabCollectionStorage.cachedTabCollections.reversed() + viewModel?.snackbarAnchorView = nestedScrollQuickAction view?.let { val directions = BrowserFragmentDirections.actionBrowserFragmentToCreateCollectionFragment() Navigation.findNavController(it).navigate(directions) diff --git a/app/src/main/java/org/mozilla/fenix/collections/CreateCollectionFragment.kt b/app/src/main/java/org/mozilla/fenix/collections/CreateCollectionFragment.kt index c5febffef..aa6f8d240 100644 --- a/app/src/main/java/org/mozilla/fenix/collections/CreateCollectionFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/collections/CreateCollectionFragment.kt @@ -173,8 +173,11 @@ class CreateCollectionFragment : DialogFragment(), CoroutineScope { val string = if (tabSize > 1) context.getString(R.string.create_collection_tabs_saved) else context.getString(R.string.create_collection_tab_saved) - FenixSnackbar.make(view, Snackbar.LENGTH_LONG).setText(string) - .show() + val snackbar = FenixSnackbar.make(view, Snackbar.LENGTH_LONG).setText(string) + viewModel.snackbarAnchorView?.let { + snackbar.setAnchorView(it) + } + snackbar.show() } } } diff --git a/app/src/main/java/org/mozilla/fenix/collections/CreateCollectionViewModel.kt b/app/src/main/java/org/mozilla/fenix/collections/CreateCollectionViewModel.kt index fb14a2da7..0c8d1b8dd 100644 --- a/app/src/main/java/org/mozilla/fenix/collections/CreateCollectionViewModel.kt +++ b/app/src/main/java/org/mozilla/fenix/collections/CreateCollectionViewModel.kt @@ -4,6 +4,7 @@ package org.mozilla.fenix.collections License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +import android.view.View import androidx.lifecycle.ViewModel import org.mozilla.fenix.home.sessioncontrol.Tab import org.mozilla.fenix.home.sessioncontrol.TabCollection @@ -14,4 +15,5 @@ class CreateCollectionViewModel : ViewModel() { var saveCollectionStep: SaveCollectionStep = SaveCollectionStep.SelectTabs var tabCollections = listOf() var selectedTabCollection: TabCollection? = null + var snackbarAnchorView: View? = null }