private void scheduleNextBackup(BackupState state) { if (state.backupType == REGULAR && getPreferences().isUseOldScheduler()) { final Job nextSync = getBackupJobs().scheduleRegular(); if (nextSync != null) { JobTrigger.ExecutionWindowTrigger trigger = (JobTrigger.ExecutionWindowTrigger) nextSync.getTrigger(); Date date = new Date(System.currentTimeMillis() + (trigger.getWindowStart() * 1000)); appLog(R.string.app_log_scheduled_next_sync, DateFormat.format("kk:mm", date)); } else { appLog(R.string.app_log_no_next_sync); } } // else job already persisted }
@Test public void shouldNotScheduleRegularBackupIfAutoBackupIsDisabled() throws Exception { when(preferences.isAutoBackupEnabled()).thenReturn(false); assertThat(subject.scheduleRegular()).isEqualTo(null); }
private void rescheduleJobs() { backupJobs.cancelAll(); if (preferences.isAutoBackupEnabled()) { backupJobs.scheduleRegular(); if (preferences.getIncomingTimeoutSecs() > 0 && !preferences.isUseOldScheduler()) { backupJobs.scheduleContentTriggerJob(); } } }
@Test public void shouldScheduleRegular() throws Exception { when(preferences.isAutoBackupEnabled()).thenReturn(true); when(preferences.getRegularTimeoutSecs()).thenReturn(2000); Job job = subject.scheduleRegular(); verifyJobScheduled(job, 2000, "REGULAR"); }
@Test public void shouldScheduleNextRegularBackupAfterFinished() throws Exception { shadowConnectivityManager.setBackgroundDataSetting(true); Intent intent = new Intent(REGULAR.name()); service.handleIntent(intent); verify(backupTask).execute(any(BackupConfig.class)); service.backupStateChanged(service.transition(SmsSyncState.FINISHED_BACKUP, null)); verify(backupJobs).scheduleRegular(); assertThat(shadowOf(service).isStoppedBySelf()).isTrue(); assertThat(shadowOf(service).isForegroundStopped()).isTrue(); }