public static Status getStatus(@NonNull String url, @NonNull String parentPath, @Nullable String filename) { return getStatus(createFinder(url, parentPath, filename)); }
@Nullable public static BreakpointInfo getCurrentInfo(@NonNull String url, @NonNull String parentPath, @Nullable String filename) { return getCurrentInfo(createFinder(url, parentPath, filename)); }
boolean isTaskPendingOrRunning(@NonNull DownloadTask task) { return StatusUtil.isSameTaskPendingOrRunning(task); }
public static boolean isCompleted(@NonNull String url, @NonNull String parentPath, @Nullable String filename) { return isCompleted(createFinder(url, parentPath, filename)); }
private void initStatus(TextView statusTv, ProgressBar progressBar) { final StatusUtil.Status status = StatusUtil.getStatus(task); if (status == StatusUtil.Status.COMPLETED) { progressBar.setProgress(progressBar.getMax()); } statusTv.setText(status.toString()); final BreakpointInfo info = StatusUtil.getCurrentInfo(task); if (info != null) { Log.d(TAG, "init status with: " + info.toString()); DemoUtil.calcProgressToView(progressBar, info.getTotalOffset(), info.getTotalLength()); } }
private boolean isTaskRunning() { final StatusUtil.Status status = StatusUtil.getStatus(task); return status == StatusUtil.Status.PENDING || status == StatusUtil.Status.RUNNING; } }
@Test public void getCurrentInfo() { final BreakpointStore store = OkDownload.with().breakpointStore(); final BreakpointInfo origin = mock(BreakpointInfo.class); doReturn(origin).when(store).get(anyInt()); StatusUtil.getCurrentInfo(mock(DownloadTask.class)); verify(origin).copy(); }
public static boolean isCompleted(@NonNull DownloadTask task) { return isCompletedOrUnknown(task) == Status.COMPLETED; }
@Test public void isCompleted() throws IOException { assertThat(file.exists()).isFalse(); boolean isCompleted = StatusUtil .isCompleted(url, file.getParentFile().getPath(), file.getName()); assertThat(isCompleted).isFalse(); file.getParentFile().mkdirs(); file.createNewFile(); isCompleted = StatusUtil .isCompleted(url, file.getParentFile().getPath(), file.getName()); assertThat(isCompleted).isTrue(); final BreakpointStore store = OkDownload.with().breakpointStore(); doReturn(mock(BreakpointInfo.class)).when(store).get(anyInt()); isCompleted = StatusUtil .isCompleted(url, file.getParentFile().getPath(), file.getName()); assertThat(isCompleted).isFalse(); }
@Test public void createFinder() { DownloadTask task = StatusUtil.createFinder(url, file.getParent(), null); assertThat(task.getFile()).isNull(); assertFile(task.getParentFile()).isEqualTo(file.getParentFile()); task = StatusUtil.createFinder(url, file.getParent(), file.getName()); assertFile(task.getFile()).isEqualTo(file); }
private void initStatus(TextView statusTv, ProgressBar taskPb, ProgressBar block0Pb, ProgressBar block1Pb, ProgressBar block2Pb, ProgressBar block3Pb, TextView taskTitleTv, TextView block0TitleTv, TextView block1TitleTv, TextView block2TitleTv, TextView block3TitleTv) { final StatusUtil.Status status = StatusUtil.getStatus(task); statusTv.setText(status.toString()); if (status == StatusUtil.Status.COMPLETED) { taskPb.setProgress(taskPb.getMax()); } final BreakpointInfo info = StatusUtil.getCurrentInfo(task); if (info != null) { Log.d(TAG, "init status with: " + info.toString()); EachBlockProgressUtil .initTitle(info, taskTitleTv, block0TitleTv, block1TitleTv, block2TitleTv, block3TitleTv); EachBlockProgressUtil .initProgress(info, taskPb, block0Pb, block1Pb, block2Pb, block3Pb); } }
public synchronized byte getStatus() { if (downloadTask == null) { return status; } StatusUtil.Status okDownloadStatus = StatusUtil.getStatus(downloadTask); status = convert(okDownloadStatus); return status; }
@Test public void getCurrentInfo_urlParentPathFilename() { final BreakpointStore store = OkDownload.with().breakpointStore(); final BreakpointInfo origin = mock(BreakpointInfo.class); doReturn(origin).when(store).get(anyInt()); StatusUtil.getCurrentInfo("https://jacksgong.com", "parentPath", "filename"); verify(origin).copy(); } }
public static Status getStatus(@NonNull DownloadTask task) { final Status status = isCompletedOrUnknown(task); if (status == Status.COMPLETED) return Status.COMPLETED; final DownloadDispatcher dispatcher = OkDownload.with().downloadDispatcher(); if (dispatcher.isPending(task)) return Status.PENDING; if (dispatcher.isRunning(task)) return Status.RUNNING; return status; }
boolean inspectCompleted(@NonNull DownloadTask task, @Nullable Collection<DownloadTask> completedCollection) { if (task.isPassIfAlreadyCompleted() && StatusUtil.isCompleted(task)) { if (task.getFilename() == null && !OkDownload.with().downloadStrategy() .validFilenameFromStore(task)) { return false; } OkDownload.with().downloadStrategy().validInfoOnCompleted(task, store); if (completedCollection != null) { completedCollection.add(task); } else { OkDownload.with().callbackDispatcher().dispatch() .taskEnd(task, EndCause.COMPLETED, null); } return true; } return false; }
final StatusUtil.Status statusOnStore = StatusUtil.getStatus(task); TagUtil.saveStatus(task, statusOnStore.toString()); if (statusOnStore == StatusUtil.Status.COMPLETED) { holder.progressBar.setProgress(0); } else { final BreakpointInfo info = StatusUtil.getCurrentInfo(task); if (info != null) { TagUtil.saveTotal(task, info.getTotalLength());
@Test public void getStatus() throws IOException { file.getParentFile().mkdirs(); file.createNewFile(); assertThat(file.exists()).isTrue(); StatusUtil.Status status = StatusUtil .getStatus(url, file.getParent(), file.getName()); assertThat(status).isEqualTo(COMPLETED); // no filename status = StatusUtil.getStatus(url, file.getParentFile().getPath(), null); assertThat(status).isEqualTo(UNKNOWN); final DownloadDispatcher dispatcher = OkDownload.with().downloadDispatcher(); doReturn(true).when(dispatcher).isRunning(any(DownloadTask.class)); status = StatusUtil.getStatus(url, file.getParentFile().getPath(), null); assertThat(status).isEqualTo(RUNNING); doReturn(true).when(dispatcher).isPending(any(DownloadTask.class)); status = StatusUtil.getStatus(url, file.getParentFile().getPath(), null); assertThat(status).isEqualTo(PENDING); }
@Test public void isSameTaskPendingOrRunning() throws IOException { mockOkDownload(); final DownloadTask task = mock(DownloadTask.class); final DownloadDispatcher dispatcher = OkDownload.with().downloadDispatcher(); when(dispatcher.findSameTask(task)).thenReturn(task); assertThat(StatusUtil.isSameTaskPendingOrRunning(task)).isTrue(); when(dispatcher.findSameTask(task)).thenReturn(null); assertThat(StatusUtil.isSameTaskPendingOrRunning(task)).isFalse(); }
assertThat(StatusUtil.isCompletedOrUnknown(task)).isEqualTo(StatusUtil.Status.UNKNOWN); assertThat(StatusUtil.isCompletedOrUnknown(task)).isEqualTo(StatusUtil.Status.UNKNOWN); assertThat(StatusUtil.isCompletedOrUnknown(task)).isEqualTo(StatusUtil.Status.UNKNOWN); when(task.getFilename()).thenReturn(null); when(info.getTotalLength()).thenReturn(1L); assertThat(StatusUtil.isCompletedOrUnknown(task)).isEqualTo(StatusUtil.Status.IDLE); when(task.getFile()).thenReturn(file); when(info.getFile()).thenReturn(file); assertThat(StatusUtil.isCompletedOrUnknown(task)).isEqualTo(StatusUtil.Status.IDLE); assertThat(StatusUtil.isCompletedOrUnknown(task)).isEqualTo(StatusUtil.Status.COMPLETED); assertThat(StatusUtil.isCompletedOrUnknown(task)).isEqualTo(StatusUtil.Status.UNKNOWN);
@Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_notification); actionTv = findViewById(R.id.actionTv); actionView = findViewById(R.id.actionView); initListener(); initTask(); initAction(); // for cancel action on notification. IntentFilter filter = new IntentFilter(CancelReceiver.ACTION); cancelReceiver = new CancelReceiver(task); registerReceiver(cancelReceiver, filter); GlobalTaskManager.getImpl().attachListener(task, listener); GlobalTaskManager.getImpl().addAutoRemoveListenersWhenTaskEnd(task.getId()); if (StatusUtil.isSameTaskPendingOrRunning(task)) { actionTv.setText(R.string.cancel); actionView.setTag(new Object()); } }