From ef1a9b798d4020056baea586c13c9d8a1cd83e14 Mon Sep 17 00:00:00 2001 From: Jagrut Desai Date: Fri, 17 Mar 2023 15:30:25 -0700 Subject: [PATCH] Make clear announcment for taskbar education. Test: Manual Bug: 273393698 Bug: 273408584 Flag: not needed Change-Id: I6c6eb1e1e1047a2e702592290bf5735e8bfa6ce2 --- quickstep/res/layout/taskbar_edu_tooltip.xml | 2 + .../taskbar/TaskbarEduTooltipController.kt | 40 +++++++++++++++++++ res/values/id.xml | 2 + 3 files changed, 44 insertions(+) diff --git a/quickstep/res/layout/taskbar_edu_tooltip.xml b/quickstep/res/layout/taskbar_edu_tooltip.xml index 29f49566f6..3fcd713147 100644 --- a/quickstep/res/layout/taskbar_edu_tooltip.xml +++ b/quickstep/res/layout/taskbar_edu_tooltip.xml @@ -21,6 +21,8 @@ android:clipChildren="false" android:clipToPadding="false" android:fitsSystemWindows="true" + android:focusable="true" + android:importantForAccessibility="yes" android:gravity="center" android:orientation="vertical"> diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarEduTooltipController.kt b/quickstep/src/com/android/launcher3/taskbar/TaskbarEduTooltipController.kt index bc582e2b65..e56e258d12 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarEduTooltipController.kt +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarEduTooltipController.kt @@ -17,10 +17,13 @@ package com.android.launcher3.taskbar import android.graphics.PorterDuff.Mode.SRC_ATOP import android.graphics.PorterDuffColorFilter +import android.os.Bundle import android.view.View import android.view.View.GONE import android.view.View.VISIBLE import android.view.ViewGroup +import android.view.accessibility.AccessibilityEvent +import android.view.accessibility.AccessibilityNodeInfo import androidx.annotation.IntDef import androidx.annotation.LayoutRes import com.airbnb.lottie.LottieAnimationView @@ -153,6 +156,7 @@ class TaskbarEduTooltipController(val activityContext: TaskbarActivityContext) : FLAG_AUTOHIDE_SUSPEND_EDU_OPEN, true ) + tooltip.onCloseCallback = { this.tooltip = null controllers.taskbarAutohideSuspendController.updateFlag( @@ -161,11 +165,47 @@ class TaskbarEduTooltipController(val activityContext: TaskbarActivityContext) : ) controllers.taskbarStashController.updateAndAnimateTransientTaskbar(true) } + tooltip.accessibilityDelegate = createAccessibilityDelegate() overlayContext.layoutInflater.inflate(contentResId, tooltip.content, true) this.tooltip = tooltip } + private fun createAccessibilityDelegate() = + object : View.AccessibilityDelegate() { + override fun performAccessibilityAction( + host: View?, + action: Int, + args: Bundle? + ): Boolean { + if (action == R.id.close) { + hide() + return true + } + return super.performAccessibilityAction(host, action, args) + } + + override fun onPopulateAccessibilityEvent(host: View?, event: AccessibilityEvent?) { + super.onPopulateAccessibilityEvent(host, event) + if (event?.eventType == AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED) { + event.text?.add(host?.context?.getText(R.string.taskbar_edu_a11y_title)) + } + } + + override fun onInitializeAccessibilityNodeInfo( + host: View?, + info: AccessibilityNodeInfo? + ) { + super.onInitializeAccessibilityNodeInfo(host, info) + info?.addAction( + AccessibilityNodeInfo.AccessibilityAction( + R.id.close, + host?.context?.getText(R.string.taskbar_edu_close) + ) + ) + } + } + override fun dumpLogs(prefix: String?, pw: PrintWriter?) { pw?.println(prefix + "TaskbarEduTooltipController:") pw?.println("$prefix\tisTooltipEnabled=$isTooltipEnabled") diff --git a/res/values/id.xml b/res/values/id.xml index dc819443a6..7b812de71e 100644 --- a/res/values/id.xml +++ b/res/values/id.xml @@ -28,6 +28,7 @@ + @@ -41,4 +42,5 @@ +