OSDN Git Service

Status Bar: Include wifi/mobile state in touch exploration
authorJohn Spurlock <jspurlock@google.com>
Thu, 17 May 2012 00:20:59 +0000 (20:20 -0400)
committerJohn Spurlock <jspurlock@google.com>
Thu, 17 May 2012 00:20:59 +0000 (20:20 -0400)
Bug: 5325056
Change-Id: Iefbd734344d3b70d3e0ebf6f0dffa55d89a054c7

packages/SystemUI/src/com/android/systemui/statusbar/SignalClusterView.java

index 2f02d23..1321ade 100644 (file)
@@ -21,9 +21,9 @@ import android.util.AttributeSet;
 import android.util.Slog;
 import android.view.View;
 import android.view.ViewGroup;
+import android.view.accessibility.AccessibilityEvent;
 import android.widget.ImageView;
 import android.widget.LinearLayout;
-import android.widget.TextView;
 
 import com.android.systemui.statusbar.policy.NetworkController;
 
@@ -31,12 +31,12 @@ import com.android.systemui.R;
 
 // Intimately tied to the design of res/layout/signal_cluster_view.xml
 public class SignalClusterView
-        extends LinearLayout 
+        extends LinearLayout
         implements NetworkController.SignalCluster {
 
     static final boolean DEBUG = false;
     static final String TAG = "SignalClusterView";
-    
+
     NetworkController mNC;
 
     private boolean mWifiVisible = false;
@@ -132,6 +132,17 @@ public class SignalClusterView
         apply();
     }
 
+    @Override
+    public boolean dispatchPopulateAccessibilityEvent(AccessibilityEvent event) {
+        // Standard group layout onPopulateAccessibilityEvent() implementations
+        // ignore content description, so populate manually
+        if (mWifiVisible && mWifiGroup.getContentDescription() != null)
+            event.getText().add(mWifiGroup.getContentDescription());
+        if (mMobileVisible && mMobileGroup.getContentDescription() != null)
+            event.getText().add(mMobileGroup.getContentDescription());
+        return super.dispatchPopulateAccessibilityEvent(event);
+    }
+
     // Run after each indicator change.
     private void apply() {
         if (mWifiGroup == null) return;