From ae42cd7e43488aead5310c5fcb7467b8ce9c2dd6 Mon Sep 17 00:00:00 2001
From: "Tadashi G. Takaoka" <takaoka@google.com>
Date: Thu, 19 Jun 2014 11:50:37 -0700
Subject: [PATCH] Disable empty suggestion word on the suggestions strip

It should be disabled when it is empty. But should be enabled even
when it is empty with accessibility exploration on to avoid announcing
"disabled".

Note that this CL may not be able to handle "suspending talk back"
state correctly. It should be handled by registering
TouchExplorationStateChangeListener that is available from API 19.

Bug: 15738513
Bug: 14849593
Change-Id: Id9ad89f770840f74a106f53833060407b20c1e24
---
 .../latin/suggestions/SuggestionStripLayoutHelper.java     | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/java/src/com/android/inputmethod/latin/suggestions/SuggestionStripLayoutHelper.java b/java/src/com/android/inputmethod/latin/suggestions/SuggestionStripLayoutHelper.java
index 19b48f0810..46f5cdee0f 100644
--- a/java/src/com/android/inputmethod/latin/suggestions/SuggestionStripLayoutHelper.java
+++ b/java/src/com/android/inputmethod/latin/suggestions/SuggestionStripLayoutHelper.java
@@ -44,6 +44,7 @@ import android.view.ViewGroup;
 import android.widget.LinearLayout;
 import android.widget.TextView;
 
+import com.android.inputmethod.accessibility.AccessibilityUtils;
 import com.android.inputmethod.latin.LatinImeLogger;
 import com.android.inputmethod.latin.PunctuationSuggestions;
 import com.android.inputmethod.latin.R;
@@ -386,6 +387,12 @@ final class SuggestionStripLayoutHelper {
         final float scaleX = getTextScaleX(word, width, wordView.getPaint());
         wordView.setText(text); // TextView.setText() resets text scale x to 1.0.
         wordView.setTextScaleX(Math.max(scaleX, MIN_TEXT_XSCALE));
+        // A <code>wordView</code> should be disabled when <code>word</code> is empty in order to
+        // make it unclickable.
+        // With accessibility touch exploration on, <code>wordView</code> should be enabled even
+        // when it is empty to avoid announcing as "disabled".
+        wordView.setEnabled(!TextUtils.isEmpty(word)
+                || AccessibilityUtils.getInstance().isTouchExplorationEnabled());
         return wordView;
     }
 
-- 
GitLab