From eeb8719fa184f512ffcbea055de9eafa8b5ad553 Mon Sep 17 00:00:00 2001 From: Mihai Eduard Badea Date: Mon, 6 Jul 2020 14:25:19 +0300 Subject: [PATCH] For issue #12126 - Tab counter consumeFrom update Added a direct call to the updateTabCounter method to account for changes made to the BrowserState while the tabCounter view is not visible. --- .../org/mozilla/fenix/home/HomeFragment.kt | 22 ++++++++++++------- 1 file changed, 14 insertions(+), 8 deletions(-) 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 0b6531b43..60240cfd2 100644 --- a/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt @@ -62,6 +62,7 @@ import mozilla.components.browser.session.Session import mozilla.components.browser.session.SessionManager import mozilla.components.browser.state.selector.normalTabs import mozilla.components.browser.state.selector.privateTabs +import mozilla.components.browser.state.state.BrowserState import mozilla.components.concept.sync.AccountObserver import mozilla.components.concept.sync.AuthType import mozilla.components.concept.sync.OAuthAccount @@ -390,15 +391,9 @@ class HomeFragment : Fragment() { } consumeFrom(requireComponents.core.store) { - val tabCount = if (browsingModeManager.mode.isPrivate) { - it.privateTabs.size - } else { - it.normalTabs.size - } - - view.tab_button?.setCountWithAnimation(tabCount) - view.add_tabs_to_collections_button?.isVisible = tabCount > 0 + updateTabCounter(it) } + updateTabCounter(requireComponents.core.store.state) } override fun onDestroyView() { @@ -927,6 +922,17 @@ class HomeFragment : Fragment() { TabTrayDialogFragment.show(parentFragmentManager) } + private fun updateTabCounter(browserState: BrowserState) { + val tabCount = if (browsingModeManager.mode.isPrivate) { + browserState.privateTabs.size + } else { + browserState.normalTabs.size + } + + view?.tab_button?.setCountWithAnimation(tabCount) + view?.add_tabs_to_collections_button?.isVisible = tabCount > 0 + } + companion object { private const val ANIMATION_DELAY = 100L