@Override public void taskStart(@NonNull DownloadTask task) { for (DownloadListener listener : listenerList) { listener.taskStart(task); } }
@Override public void taskStart(@NonNull DownloadTask task) { final DownloadListener[] listeners = getThreadSafeArray(task, realListenerMap); if (listeners == null) return; for (final DownloadListener realOne : listeners) { if (realOne == null) continue; realOne.taskStart(task); } }
@Override public void run() { task.getListener().taskStart(task); } });
@Override public void taskStart(@NonNull final DownloadTask task) { Util.d(TAG, "taskStart: " + task.getId()); inspectTaskStart(task); if (task.isAutoCallbackToUIThread()) { uiHandler.post(new Runnable() { @Override public void run() { task.getListener().taskStart(task); } }); } else { task.getListener().taskStart(task); } }
private void inspectTaskStart() { store.onTaskStart(task.getId()); OkDownload.with().callbackDispatcher().dispatch().taskStart(task); }
@Test public void execute_preconditionFailedMaxTimes() throws InterruptedException, IOException { final CallbackDispatcher dispatcher = OkDownload.with().callbackDispatcher(); final DownloadCache cache = mock(DownloadCache.class); doReturn(cache).when(call).createCache(eq(info)); doNothing().when(call).start(eq(cache), eq(info)); doReturn(mock(BreakpointRemoteCheck.class)).when(call).createRemoteCheck(eq(info)); doReturn(mock(BreakpointLocalCheck.class)).when(call).createLocalCheck(eq(info), anyLong()); doReturn(mock(DownloadListener.class)).when(dispatcher).dispatch(); when(cache.isPreconditionFailed()).thenReturn(true); call.execute(); verify(call, times(DownloadCall.MAX_COUNT_RETRY_FOR_PRECONDITION_FAILED + 1)).start( eq(cache), eq(info)); // only once. final DownloadListener listener = OkDownload.with().callbackDispatcher().dispatch(); verify(listener).taskStart(eq(task)); }