Merge "Fix dialog accessibility issues." into sc-v2-dev am: 65ce0da897
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/16477357 Change-Id: I8725e95c208ca3409897f456f7274f3a992df10c
This commit is contained in:
@@ -299,6 +299,13 @@ private class AnimatedDialog(
|
||||
fullscreenTransparentBackground.setOnClickListener { dialog.dismiss() }
|
||||
dialogContentWithBackground.isClickable = true
|
||||
|
||||
// Make sure the transparent and dialog backgrounds are not focusable by accessibility
|
||||
// features.
|
||||
fullscreenTransparentBackground.importantForAccessibility =
|
||||
View.IMPORTANT_FOR_ACCESSIBILITY_NO
|
||||
dialogContentWithBackground.importantForAccessibility =
|
||||
View.IMPORTANT_FOR_ACCESSIBILITY_NO
|
||||
|
||||
fullscreenTransparentBackground.addView(
|
||||
dialogContentWithBackground,
|
||||
FrameLayout.LayoutParams(
|
||||
@@ -342,8 +349,10 @@ private class AnimatedDialog(
|
||||
?.color
|
||||
?.defaultColor ?: Color.BLACK
|
||||
|
||||
// Make the background view invisible until we start the animation.
|
||||
dialogContentWithBackground.visibility = View.INVISIBLE
|
||||
// Make the background view invisible until we start the animation. We use the transition
|
||||
// visibility like GhostView does so that we don't mess up with the accessibility tree (see
|
||||
// b/204944038#comment17).
|
||||
dialogContentWithBackground.setTransitionVisibility(View.INVISIBLE)
|
||||
|
||||
// Make sure the dialog is visible instantly and does not do any window animation.
|
||||
window.attributes.windowAnimations = R.style.Animation_LaunchAnimation
|
||||
|
||||
@@ -186,7 +186,11 @@ open class GhostedViewLaunchAnimatorController(
|
||||
// Making the ghost view invisible will make the ghosted view visible, so order is
|
||||
// important here.
|
||||
ghostView.visibility = View.INVISIBLE
|
||||
ghostedView.visibility = View.INVISIBLE
|
||||
|
||||
// Make the ghosted view invisible again. We use the transition visibility like
|
||||
// GhostView does so that we don't mess up with the accessibility tree (see
|
||||
// b/204944038#comment17).
|
||||
ghostedView.setTransitionVisibility(View.INVISIBLE)
|
||||
backgroundView.visibility = View.INVISIBLE
|
||||
}
|
||||
return
|
||||
@@ -257,6 +261,10 @@ open class GhostedViewLaunchAnimatorController(
|
||||
|
||||
GhostView.removeGhost(ghostedView)
|
||||
launchContainerOverlay.remove(backgroundView)
|
||||
|
||||
// Make sure that the view is considered VISIBLE by accessibility by first making it
|
||||
// INVISIBLE then VISIBLE (see b/204944038#comment17 for more info).
|
||||
ghostedView.visibility = View.INVISIBLE
|
||||
ghostedView.visibility = View.VISIBLE
|
||||
ghostedView.invalidate()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user