Merge "DatePicker A11Y fix time announced for date widgets"

This commit is contained in:
Andrei Stingaceanu
2016-06-16 13:41:49 +00:00
committed by Android (Google) Code Review
3 changed files with 15 additions and 22 deletions

View File

@@ -27,6 +27,7 @@ import android.icu.util.Calendar;
import android.icu.util.TimeZone;
import android.os.Parcel;
import android.os.Parcelable;
import android.text.format.DateUtils;
import android.util.AttributeSet;
import android.util.SparseArray;
import android.view.View;
@@ -500,6 +501,8 @@ public class DatePicker extends FrameLayout {
// The context
protected Context mContext;
protected Calendar mCurrentDate;
// The current locale
protected Locale mCurrentLocale;
@@ -541,6 +544,17 @@ public class DatePicker extends FrameLayout {
// Stub.
}
@Override
public void onPopulateAccessibilityEvent(AccessibilityEvent event) {
event.getText().add(getFormattedCurrentDate());
}
protected String getFormattedCurrentDate() {
return DateUtils.formatDateTime(mContext, mCurrentDate.getTimeInMillis(),
DateUtils.FORMAT_SHOW_DATE | DateUtils.FORMAT_SHOW_YEAR
| DateUtils.FORMAT_SHOW_WEEKDAY);
}
/**
* Class for managing state storing/restoring.
*/

View File

@@ -29,7 +29,6 @@ import android.icu.text.SimpleDateFormat;
import android.icu.util.Calendar;
import android.os.Parcelable;
import android.text.format.DateFormat;
import android.text.format.DateUtils;
import android.util.AttributeSet;
import android.util.StateSet;
import android.view.HapticFeedbackConstants;
@@ -84,7 +83,6 @@ class DatePickerCalendarDelegate extends DatePicker.AbstractDatePickerDelegate {
private int mCurrentView = UNINITIALIZED;
private final Calendar mCurrentDate;
private final Calendar mTempDate;
private final Calendar mMinDate;
private final Calendar mMaxDate;
@@ -324,10 +322,7 @@ class DatePickerCalendarDelegate extends DatePicker.AbstractDatePickerDelegate {
// TODO: This should use live regions.
if (announce) {
final long millis = mCurrentDate.getTimeInMillis();
final int flags = DateUtils.FORMAT_SHOW_DATE | DateUtils.FORMAT_SHOW_YEAR;
final String fullDateText = DateUtils.formatDateTime(mContext, millis, flags);
mAnimator.announceForAccessibility(fullDateText);
mAnimator.announceForAccessibility(getFormattedCurrentDate());
}
}
@@ -582,11 +577,6 @@ class DatePickerCalendarDelegate extends DatePicker.AbstractDatePickerDelegate {
return true;
}
@Override
public void onPopulateAccessibilityEvent(AccessibilityEvent event) {
event.getText().add(mCurrentDate.getTime().toString());
}
public CharSequence getAccessibilityClassName() {
return DatePicker.class.getName();
}

View File

@@ -24,7 +24,6 @@ import android.os.Parcelable;
import android.text.InputType;
import android.text.TextUtils;
import android.text.format.DateFormat;
import android.text.format.DateUtils;
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.view.View;
@@ -87,8 +86,6 @@ class DatePickerSpinnerDelegate extends AbstractDatePickerDelegate {
private Calendar mMaxDate;
private Calendar mCurrentDate;
private boolean mIsEnabled = DEFAULT_ENABLED_STATE;
DatePickerSpinnerDelegate(DatePicker delegator, Context context, AttributeSet attrs,
@@ -398,14 +395,6 @@ class DatePickerSpinnerDelegate extends AbstractDatePickerDelegate {
return true;
}
@Override
public void onPopulateAccessibilityEvent(AccessibilityEvent event) {
final int flags = DateUtils.FORMAT_SHOW_DATE | DateUtils.FORMAT_SHOW_YEAR;
String selectedDateUtterance = DateUtils.formatDateTime(mContext,
mCurrentDate.getTimeInMillis(), flags);
event.getText().add(selectedDateUtterance);
}
/**
* Sets the current locale.
*