diff --git a/app/src/main/java/org/mozilla/fenix/components/toolbar/TabCounter.kt b/app/src/main/java/org/mozilla/fenix/components/toolbar/TabCounter.kt
index ba03ae68b..564dbbdea 100644
--- a/app/src/main/java/org/mozilla/fenix/components/toolbar/TabCounter.kt
+++ b/app/src/main/java/org/mozilla/fenix/components/toolbar/TabCounter.kt
@@ -34,11 +34,22 @@ open class TabCounter @JvmOverloads constructor(
TypedValue.COMPLEX_UNIT_DIP, TWO_DIGIT_PADDING, context.resources.displayMetrics
).toInt()
counter_text.setPadding(0, shiftThreeDp, shiftThreeDp, 0)
+ updateContentDescription(0)
animationSet = createAnimatorSet()
}
+ private fun updateContentDescription(count: Int) {
+ counter_root.contentDescription = if (count == 1) {
+ context?.getString(R.string.open_tab_tray_single)
+ } else {
+ context?.getString(R.string.open_tab_tray_plural, count.toString())
+ }
+ }
+
fun setCountWithAnimation(count: Int) {
+ updateContentDescription(count)
+
// Don't animate from initial state.
if (this.count == 0) {
setCount(count)
@@ -69,6 +80,7 @@ open class TabCounter @JvmOverloads constructor(
}
fun setCount(count: Int) {
+ updateContentDescription(count)
adjustTextSize(count)
counter_text.text = formatForDisplay(count)
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 6cba9e26f..1889a1e27 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,14 +4,12 @@
package org.mozilla.fenix.components.toolbar
-import android.content.Context
import android.util.TypedValue
import android.view.View
import android.view.ViewGroup
import mozilla.components.browser.session.Session
import mozilla.components.browser.session.SessionManager
import mozilla.components.concept.toolbar.Toolbar
-import org.mozilla.fenix.R
import org.mozilla.fenix.ext.sessionsOfType
import java.lang.ref.WeakReference
@@ -34,12 +32,6 @@ class TabCounterToolbarButton(
showTabs.invoke()
}
- val count = sessionManager.sessions.count {
- it.private == isPrivate
- }
-
- contentDescription = getDescriptionForTabCount(context, count)
-
addOnAttachStateChangeListener(object : View.OnAttachStateChangeListener {
override fun onViewAttachedToWindow(v: View?) {
setCount(sessionManager.sessionsOfType(private = isPrivate).count())
@@ -66,18 +58,10 @@ class TabCounterToolbarButton(
val count = sessionManager.sessionsOfType(private = isPrivate).count()
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 {
override fun onSessionAdded(session: Session) {
updateCount()
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 92d15ef78..2b86a174b 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -21,6 +21,10 @@
Your open tabs will be shown here.
Your private tabs will be shown here.
+
+ 1 open tab. Tap to switch tabs.
+
+ %1$s open tabs. Tap to switch tabs.
%1$s is produced by Mozilla.