OSDN Git Service

Use MULTI_LINE and OPENS_POPUP accessibility properties
authorAlan Viverette <alanv@google.com>
Mon, 19 Aug 2013 23:44:30 +0000 (16:44 -0700)
committerAlan Viverette <alanv@google.com>
Mon, 19 Aug 2013 23:44:30 +0000 (16:44 -0700)
BUG: 10391326
Change-Id: Ib2deeeef401802b6dde646e14ee5367141469a58

core/java/android/widget/ActivityChooserView.java
core/java/android/widget/Spinner.java
core/java/android/widget/TextView.java
core/java/com/android/internal/view/menu/ActionMenuPresenter.java
core/java/com/android/internal/view/menu/ListMenuItemView.java

index 2037c3a..c070ee4 100644 (file)
@@ -33,6 +33,7 @@ import android.view.View;
 import android.view.ViewGroup;
 import android.view.ViewTreeObserver;
 import android.view.ViewTreeObserver.OnGlobalLayoutListener;
+import android.view.accessibility.AccessibilityNodeInfo;
 import android.widget.ActivityChooserModel.ActivityChooserModelClient;
 
 /**
@@ -229,6 +230,13 @@ public class ActivityChooserView extends ViewGroup implements ActivityChooserMod
 
         mExpandActivityOverflowButton = (FrameLayout) findViewById(R.id.expand_activities_button);
         mExpandActivityOverflowButton.setOnClickListener(mCallbacks);
+        mExpandActivityOverflowButton.setAccessibilityDelegate(new AccessibilityDelegate() {
+            @Override
+            public void onInitializeAccessibilityNodeInfo(View host, AccessibilityNodeInfo info) {
+                super.onInitializeAccessibilityNodeInfo(host, info);
+                info.setOpensPopup(true);
+            }
+        });
         mExpandActivityOverflowButtonImage =
             (ImageView) mExpandActivityOverflowButton.findViewById(R.id.image);
         mExpandActivityOverflowButtonImage.setImageDrawable(expandActivityOverflowButtonDrawable);
index eec15a9..b707cef 100644 (file)
@@ -645,6 +645,10 @@ public class Spinner extends AbsSpinner implements OnClickListener {
     public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) {
         super.onInitializeAccessibilityNodeInfo(info);
         info.setClassName(Spinner.class.getName());
+
+        if (mAdapter != null) {
+            info.setOpensPopup(true);
+        }
     }
 
     /**
index a315546..d5fc21c 100644 (file)
@@ -8173,6 +8173,10 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
                 info.addAction(AccessibilityNodeInfo.ACTION_CUT);
             }
         }
+
+        if (!isSingleLine()) {
+            info.setMultiLine(true);
+        }
     }
 
     @Override
index 863d8cc..30f9793 100644 (file)
@@ -29,6 +29,7 @@ import android.view.SoundEffectConstants;
 import android.view.View;
 import android.view.ViewConfiguration;
 import android.view.View.MeasureSpec;
+import android.view.accessibility.AccessibilityNodeInfo;
 import android.view.ViewGroup;
 import android.widget.ImageButton;
 
@@ -594,6 +595,12 @@ public class ActionMenuPresenter extends BaseMenuPresenter
             }
             super.onMeasure(widthMeasureSpec, heightMeasureSpec);
         }
+
+        @Override
+        public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) {
+            super.onInitializeAccessibilityNodeInfo(info);
+            info.setOpensPopup(true);
+        }
     }
 
     private class OverflowPopup extends MenuPopupHelper {
index df579c6..85d9cbd 100644 (file)
@@ -23,6 +23,7 @@ import android.util.AttributeSet;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
+import android.view.accessibility.AccessibilityNodeInfo;
 import android.widget.CheckBox;
 import android.widget.CompoundButton;
 import android.widget.ImageView;
@@ -269,4 +270,13 @@ public class ListMenuItemView extends LinearLayout implements MenuView.ItemView
         }
         return mInflater;
     }
+
+    @Override
+    public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) {
+        super.onInitializeAccessibilityNodeInfo(info);
+
+        if (mItemData != null && mItemData.hasSubMenu()) {
+            info.setOpensPopup(true);
+        }
+    }
 }