public @Nullable Job scheduleBootup() { if (!preferences.isAutoBackupEnabled()) { Log.d(TAG, "auto backup no longer enabled, canceling all jobs"); cancelAll(); return null; } else if (preferences.isUseOldScheduler()) { return schedule(BOOT_BACKUP_DELAY, REGULAR, false); } else { // everything else should be persistent by GCM return null; } }
@Nullable private Job schedule(int inSeconds, BackupType backupType, boolean force) { if (LOCAL_LOGV) { Log.v(TAG, "scheduleBackup(" + inSeconds + ", " + backupType + ", " + force + ")"); } if (force || (preferences.isAutoBackupEnabled() && inSeconds > 0)) { final Job job = createJob(inSeconds, backupType); if (schedule(job) != null) { if (LOCAL_LOGV) { Log.v(TAG, "Scheduled backup job " + job + ", tag: " + job.getTag() + " due " + "" + (inSeconds > 0 ? "in " + inSeconds + " seconds" : "now")); } } return job; } else { if (LOCAL_LOGV) Log.v(TAG, "Not scheduling backup because auto backup is disabled."); return null; } }
@Subscribe public void autoBackupSettingsChanged(final AutoBackupSettingsChangedEvent event) { if (LOCAL_LOGV) { Log.v(TAG, "autoBackupSettingsChanged("+event+")"); } setBroadcastReceiversEnabled(preferences.isUseOldScheduler() && preferences.isAutoBackupEnabled()); rescheduleJobs(); }
private void mockScheduled() { when(authPreferences.isLoginInformationSet()).thenReturn(true); when(preferences.isAutoBackupEnabled()).thenReturn(true); when(preferences.isFirstBackup()).thenReturn(false); when(preferences.isUseOldScheduler()).thenReturn(true); } }
@Test public void shouldNotScheduleIfAutoBackupIsDisabled() throws Exception { mockScheduled(); when(preferences.isAutoBackupEnabled()).thenReturn(false); receiver.onReceive(context, new Intent().setAction("android.provider.Telephony.SMS_RECEIVED")); verifyZeroInteractions(backupJobs); }
@Test public void shouldNotScheduleRegularBackupIfAutoBackupIsDisabled() throws Exception { when(preferences.isAutoBackupEnabled()).thenReturn(false); assertThat(subject.scheduleRegular()).isEqualTo(null); }
@Test public void shouldCancelAllJobsAfterBootIfAutoBackupDisabled() throws Exception { when(preferences.isAutoBackupEnabled()).thenReturn(false); Job job = subject.scheduleBootup(); assertThat(job).isNull(); }
@Test public void shouldScheduleNothingAfterBootForNewScheduler() throws Exception { when(preferences.isAutoBackupEnabled()).thenReturn(true); when(preferences.isUseOldScheduler()).thenReturn(false); Job job = subject.scheduleBootup(); assertThat(job).isNull(); }
@Test public void shouldNotScheduleIncomingBackupIfAutoBackupIsDisabled() throws Exception { when(preferences.isAutoBackupEnabled()).thenReturn(false); assertThat(subject.scheduleIncoming()).isEqualTo(null); }
@Test public void shouldScheduleRegularJobAfterBootForOldScheduler() throws Exception { when(preferences.isAutoBackupEnabled()).thenReturn(true); when(preferences.isUseOldScheduler()).thenReturn(true); Job job = subject.scheduleBootup(); verifyJobScheduled(job, 60, "REGULAR"); }
@Test public void shouldScheduleIncoming() throws Exception { when(preferences.isAutoBackupEnabled()).thenReturn(true); when(preferences.getIncomingTimeoutSecs()).thenReturn(2000); Job job = subject.scheduleIncoming(); verifyJobScheduled(job, 2000, "INCOMING"); }
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"); }
private boolean shouldRun(JobParameters jobParameters) { if (BackupType.fromName(jobParameters.getTag()) == REGULAR) { final Preferences prefs = new Preferences(this); final boolean autoBackupEnabled = prefs.isAutoBackupEnabled(); if (!autoBackupEnabled) { // was disabled in meantime, cancel getBackupJobs().cancelRegular(); } return autoBackupEnabled; } else { return true; } }
private boolean shouldSchedule(Context context) { final Preferences preferences = getPreferences(context); final boolean autoBackupEnabled = preferences.isAutoBackupEnabled(); final boolean loginInformationSet = getAuthPreferences(context).isLoginInformationSet(); final boolean firstBackup = preferences.isFirstBackup(); final boolean schedule = (autoBackupEnabled && loginInformationSet && !firstBackup); if (!schedule) { final String message = "Not set up to back up. " + "autoBackup=" + autoBackupEnabled + ", loginInfoSet=" + loginInformationSet + ", firstBackup=" + firstBackup; log(context, message, preferences.isAppLogDebug()); } return schedule; }