private synchronized int cancelAllInner(@Nullable String tag) { int canceled = 0; Set<JobRequest> requests = getAllJobRequests(tag, true, false); for (JobRequest request : requests) { if (cancelInner(request)) { canceled++; } } //noinspection ConstantConditions Set<Job> jobs = TextUtils.isEmpty(tag) ? getAllJobs() : getAllJobsForTag(tag); for (Job job : jobs) { if (cancelInner(job)) { canceled++; } } return canceled; }
@Test public void testScheduleAndCancel() { JobRequest request = DummyJobs.createOneOff(); int jobId = request.schedule(); assertThat(manager().getJobRequest(jobId)).isNotNull(); assertThat(manager().getJob(jobId)).isNull(); assertThat(manager().cancel(jobId)).isTrue(); assertThat(manager().getAllJobRequests()).isEmpty(); assertThat(manager().getAllJobs()).isEmpty(); request.schedule(); assertThat(manager().getAllJobRequests()).hasSize(1); assertThat(manager().cancelAll()).isEqualTo(1); assertThat(manager().getAllJobRequests()).isEmpty(); assertThat(manager().getAllJobs()).isEmpty(); }
private synchronized int cancelAllInner(@Nullable String tag) { int canceled = 0; Set<JobRequest> requests = getAllJobRequests(tag, true, false); for (JobRequest request : requests) { if (cancelInner(request)) { canceled++; } } //noinspection ConstantConditions Set<Job> jobs = TextUtils.isEmpty(tag) ? getAllJobs() : getAllJobsForTag(tag); for (Job job : jobs) { if (cancelInner(job)) { canceled++; } } return canceled; }
/** * {@inheritDoc} */ @Override public int getRunningJobsCount() { int running = 0; for (Job job : JobManager.instance().getAllJobs()) { if (!job.isFinished()) { running++; } } return running; }
/** * {@inheritDoc} */ @Override public boolean cancelRequest(String requestId) { boolean cancelled = false; for (Job job : JobManager.instance().getAllJobs()) { String currJobId = ((UploadJob) job).requestId; if (requestId.equals(currJobId)) { job.cancel(); cancelled = true; } } if (!cancelled) { for (JobRequest job : JobManager.instance().getAllJobRequests()) { String id = job.getExtras().getString("requestId", null); if (requestId.equals(id)) { cancelled = JobManager.instance().cancel(job.getJobId()); break; } } } killThread(requestId); Logger.i(TAG, String.format("Cancelling request %s, success: %s", requestId, cancelled)); return cancelled; }