[Media TTT] Fix a11y focus on receiver icon

Talkback annonces the content description of the icon. View doesn't get
the focus so any icon overlapping with the view can be able to get the
focus.

Fixes: 265616840
Test: Checked UI using adb command adb shell cmd statusbar
media-ttt-chip-receiver CLOSE_TO_SENDER useAppIcon=true.

Change-Id: I46db3839e9384ee88cdfe3e0de2bea5d8e384429
This commit is contained in:
Michael Mikhail
2023-01-20 18:42:53 +00:00
parent 08cf9c3955
commit 8d9ed68cdb

View File

@@ -30,6 +30,7 @@ import android.view.View
import android.view.ViewGroup
import android.view.WindowManager
import android.view.accessibility.AccessibilityManager
import android.view.View.ACCESSIBILITY_LIVE_REGION_ASSERTIVE
import com.android.internal.widget.CachingIconView
import com.android.systemui.R
import com.android.systemui.common.shared.model.ContentDescription
@@ -198,6 +199,7 @@ open class MediaTttChipControllerReceiver @Inject constructor(
val iconView = currentView.getAppIconView()
iconView.setPadding(iconPadding, iconPadding, iconPadding, iconPadding)
iconView.accessibilityLiveRegion = ACCESSIBILITY_LIVE_REGION_ASSERTIVE
TintedIconViewBinder.bind(iconInfo.toTintedIcon(), iconView)
}
@@ -207,8 +209,6 @@ open class MediaTttChipControllerReceiver @Inject constructor(
val rippleView: ReceiverChipRippleView = view.requireViewById(R.id.ripple)
animateViewTranslationAndFade(appIconView, -1 * getTranslationAmount(), 1f)
animateViewTranslationAndFade(iconRippleView, -1 * getTranslationAmount(), 1f)
// Using withEndAction{} doesn't apply a11y focus when screen is unlocked.
appIconView.postOnAnimation { view.requestAccessibilityFocus() }
rippleController.expandToInProgressState(rippleView, iconRippleView)
}