Merge "DatePicker A11Y fix time announced for date widgets"
This commit is contained in:
committed by
Android (Google) Code Review
commit
6e3aed53ca
@@ -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.
|
||||
*/
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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.
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user