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

Commit 5098df9b authored by Matías Hernández's avatar Matías Hernández
Browse files

Fix NPE on modes page when schedule has no days

Fixes: 387088843
Test: atest ZenModeTriggerUpdatePreferenceControllerTest
Flag: EXEMPT trivial bugfix
Change-Id: I3b845784f5923521d7f3f6cae9d6d27a21f55361
parent 837a3477
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()