diff --git a/app/src/main/java/org/mozilla/fenix/components/toolbar/TabCounterToolbarButton.kt b/app/src/main/java/org/mozilla/fenix/components/toolbar/TabCounterToolbarButton.kt index f0cb37eed..2f69a54f7 100644 --- a/app/src/main/java/org/mozilla/fenix/components/toolbar/TabCounterToolbarButton.kt +++ b/app/src/main/java/org/mozilla/fenix/components/toolbar/TabCounterToolbarButton.kt @@ -4,6 +4,7 @@ package org.mozilla.fenix.components.toolbar +import android.content.Context import android.util.TypedValue import android.view.View import android.view.ViewGroup @@ -31,14 +32,16 @@ class TabCounterToolbarButton( setOnClickListener { showTabs.invoke() } - contentDescription = - parent.context.getString(R.string.mozac_feature_tabs_toolbar_tabs_button) + + val count = sessionManager.sessions.count { + it.private == isPrivate + } + + contentDescription = getDescriptionForTabCount(context, count) addOnAttachStateChangeListener(object : View.OnAttachStateChangeListener { override fun onViewAttachedToWindow(v: View?) { - setCount(sessionManager.sessions.count { - it.private == isPrivate - }) + setCount(count) } override fun onViewDetachedFromWindow(v: View?) { /* no-op */ } @@ -59,9 +62,21 @@ class TabCounterToolbarButton( override fun bind(view: View) = Unit private fun updateCount() { - reference.get()?.setCountWithAnimation(sessionManager.sessions.count { + val count = sessionManager.sessions.count { it.private == isPrivate - }) + } + + reference.get()?.let { + it.contentDescription = getDescriptionForTabCount(it.context, count) + it.setCountWithAnimation(count) + } + } + + private fun getDescriptionForTabCount(context: Context?, count: Int): String? { + return if (count > 1) context?.getString( + R.string.tab_counter_content_description_multi_tab, + count + ) else context?.getString(R.string.tab_counter_content_description_one_tab) } private val sessionManagerObserver = object : SessionManager.Observer { diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 569e54cce..69ddcc6ca 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -810,4 +810,9 @@ %s | OSS Libraries + + + 1 tab + + %d tabs