Skip to content

Commit 35bd1fc

Browse files
kavitampdrchen
authored andcommitted
[Date Picker] ContentDescription for "DayName" is not properly getting read by talkback for the German language
Resolves #3051 GIT_ORIGIN_REV_ID=91b350bf4830f5903d4809a1c3b097bbec2c2b27 PiperOrigin-RevId: 524068644
1 parent 3029ff0 commit 35bd1fc

File tree

3 files changed

+28
-14
lines changed

3 files changed

+28
-14
lines changed

lib/java/com/google/android/material/datepicker/DateStrings.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ static String getMonthDayOfWeekDay(long timeInMillis) {
9090

9191
static String getMonthDayOfWeekDay(long timeInMillis, Locale locale) {
9292
if (VERSION.SDK_INT >= VERSION_CODES.N) {
93-
return UtcDates.getAbbrMonthWeekdayDayFormat(locale).format(new Date(timeInMillis));
93+
return UtcDates.getMonthWeekdayDayFormat(locale).format(new Date(timeInMillis));
9494
}
9595
return UtcDates.getFullFormat(locale).format(new Date(timeInMillis));
9696
}
@@ -101,7 +101,7 @@ static String getYearMonthDayOfWeekDay(long timeInMillis) {
101101

102102
static String getYearMonthDayOfWeekDay(long timeInMillis, Locale locale) {
103103
if (VERSION.SDK_INT >= VERSION_CODES.N) {
104-
return UtcDates.getYearAbbrMonthWeekdayDayFormat(locale).format(new Date(timeInMillis));
104+
return UtcDates.getYearMonthWeekdayDayFormat(locale).format(new Date(timeInMillis));
105105
}
106106
return UtcDates.getFullFormat(locale).format(new Date(timeInMillis));
107107
}

lib/java/com/google/android/material/datepicker/UtcDates.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -212,13 +212,13 @@ static android.icu.text.DateFormat getAbbrMonthDayFormat(Locale locale) {
212212
}
213213

214214
@TargetApi(VERSION_CODES.N)
215-
static android.icu.text.DateFormat getAbbrMonthWeekdayDayFormat(Locale locale) {
216-
return getAndroidFormat(android.icu.text.DateFormat.ABBR_MONTH_WEEKDAY_DAY, locale);
215+
static android.icu.text.DateFormat getMonthWeekdayDayFormat(Locale locale) {
216+
return getAndroidFormat(android.icu.text.DateFormat.MONTH_WEEKDAY_DAY, locale);
217217
}
218218

219219
@TargetApi(VERSION_CODES.N)
220-
static android.icu.text.DateFormat getYearAbbrMonthWeekdayDayFormat(Locale locale) {
221-
return getAndroidFormat(android.icu.text.DateFormat.YEAR_ABBR_MONTH_WEEKDAY_DAY, locale);
220+
static android.icu.text.DateFormat getYearMonthWeekdayDayFormat(Locale locale) {
221+
return getAndroidFormat(android.icu.text.DateFormat.YEAR_MONTH_WEEKDAY_DAY, locale);
222222
}
223223

224224
static DateFormat getMediumFormat() {

lib/javatests/com/google/android/material/datepicker/DateStringsTest.java

Lines changed: 22 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -310,7 +310,7 @@ public void getDayContentDescription_notToday() {
310310
/* isStartOfRange= */ false,
311311
/* isEndOfRange= */ false);
312312

313-
assertThat(contentDescription, is("Mon, Nov 30, 2020"));
313+
assertThat(contentDescription, is("Monday, November 30, 2020"));
314314
}
315315

316316
@Test
@@ -324,7 +324,7 @@ public void getDayContentDescription_notToday_startOfRange() {
324324
/* isStartOfRange= */ true,
325325
/* isEndOfRange= */ false);
326326

327-
assertThat(contentDescription, is("Start date Mon, Nov 30, 2020"));
327+
assertThat(contentDescription, is("Start date Monday, November 30, 2020"));
328328
}
329329

330330
@Test
@@ -338,7 +338,7 @@ public void getDayContentDescription_notToday_endOfRange() {
338338
/* isStartOfRange= */ false,
339339
/* isEndOfRange= */ true);
340340

341-
assertThat(contentDescription, is("End date Mon, Nov 30, 2020"));
341+
assertThat(contentDescription, is("End date Monday, November 30, 2020"));
342342
}
343343

344344
@Test
@@ -352,7 +352,7 @@ public void getDayContentDescription_notToday_startAndEndOfRange() {
352352
/* isStartOfRange= */ true,
353353
/* isEndOfRange= */ true);
354354

355-
assertThat(contentDescription, is("Start date Mon, Nov 30, 2020"));
355+
assertThat(contentDescription, is("Start date Monday, November 30, 2020"));
356356
}
357357

358358
@Test
@@ -366,7 +366,7 @@ public void getDayContentDescription_today() {
366366
/* isStartOfRange= */ false,
367367
/* isEndOfRange= */ false);
368368

369-
assertThat(contentDescription, is("Today Mon, Nov 30, 2020"));
369+
assertThat(contentDescription, is("Today Monday, November 30, 2020"));
370370
}
371371

372372
@Test
@@ -380,7 +380,7 @@ public void getDayContentDescription_today_startOfRange() {
380380
/* isStartOfRange= */ true,
381381
/* isEndOfRange= */ false);
382382

383-
assertThat(contentDescription, is("Start date Today Mon, Nov 30, 2020"));
383+
assertThat(contentDescription, is("Start date Today Monday, November 30, 2020"));
384384
}
385385

386386
@Test
@@ -394,7 +394,7 @@ public void getDayContentDescription_today_endOfRange() {
394394
/* isStartOfRange= */ false,
395395
/* isEndOfRange= */ true);
396396

397-
assertThat(contentDescription, is("End date Today Mon, Nov 30, 2020"));
397+
assertThat(contentDescription, is("End date Today Monday, November 30, 2020"));
398398
}
399399

400400
@Test
@@ -408,7 +408,21 @@ public void getDayContentDescription_today_startAndEndOfRange() {
408408
/* isStartOfRange= */ true,
409409
/* isEndOfRange= */ true);
410410

411-
assertThat(contentDescription, is("Start date Today Mon, Nov 30, 2020"));
411+
assertThat(contentDescription, is("Start date Today Monday, November 30, 2020"));
412+
}
413+
414+
@Test
415+
public void getLocalizedDayContentDescription_german() {
416+
startDate = setupLocalizedCalendar(Locale.GERMAN, 2020, 10, 30);
417+
String contentDescription =
418+
DateStrings.getDayContentDescription(
419+
ApplicationProvider.getApplicationContext(),
420+
startDate.getTimeInMillis(),
421+
/* isToday= */ false,
422+
/* isStartOfRange= */ false,
423+
/* isEndOfRange= */ false);
424+
425+
assertThat(contentDescription, is("Montag, 30. November 2020"));
412426
}
413427

414428
@Test

0 commit comments

Comments
 (0)