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

Commit f496cf6f authored by Matías Hernández's avatar Matías Hernández Committed by Android Build Coastguard Worker
Browse files

Fix NPE on modes page when schedule has no days

Fixes: 387088843
Test: atest ZenModeTriggerUpdatePreferenceControllerTest
Flag: EXEMPT trivial bugfix
(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:5098df9b6c2a7caff5dde39911c70e35f2aacbe7)
Merged-In: I3b845784f5923521d7f3f6cae9d6d27a21f55361
Change-Id: I3b845784f5923521d7f3f6cae9d6d27a21f55361
parent 954635a2
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()