diff --git a/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt b/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt index b70ae5f9d..ba90a1cf5 100644 --- a/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt @@ -20,7 +20,6 @@ import android.view.accessibility.AccessibilityEvent import android.widget.Button import android.widget.LinearLayout import android.widget.PopupWindow -import androidx.annotation.StringRes import androidx.appcompat.app.AlertDialog import androidx.constraintlayout.widget.ConstraintLayout import androidx.constraintlayout.widget.ConstraintSet @@ -133,11 +132,11 @@ class HomeFragment : Fragment() { private val collectionStorageObserver = object : TabCollectionStorage.Observer { override fun onCollectionCreated(title: String, sessions: List) { - scrollAndAnimateCollection(sessions.size) + scrollAndAnimateCollection() } override fun onTabsAdded(tabCollection: TabCollection, sessions: List) { - scrollAndAnimateCollection(sessions.size, tabCollection) + scrollAndAnimateCollection(tabCollection) } override fun onCollectionRenamed(tabCollection: TabCollection, title: String) { @@ -788,7 +787,6 @@ class HomeFragment : Fragment() { } private fun scrollAndAnimateCollection( - tabsAddedToCollectionSize: Int, changedCollection: TabCollection? = null ) { if (view != null) { @@ -819,7 +817,7 @@ class HomeFragment : Fragment() { ) { super.onScrollStateChanged(recyclerView, newState) if (newState == SCROLL_STATE_IDLE) { - animateCollection(tabsAddedToCollectionSize, indexOfCollection) + animateCollection(indexOfCollection) recyclerView.removeOnScrollListener(this) } } @@ -827,13 +825,13 @@ class HomeFragment : Fragment() { recyclerView.addOnScrollListener(onScrollListener) recyclerView.smoothScrollToPosition(indexOfCollection) } else { - animateCollection(tabsAddedToCollectionSize, indexOfCollection) + animateCollection(indexOfCollection) } } } } - private fun animateCollection(addedTabsSize: Int, indexOfCollection: Int) { + private fun animateCollection(indexOfCollection: Int) { viewLifecycleOwner.lifecycleScope.launch { val viewHolder = sessionControlView!!.view.findViewHolderForAdapterPosition(indexOfCollection) @@ -860,26 +858,20 @@ class HomeFragment : Fragment() { ?.setDuration(FADE_ANIM_DURATION) ?.setListener(listener)?.start() }.invokeOnCompletion { - showSavedSnackbar(addedTabsSize) + showSavedSnackbar() } } - private fun showSavedSnackbar(tabSize: Int) { + private fun showSavedSnackbar() { viewLifecycleOwner.lifecycleScope.launch { delay(ANIM_SNACKBAR_DELAY) view?.let { view -> - @StringRes - val stringRes = if (tabSize > 1) { - R.string.create_collection_tabs_saved - } else { - R.string.create_collection_tab_saved - } FenixSnackbar.make( view = view, duration = Snackbar.LENGTH_LONG, isDisplayedWithBrowserToolbar = false ) - .setText(view.context.getString(stringRes)) + .setText(view.context.getString(R.string.create_collection_tabs_saved_new_collection)) .setAnchorView(snackbarAnchorView) .show() } diff --git a/app/src/main/java/org/mozilla/fenix/tabtray/TabTrayDialogFragment.kt b/app/src/main/java/org/mozilla/fenix/tabtray/TabTrayDialogFragment.kt index d3272be44..56c761ef3 100644 --- a/app/src/main/java/org/mozilla/fenix/tabtray/TabTrayDialogFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/tabtray/TabTrayDialogFragment.kt @@ -51,11 +51,11 @@ class TabTrayDialogFragment : AppCompatDialogFragment() { private val collectionStorageObserver = object : TabCollectionStorage.Observer { override fun onCollectionCreated(title: String, sessions: List) { - showCollectionSnackbar() + showCollectionSnackbar(sessions.size, true) } override fun onTabsAdded(tabCollection: TabCollection, sessions: List) { - showCollectionSnackbar() + showCollectionSnackbar(sessions.size) } } @@ -245,8 +245,19 @@ class TabTrayDialogFragment : AppCompatDialogFragment() { } } - private fun showCollectionSnackbar() { + private fun showCollectionSnackbar(tabSize: Int, isNewCollection: Boolean = false) { view.let { + val messageStringRes = when { + isNewCollection -> { + R.string.create_collection_tabs_saved_new_collection + } + tabSize > 1 -> { + R.string.create_collection_tabs_saved + } + else -> { + R.string.create_collection_tab_saved + } + } val snackbar = FenixSnackbar .make( duration = FenixSnackbar.LENGTH_LONG, @@ -254,7 +265,7 @@ class TabTrayDialogFragment : AppCompatDialogFragment() { view = (view as View) ) .setAnchorView(snackbarAnchor) - .setText(requireContext().getString(R.string.create_collection_tabs_saved)) + .setText(requireContext().getString(messageStringRes)) .setAction(requireContext().getString(R.string.create_collection_view)) { dismissAllowingStateLoss() findNavController().navigate( diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 5ea444599..fefc02c2f 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -714,6 +714,8 @@ %d tab selected Tabs saved! + + Collection saved! Tab saved!