Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit be203ea1 authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Fix NPE on modes page when schedule has no days" into main

parents f4be314b 5098df9b
Loading
Loading
Loading
Loading
+5 −3
Original line number Diff line number Diff line
@@ -109,9 +109,11 @@ class ZenModeTriggerUpdatePreferenceController extends AbstractZenModePreference
                    tryParseScheduleConditionId(mode.getRule().getConditionId());
            if (schedule != null) {
                preference.setTitle(SystemZenRules.getTimeSummary(mContext, schedule));
                preference.setSummary(Utils.createAccessibleSequence(
                        SystemZenRules.getDaysOfWeekShort(mContext, schedule),
                        SystemZenRules.getDaysOfWeekFull(mContext, schedule)));
                String shortDaysSummary = SystemZenRules.getDaysOfWeekShort(mContext, schedule);
                String fullDaysSummary = SystemZenRules.getDaysOfWeekFull(mContext, schedule);
                preference.setSummary(shortDaysSummary != null && fullDaysSummary != null
                        ? Utils.createAccessibleSequence(shortDaysSummary, fullDaysSummary)
                        : shortDaysSummary);
            } else {
                // Fallback, but shouldn't happen.
                Log.wtf(TAG, "SCHEDULE_TIME mode without schedule: " + mode);
+19 −0
Original line number Diff line number Diff line
@@ -309,6 +309,25 @@ public class ZenModeTriggerUpdatePreferenceControllerTest {
                .isEqualTo(ZenModeSetScheduleFragment.class.getName());
    }

    @Test
    public void updateState_scheduleTimeRuleWithNoDays_emptySummary() {
        ZenModeConfig.ScheduleInfo scheduleInfo = new ZenModeConfig.ScheduleInfo();
        scheduleInfo.days = new int[] {};
        scheduleInfo.startHour = 1;
        scheduleInfo.endHour = 15;
        ZenMode mode = new TestModeBuilder()
                .setConditionId(ZenModeConfig.toScheduleConditionId(scheduleInfo))
                .setPackage(SystemZenRules.PACKAGE_ANDROID)
                .setType(TYPE_SCHEDULE_TIME)
                .setTriggerDescription("some schedule")
                .build();

        mController.updateState(mPreference, mode);

        assertThat(mPreference.getTitle()).isEqualTo("1:00 AM - 3:00 PM");
        assertThat(mPreference.getSummary()).isNull();
    }

    @Test
    public void updateState_appWithConfigActivity_showsLinkToConfigActivity() {
        ZenMode mode = new TestModeBuilder()