@Override public void taskEnd(@NonNull DownloadTask task, @NonNull EndCause cause, @android.support.annotation.Nullable Exception realCause, @NonNull SpeedCalculator taskSpeed) { statusTv.setText(cause.toString()); taskSpeedTv.setText(taskSpeed.averageSpeed()); actionTv.setText(R.string.start); // mark task.setTag(null); } });
@Override public void onClick(View v) { final boolean started = task.getTag() != null; if (started) { // to cancel task.cancel(); } else { actionTv.setText(R.string.cancel); // to start startTask(statusTv, progressBar, actionTv); // mark task.setTag("mark-task-started"); } } });
@Override public void taskEnd(@NonNull DownloadTask task, @NonNull EndCause cause, @Nullable Exception realCause, @NonNull SpeedCalculator taskSpeed) { final String statusWithSpeed = cause.toString() + " " + taskSpeed.averageSpeed(); statusTv.setText(statusWithSpeed); actionTv.setText(R.string.start); // mark task.setTag(null); if (cause == EndCause.COMPLETED) { final String realMd5 = fileToMD5(task.getFile().getAbsolutePath()); if (!realMd5.equalsIgnoreCase("f836a37a5eee5dec0611ce15a76e8fd5")) { Log.e(TAG, "file is wrong because of md5 is wrong " + realMd5); } } } });
@Override public void onClick(View v) { final boolean started = task.getTag() != null; if (started) { // to cancel task.cancel(); } else { actionTv.setText(R.string.cancel); // to start startTask(statusTv, actionTv, taskPb, block0Pb, block1Pb, block2Pb, block3Pb, taskTitleTv, block0TitleTv, block1TitleTv, block2TitleTv, block3TitleTv, taskSpeedTv, block0SpeedTv, block1SpeedTv, block2SpeedTv, block3SpeedTv); // mark task.setTag("mark-task-started"); } } });
DownloadTask build() { if (path == null) { path = FileDownloadUtils.getDefaultSaveFilePath(url); } @NonNull DownloadTask.Builder builder; if (pathAsDirectory) { builder = new DownloadTask.Builder(url, path, null); } else { builder = new DownloadTask.Builder(url, new File(path)); } builder.setMinIntervalMillisCallbackProcess(minIntervalMillisCallbackProgress); builder.setPassIfAlreadyCompleted(!forceReDownload); builder.setWifiRequired(isWifiRequired); for (Map.Entry<String, String> entry : headerMap.entrySet()) { builder.addHeader(entry.getKey(), entry.getValue()); } builder.setAutoCallbackToUIThread(autoCallbackToUIThread); DownloadTask task = builder.build(); if (tag != null) task.setTag(tag); if (keyOfTag != null) task.addTag(keyOfTag, tagWithKey); return task; } }
public DownloadTask bind(@NonNull DownloadTask.Builder taskBuilder) { if (set.headerMapFields != null) taskBuilder.setHeaderMapFields(set.headerMapFields); if (set.readBufferSize != null) taskBuilder.setReadBufferSize(set.readBufferSize); if (set.flushBufferSize != null) taskBuilder.setFlushBufferSize(set.flushBufferSize); if (set.syncBufferSize != null) taskBuilder.setSyncBufferSize(set.syncBufferSize); if (set.wifiRequired != null) taskBuilder.setWifiRequired(set.wifiRequired); if (set.syncBufferIntervalMillis != null) { taskBuilder.setSyncBufferIntervalMillis(set.syncBufferIntervalMillis); } if (set.autoCallbackToUIThread != null) { taskBuilder.setAutoCallbackToUIThread(set.autoCallbackToUIThread); } if (set.minIntervalMillisCallbackProcess != null) { taskBuilder .setMinIntervalMillisCallbackProcess(set.minIntervalMillisCallbackProcess); } if (set.passIfAlreadyCompleted != null) { taskBuilder.setPassIfAlreadyCompleted(set.passIfAlreadyCompleted); } final DownloadTask task = taskBuilder.build(); if (set.tag != null) task.setTag(set.tag); boundTaskList.add(task); return task; }
doReturn(task).when(taskBuilder).build(); builder.bind(taskBuilder); verify(task).setTag(tag);