aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUma Mageshwari D <umamageshwari.d@tataelxsi.co.in>2022-03-04 20:55:52 +0530
committerUma Mageshwari D <umamageshwari.d@tataelxsi.co.in>2022-03-23 08:48:37 +0530
commit9034ff523b85c99917635ee5317e7ecca57c72e6 (patch)
tree1311a25d1269704778c38184da9c808bd0f9adfd
parent064a409f64efcea90e534422008d5915a90feec7 (diff)
downloadTV-9034ff523b85c99917635ee5317e7ecca57c72e6.tar.gz
TTS=On,press menu key no tts dialog
Sending AccessibilityEvent TYPE_WINDOW_CONTENT_CHANGED to prompt talkback to refocus Bug: 220167394 Test: Manual Change-Id: I8d5f9cc77478b999a7f7a94e4e0e916a8cc28a58
-rw-r--r--src/com/android/tv/menu/MenuRowView.java3
-rw-r--r--src/com/android/tv/menu/MenuView.java7
2 files changed, 9 insertions, 1 deletions
diff --git a/src/com/android/tv/menu/MenuRowView.java b/src/com/android/tv/menu/MenuRowView.java
index e09a4ef0..27554c22 100644
--- a/src/com/android/tv/menu/MenuRowView.java
+++ b/src/com/android/tv/menu/MenuRowView.java
@@ -95,7 +95,8 @@ public abstract class MenuRowView extends LinearLayout {
@Override
public void sendAccessibilityEvent(View host, int eventType) {
super.sendAccessibilityEvent(host, eventType);
- if (eventType == AccessibilityEvent.TYPE_VIEW_ACCESSIBILITY_FOCUSED &&
+ if ((eventType == AccessibilityEvent.TYPE_VIEW_ACCESSIBILITY_FOCUSED ||
+ eventType == AccessibilityEvent.TYPE_WINDOW_CONTENT_CHANGED) &&
!mRow.isReselected()) {
requestChildFocus();
}
diff --git a/src/com/android/tv/menu/MenuView.java b/src/com/android/tv/menu/MenuView.java
index add4a774..e1a3379c 100644
--- a/src/com/android/tv/menu/MenuView.java
+++ b/src/com/android/tv/menu/MenuView.java
@@ -25,6 +25,8 @@ import android.view.View;
import android.view.ViewParent;
import android.view.ViewTreeObserver.OnGlobalFocusChangeListener;
import android.view.ViewTreeObserver.OnGlobalLayoutListener;
+import android.view.accessibility.AccessibilityEvent;
+import android.view.accessibility.AccessibilityManager;
import android.widget.FrameLayout;
import com.android.tv.menu.Menu.MenuShowReason;
import java.util.ArrayList;
@@ -192,7 +194,12 @@ public class MenuView extends FrameLayout implements IMenuView {
protected boolean onRequestFocusInDescendants(int direction, Rect previouslyFocusedRect) {
int selectedPosition = mLayoutManager.getSelectedPosition();
// When the menu shows up, the selected row should have focus.
+ AccessibilityManager mAccessibilityManager =
+ getContext().getSystemService(AccessibilityManager.class);
if (selectedPosition >= 0 && selectedPosition < mMenuRowViews.size()) {
+ if(mAccessibilityManager.isEnabled())
+ mMenuRowViews.get(selectedPosition)
+ .sendAccessibilityEvent(AccessibilityEvent.TYPE_WINDOW_CONTENT_CHANGED);
return mMenuRowViews.get(selectedPosition).requestFocus();
}
return super.onRequestFocusInDescendants(direction, previouslyFocusedRect);