Announce the date for accessibility using EMMMMdy format

Which for en_US would be something like "Friday August 5th 2016" but may
be re-ordered for other locales. Dates are hard.

Bug: 30682782
Change-Id: I015d293526592add27ce8fada12cd58bcc274ccf
diff --git a/core/java/android/widget/DatePickerCalendarDelegate.java b/core/java/android/widget/DatePickerCalendarDelegate.java
index 2fd52b5..af22ec7 100755
--- a/core/java/android/widget/DatePickerCalendarDelegate.java
+++ b/core/java/android/widget/DatePickerCalendarDelegate.java
@@ -65,6 +65,8 @@
 
     private SimpleDateFormat mYearFormat;
     private SimpleDateFormat mMonthDayFormat;
+    private SimpleDateFormat mAccessibilityEventFormat;
+
 
     // Top-level container.
     private ViewGroup mContainer;
@@ -307,6 +309,9 @@
         mMonthDayFormat.setContext(DisplayContext.CAPITALIZATION_FOR_STANDALONE);
         mYearFormat = new SimpleDateFormat("y", locale);
 
+        // Clear out the lazily-initialized accessibility event formatter.
+        mAccessibilityEventFormat = null;
+
         // Update the header text.
         onCurrentDateChanged(false);
     }
@@ -586,7 +591,12 @@
 
     @Override
     public void onPopulateAccessibilityEvent(AccessibilityEvent event) {
-        event.getText().add(mCurrentDate.getTime().toString());
+        if (mAccessibilityEventFormat == null) {
+            final String pattern = DateFormat.getBestDateTimePattern(mCurrentLocale, "EMMMMdy");
+            mAccessibilityEventFormat = new SimpleDateFormat(pattern);
+        }
+        final CharSequence text = mAccessibilityEventFormat.format(mCurrentDate.getTime());
+        event.getText().add(text);
     }
 
     public CharSequence getAccessibilityClassName() {