@Override public void downloadFromBeginning(@NonNull DownloadTask task, @NonNull BreakpointInfo info, @NonNull ResumeFailedCause cause) { final DownloadListener[] listeners = getThreadSafeArray(task, realListenerMap); if (listeners == null) return; for (final DownloadListener realOne : listeners) { if (realOne == null) continue; realOne.downloadFromBeginning(task, info, cause); } }
@Override public void downloadFromBeginning(@NonNull DownloadTask task, @NonNull BreakpointInfo info, @NonNull ResumeFailedCause cause) { for (DownloadListener listener : listenerList) { listener.downloadFromBeginning(task, info, cause); } }
@Override public void run() { task.getListener().downloadFromBeginning(task, info, cause); } });
@Override public void downloadFromBeginning(@NonNull final DownloadTask task, @NonNull final BreakpointInfo info, @NonNull final ResumeFailedCause cause) { Util.d(TAG, "downloadFromBeginning: " + task.getId()); inspectDownloadFromBeginning(task, info, cause); if (task.isAutoCallbackToUIThread()) { uiHandler.post(new Runnable() { @Override public void run() { task.getListener().downloadFromBeginning(task, info, cause); } }); } else { task.getListener().downloadFromBeginning(task, info, cause); } }
void assembleBlockAndCallbackFromBeginning(@NonNull BreakpointInfo info, @NonNull BreakpointRemoteCheck remoteCheck, @NonNull ResumeFailedCause failedCause) { Util.assembleBlock(task, info, remoteCheck.getInstanceLength(), remoteCheck.isAcceptRange()); OkDownload.with().callbackDispatcher().dispatch() .downloadFromBeginning(task, info, failedCause); }
@Test public void downloadFromBeginning() throws Exception { listenerBunch.downloadFromBeginning(task, info, resumeFailedCause); verify(listener1).downloadFromBeginning(eq(task), eq(info), eq(resumeFailedCause)); verify(listener2).downloadFromBeginning(eq(task), eq(info), eq(resumeFailedCause)); }
@Test public void assembleBlockAndCallbackFromBeginning() { final BreakpointRemoteCheck remoteCheck = mock(BreakpointRemoteCheck.class); final ResumeFailedCause failedCause = mock(ResumeFailedCause.class); call.assembleBlockAndCallbackFromBeginning(info, remoteCheck, failedCause); final DownloadListener listener = OkDownload.with().callbackDispatcher().dispatch(); verify(listener).downloadFromBeginning(eq(task), eq(info), eq(failedCause)); } }
@Test public void interceptConnect_singleBlockCheck() throws IOException { mockOkDownload(); when(chain.processConnect()).thenReturn(connected); when(chain.getInfo()).thenReturn(info); when(chain.getCache()).thenReturn(cache); when(info.getBlock(0)).thenReturn(blockInfo); when(info.getBlockCount()).thenReturn(1); when(info.isChunked()).thenReturn(false); when(info.getTotalLength()).thenReturn(1L); doReturn(2L).when(interceptor).getExactContentLengthRangeFrom0(connected); interceptor.interceptConnect(chain); ArgumentCaptor<BlockInfo> captor = ArgumentCaptor.forClass(BlockInfo.class); verify(info).addBlock(captor.capture()); verify(info).resetBlockInfos(); final BlockInfo addBlockInfo = captor.getValue(); assertThat(addBlockInfo.getRangeLeft()).isZero(); assertThat(addBlockInfo.getContentLength()).isEqualTo(2L); final DownloadListener listener = OkDownload.with().callbackDispatcher().dispatch(); verify(listener).downloadFromBeginning(eq(task), eq(info), eq(CONTENT_LENGTH_CHANGED)); }
verify(listener).connectTrialEnd(eq(task), eq(200), eq(headerFields)); dispatcher.dispatch().downloadFromBeginning(task, info, resumeFailedCause); verify(listener).downloadFromBeginning(eq(task), eq(info), eq(resumeFailedCause));
verify(listener).connectTrialEnd(eq(task), eq(200), eq(headerFields)); dispatcher.dispatch().downloadFromBeginning(task, info, resumeFailedCause); verify(listener).downloadFromBeginning(eq(task), eq(info), eq(resumeFailedCause)); verify(transmit).inspectDownloadFromBeginning(eq(task), eq(info), eq(resumeFailedCause));
verify(listener2).connectTrialEnd(eq(task), eq(200), eq(headerFields)); listener.downloadFromBeginning(task, info, resumeFailedCause); listener.downloadFromBeginning(noAttachTask, info, resumeFailedCause); verify(listener1).downloadFromBeginning(eq(task), eq(info), eq(resumeFailedCause)); verify(listener2).downloadFromBeginning(eq(task), eq(info), eq(resumeFailedCause));
.downloadFromBeginning(chain.getTask(), info, CONTENT_LENGTH_CHANGED);