diff options
author | Yorke Lee <yorkelee@google.com> | 2013-09-05 18:25:48 -0700 |
---|---|---|
committer | Yorke Lee <yorkelee@google.com> | 2013-09-05 18:30:50 -0700 |
commit | c45baecabd157ee8e9ce75791e1afe4c702c25a8 (patch) | |
tree | c75a942ed3c0d020a724470bf8bd65ed62fdace1 | |
parent | 6276f093cf16a4797f43d53a76e3a8e5a279ea22 (diff) |
Fix accessibility issues with dialpad
Bug: 10314426
Change-Id: Ieecb5cc64ce93fb8457ed0cab0d054b5a1b1586c
-rw-r--r-- | res/layout/dialpad_fragment.xml | 4 | ||||
-rw-r--r-- | src/com/android/dialer/dialpad/DialpadFragment.java | 29 |
2 files changed, 30 insertions, 3 deletions
diff --git a/res/layout/dialpad_fragment.xml b/res/layout/dialpad_fragment.xml index a248549c9..4007e3678 100644 --- a/res/layout/dialpad_fragment.xml +++ b/res/layout/dialpad_fragment.xml @@ -23,7 +23,7 @@ android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" /> - <LinearLayout + <view class="com.android.dialer.dialpad.DialpadFragment$HoverIgnoringLinearLayout" android:id="@+id/top" android:layout_width="match_parent" android:layout_height="0dp" @@ -122,5 +122,5 @@ android:layout_weight="1" /> - </LinearLayout> + </view> </view> diff --git a/src/com/android/dialer/dialpad/DialpadFragment.java b/src/com/android/dialer/dialpad/DialpadFragment.java index 79e830730..361f60d75 100644 --- a/src/com/android/dialer/dialpad/DialpadFragment.java +++ b/src/com/android/dialer/dialpad/DialpadFragment.java @@ -57,6 +57,7 @@ import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; +import android.view.MotionEvent; import android.view.View; import android.view.ViewConfiguration; import android.view.ViewGroup; @@ -136,6 +137,30 @@ public class DialpadFragment extends Fragment } } + /** + * LinearLayout that always returns true for onHoverEvent callbacks, to fix + * problems with accessibility due to the dialpad overlaying other fragments. + */ + public static class HoverIgnoringLinearLayout extends LinearLayout { + + public HoverIgnoringLinearLayout(Context context) { + super(context); + } + + public HoverIgnoringLinearLayout(Context context, AttributeSet attrs) { + super(context, attrs); + } + + public HoverIgnoringLinearLayout(Context context, AttributeSet attrs, int defStyle) { + super(context, attrs, defStyle); + } + + @Override + public boolean onHoverEvent(MotionEvent event) { + return true; + } + } + public interface OnDialpadQueryChangedListener { void onDialpadQueryChanged(String query); } @@ -611,7 +636,9 @@ public class DialpadFragment extends Fragment dialpadKey.setOnPressedListener(this); numberView = (TextView) dialpadKey.findViewById(R.id.dialpad_key_number); lettersView = (TextView) dialpadKey.findViewById(R.id.dialpad_key_letters); - numberView.setText(resources.getString(numberIds[i])); + final String numberString = resources.getString(numberIds[i]); + numberView.setText(numberString); + dialpadKey.setContentDescription(numberString); if (lettersView != null) { lettersView.setText(resources.getString(letterIds[i])); } |