Use full day names in the a11y version of schedules in mode list descriptions

Bug: 370358575
Test: atest ZenModesListItemPreferenceTest
Flag: android.app.modes_ui
Change-Id: I5d22b878c1d685476cf71167e7163be65416da68
This commit is contained in:
Matías Hernández
2024-11-08 17:24:01 +01:00
parent 2c4aec3a23
commit 3863c67a01
2 changed files with 65 additions and 14 deletions

View File

@@ -16,12 +16,19 @@
package com.android.settings.notification.modes;
import static android.app.AutomaticZenRule.TYPE_SCHEDULE_TIME;
import static android.service.notification.SystemZenRules.PACKAGE_ANDROID;
import static com.google.common.truth.Truth.assertThat;
import android.app.Flags;
import android.content.Context;
import android.platform.test.annotations.EnableFlags;
import android.platform.test.flag.junit.SetFlagsRule;
import android.service.notification.SystemZenRules;
import android.service.notification.ZenModeConfig;
import android.text.Spanned;
import android.text.style.TtsSpan;
import com.android.settingslib.notification.modes.TestModeBuilder;
import com.android.settingslib.notification.modes.ZenIconLoader;
@@ -37,6 +44,8 @@ import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
import java.util.Calendar;
@RunWith(RobolectricTestRunner.class)
@EnableFlags(Flags.FLAG_MODES_UI)
public class ZenModesListItemPreferenceTest {
@@ -122,6 +131,31 @@ public class ZenModesListItemPreferenceTest {
assertThat(preference.getIcon()).isNotNull();
}
@Test
public void setZenMode_scheduleTime_hasCustomTtsInSummary() {
ZenModeConfig.ScheduleInfo scheduleInfo = new ZenModeConfig.ScheduleInfo();
scheduleInfo.days = new int[] { Calendar.MONDAY, Calendar.TUESDAY, Calendar.WEDNESDAY };
scheduleInfo.startHour = 11;
scheduleInfo.endHour = 15;
ZenMode mode = new TestModeBuilder()
.setPackage(PACKAGE_ANDROID)
.setType(TYPE_SCHEDULE_TIME)
.setConditionId(ZenModeConfig.toScheduleConditionId(scheduleInfo))
.setTriggerDescription(
SystemZenRules.getTriggerDescriptionForScheduleTime(mContext, scheduleInfo))
.build();
ZenModesListItemPreference preference = newPreference(mode);
assertThat(preference.getSummary()).isInstanceOf(Spanned.class);
Spanned summary = (Spanned) preference.getSummary();
TtsSpan[] ttsSpans = summary.getSpans(0, summary.length(), TtsSpan.class);
assertThat(ttsSpans).hasLength(1);
assertThat(ttsSpans[0].getType()).isEqualTo(TtsSpan.TYPE_TEXT);
assertThat(ttsSpans[0].getArgs().getString(TtsSpan.ARG_TEXT)).isEqualTo(
"Monday to Wednesday, 11:00 AM - 3:00 PM");
}
private ZenModesListItemPreference newPreference(ZenMode zenMode) {
return new ZenModesListItemPreference(mContext, mIconLoader, MoreExecutors.directExecutor(),
zenMode);