Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 65ce0da8 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Fix dialog accessibility issues." into sc-v2-dev

parents e14bfadc 42c17888
Loading
Loading
Loading
Loading
+11 −2
Original line number Diff line number Diff line
@@ -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
+9 −1
Original line number Diff line number Diff line
@@ -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()
    }