From 1103bfca8d44150eebdfef50736c6e98455e8d3b Mon Sep 17 00:00:00 2001 From: Sid Soundararajan Date: Thu, 19 May 2016 14:08:46 -0700 Subject: [PATCH] Add support for dismissing in Talkback Mode This should let the user be able to access dismiss in talkback mode. However, because talkback relies on focus changes to work, the focus change animator is disabled. This means some visuals will not work the same as when talkback is turned off. BUG: 28594452 Change-Id: Idb443fe559bd7a636ff381e6727f81d41d0bd325 --- packages/SystemUI/res/values/values_tv.xml | 2 +- .../tv/animations/ViewFocusAnimator.java | 1 + .../recents/tv/views/TaskCardView.java | 20 +++++++++++++++++++ 3 files changed, 22 insertions(+), 1 deletion(-) diff --git a/packages/SystemUI/res/values/values_tv.xml b/packages/SystemUI/res/values/values_tv.xml index dc0483f4c9886..925941560c83e 100644 --- a/packages/SystemUI/res/values/values_tv.xml +++ b/packages/SystemUI/res/values/values_tv.xml @@ -16,5 +16,5 @@ limitations under the License. 1.0 1.259 - 0.1 + 0.3 diff --git a/packages/SystemUI/src/com/android/systemui/recents/tv/animations/ViewFocusAnimator.java b/packages/SystemUI/src/com/android/systemui/recents/tv/animations/ViewFocusAnimator.java index c3efe64207ea5..82185990c8283 100644 --- a/packages/SystemUI/src/com/android/systemui/recents/tv/animations/ViewFocusAnimator.java +++ b/packages/SystemUI/src/com/android/systemui/recents/tv/animations/ViewFocusAnimator.java @@ -104,6 +104,7 @@ public class ViewFocusAnimator implements View.OnFocusChangeListener { mTargetView.getDismissIconView().setAlpha(mDismissIconAlpha * level); mTargetView.getThumbnailView().setZ(z); + mTargetView.getDismissIconView().setZ(z); } public float getFocusProgress() { diff --git a/packages/SystemUI/src/com/android/systemui/recents/tv/views/TaskCardView.java b/packages/SystemUI/src/com/android/systemui/recents/tv/views/TaskCardView.java index 2eede999f478a..bd857481e8ff0 100644 --- a/packages/SystemUI/src/com/android/systemui/recents/tv/views/TaskCardView.java +++ b/packages/SystemUI/src/com/android/systemui/recents/tv/views/TaskCardView.java @@ -38,6 +38,8 @@ import android.widget.LinearLayout; import android.widget.TextView; import com.android.systemui.R; +import com.android.systemui.recents.Recents; +import com.android.systemui.recents.misc.SystemServicesProxy; import com.android.systemui.recents.tv.animations.DismissAnimationsHolder; import com.android.systemui.recents.tv.animations.RecentsRowFocusAnimationHolder; import com.android.systemui.recents.tv.animations.ViewFocusAnimator; @@ -85,6 +87,24 @@ public class TaskCardView extends LinearLayout { mCornerRadius = getResources().getDimensionPixelSize( R.dimen.recents_task_view_rounded_corners_radius); mRecentsRowFocusAnimationHolder = new RecentsRowFocusAnimationHolder(this, title); + SystemServicesProxy ssp = Recents.getSystemServices(); + if (ssp.isTouchExplorationEnabled()) { + mDismissIconView.setFocusable(true); + mDismissIconView.setFocusableInTouchMode(true); + mDismissIconView.setOnFocusChangeListener(new OnFocusChangeListener() { + @Override + public void onFocusChange(View v, boolean hasFocus) { + if (hasFocus) { + setDismissState(true); + } else { + setDismissState(false); + } + } + }); + } else { + mDismissIconView.setFocusable(false); + mDismissIconView.setFocusableInTouchMode(false); + } mViewFocusAnimator = new ViewFocusAnimator(this); }