@Override public int getCallbackProgressMinInterval() { return downloadTask.getMinIntervalMillisCallbackProcess(); }
public boolean isFetchProcessMoment(DownloadTask task) { final long minInterval = task.getMinIntervalMillisCallbackProcess(); final long now = SystemClock.uptimeMillis(); return minInterval <= 0 || now - DownloadTask.TaskHideWrapper .getLastCallbackProcessTs(task) >= minInterval; }
@Override public void fetchProgress(@NonNull final DownloadTask task, final int blockIndex, final long increaseBytes) { if (task.getMinIntervalMillisCallbackProcess() > 0) { DownloadTask.TaskHideWrapper .setLastCallbackProcessTs(task, SystemClock.uptimeMillis()); } if (task.isAutoCallbackToUIThread()) { uiHandler.post(new Runnable() { @Override public void run() { task.getListener().fetchProgress(task, blockIndex, increaseBytes); } }); } else { task.getListener().fetchProgress(task, blockIndex, increaseBytes); } }
@Test public void isFetchProcessMoment_lessThanMinInterval() { final DownloadTask task = mock(DownloadTask.class); when(task.getMinIntervalMillisCallbackProcess()).thenReturn(Integer.MAX_VALUE); assertThat(dispatcher.isFetchProcessMoment(task)).isFalse(); }
@Test public void isFetchProcessMoment_largeThanMinInterval() { final DownloadTask task = mock(DownloadTask.class); when(task.getMinIntervalMillisCallbackProcess()).thenReturn(1); assertThat(dispatcher.isFetchProcessMoment(task)).isTrue(); }
@Test public void isFetchProcessMoment_noMinInterval() { final DownloadTask task = mock(DownloadTask.class); when(task.getMinIntervalMillisCallbackProcess()).thenReturn(0); assertThat(dispatcher.isFetchProcessMoment(task)).isTrue(); }
assertThat(task.getSyncBufferSize()).isEqualTo(3); assertThat(task.getSyncBufferIntervalMills()).isEqualTo(4); assertThat(task.getMinIntervalMillisCallbackProcess()).isEqualTo(5); assertThat(task.isAutoCallbackToUIThread()).isTrue(); assertThat(task.isWifiRequired()).isTrue();