@SuppressWarnings("ConstantConditions") private void testConstraints(JobRequest.Builder builder) { int jobId = builder .setRequiredNetworkType(JobRequest.NetworkType.METERED) .setRequiresBatteryNotLow(true) .setRequiresCharging(true) .setRequiresDeviceIdle(true) .setRequiresStorageNotLow(true) .build() .schedule(); String tag = JobProxyWorkManager.createTag(jobId); List<WorkInfo> statuses = mWorkManagerRule.getWorkStatus(tag); assertThat(statuses).isNotNull().hasSize(1); assertThat(statuses.get(0).getState()).isEqualTo(WorkInfo.State.ENQUEUED); mWorkManagerRule.getManager().cancelAllForTag(TAG); assertThat(mWorkManagerRule.getWorkStatus(tag).get(0).getState()).isEqualTo(WorkInfo.State.CANCELLED); } }
@Override public void createPeriodic() { for (int i = 0; i < 10; i++) { JobRequest.Builder builder = new JobRequest.Builder("tag") .setPeriodic(TimeUnit.MINUTES.toMillis(1)) .setRequiresCharging(random()) .setRequiresDeviceIdle(random()) .setRequiredNetworkType(random() ? JobRequest.NetworkType.ANY : JobRequest.NetworkType.CONNECTED) .setRequirementsEnforced(random()); if (random()) { PersistableBundleCompat extras = new PersistableBundleCompat(); extras.putString("key", "Hello world"); builder.setExtras(extras); } builder.build().schedule(); } } }
public static void schedule() { if (JoH.pratelimit("daily-job-schedule", 60000)) { UserError.Log.uel(TAG, JoH.dateTimeText(JoH.tsl()) + " Job Scheduled"); // Debug only new JobRequest.Builder(TAG) .setPeriodic(Constants.DAY_IN_MS, Constants.HOUR_IN_MS * 12) .setRequiresDeviceIdle(true) .setRequiresCharging(true) .setRequiredNetworkType(JobRequest.NetworkType.UNMETERED) .setUpdateCurrent(true) .build() .schedule(); } } }
public static void schedule() { if (JoH.pratelimit("daily-job-schedule", 60000)) { UserError.Log.uel(TAG, JoH.dateTimeText(JoH.tsl()) + " Job Scheduled"); // Debug only new JobRequest.Builder(TAG) .setPeriodic(Constants.DAY_IN_MS, Constants.HOUR_IN_MS * 12) .setRequiresDeviceIdle(true) .setRequiresCharging(true) .setRequiredNetworkType(JobRequest.NetworkType.UNMETERED) .setUpdateCurrent(true) .build() .schedule(); } } }
static JobRequest adapt(UploadRequest request) { PersistableBundleCompat extras = new PersistableBundleCompat(); request.populateParamsFromFields(new AndroidJobRequestParams(extras)); UploadPolicy policy = request.getUploadPolicy(); JobRequest.Builder builder = new JobRequest.Builder(JOB_TAG) .setBackoffCriteria(policy.getBackoffMillis(), adaptPolicy(policy.getBackoffPolicy())) .setExtras(extras) .setExecutionWindow(request.getTimeWindow().getMinLatencyOffsetMillis(), request.getTimeWindow().getMaxExecutionDelayMillis()) .setRequiredNetworkType(adaptNetworkType(policy.getNetworkType())) .setRequiresCharging(policy.isRequiresCharging()) .setRequiresDeviceIdle(policy.isRequiresIdle()) .setRequirementsEnforced(true); return builder.build(); }
@Override public void createPeriodic() { for (int i = 0; i < 10; i++) { JobRequest.Builder builder = new JobRequest.Builder("tag") .setRequiresCharging(random()) .setRequiresDeviceIdle(random()) .setRequiresBatteryNotLow(random()) .setRequiresStorageNotLow(random()) .setRequiredNetworkType(random() ? JobRequest.NetworkType.ANY : JobRequest.NetworkType.CONNECTED) .setRequirementsEnforced(random()); if (random()) { PersistableBundleCompat extras = new PersistableBundleCompat(); extras.putString("key", "Hello world"); builder.setExtras(extras); } if (random()) { builder.setPeriodic(JobRequest.MIN_INTERVAL); } else { builder.setPeriodic(JobRequest.MIN_INTERVAL, JobRequest.MIN_FLEX); } builder.build().schedule(); } } } }
private void manageUnified(boolean start) { if (start) { final JobRequest.Builder b= new JobRequest.Builder(DemoUnifiedJob.JOB_TAG); PersistableBundleCompat extras=new PersistableBundleCompat(); if (download.isChecked()) { extras.putBoolean(KEY_DOWNLOAD, true); b .setExtras(extras) .setRequiredNetworkType(JobRequest.NetworkType.CONNECTED); } else { b.setRequiredNetworkType(JobRequest.NetworkType.ANY); } b .setPeriodic(getPeriod()) .setRequiresCharging(false) .setRequiresDeviceIdle(true); unifiedJobId=b.build().schedule(); } else { JobManager.instance().cancel(unifiedJobId); } }
@Override public void createPeriodic() { for (int i = 0; i < 10; i++) { JobRequest.Builder builder = new JobRequest.Builder("tag") .setRequiresCharging(random()) .setRequiresDeviceIdle(random()) .setRequiredNetworkType(random() ? JobRequest.NetworkType.ANY : JobRequest.NetworkType.CONNECTED) .setRequirementsEnforced(random()); if (random()) { PersistableBundleCompat extras = new PersistableBundleCompat(); extras.putString("key", "Hello world"); builder.setExtras(extras); } if (random()) { builder.setPeriodic(JobRequest.MIN_INTERVAL); } else { builder.setPeriodic(JobRequest.MIN_INTERVAL, JobRequest.MIN_FLEX); } builder.build().schedule(); } } }
private void testPeriodic() { mLastJobId = new JobRequest.Builder(DemoSyncJob.TAG) .setPeriodic(JobRequest.MIN_INTERVAL, JobRequest.MIN_FLEX) .setRequiresCharging(mRequiresCharging.isChecked()) .setRequiresDeviceIdle(mRequiresDeviceIdle.isChecked()) .setRequiredNetworkType(JobRequest.NetworkType.values()[mNetworkTypeSpinner.getSelectedItemPosition()]) .build() .schedule(); }