/** * Clear out any inject and prefetch requests that are already loaded. Only * remove items from the head of each queue; any stale entries later in the * queue will be removed later. */ private void clearRequestsAlreadyLoaded() { while (requestedExclusives.size() > 0 && isLoaded[requestedExclusives.peek()]) { int offset = requestedExclusives.remove(); if (offset < pendingDownloadErrorHandlers.length) { pendingDownloadErrorHandlers[offset] = null; } } if (prefetchQueue != null) { while (prefetchQueue.size() > 0 && isLoaded[prefetchQueue.peek()]) { prefetchQueue.remove(); } } }
/** * Inform the loader that a fragment has now finished loading. */ void fragmentHasLoaded(int fragment) { logFragmentLoaded(fragment); if (fragment < pendingDownloadErrorHandlers.length) { pendingDownloadErrorHandlers[fragment] = null; } if (isInitial(fragment)) { assert (fragment == remainingInitialFragments.peek()); remainingInitialFragments.remove(); } assert (fragment == fragmentLoading); fragmentLoading = -1; assert !isLoaded[fragment]; isLoaded[fragment] = true; startLoadingNextFragment(); }
/** * Clear out any inject and prefetch requests that are already loaded. Only * remove items from the head of each queue; any stale entries later in the * queue will be removed later. */ private void clearRequestsAlreadyLoaded() { while (requestedExclusives.size() > 0 && isLoaded[requestedExclusives.peek()]) { int offset = requestedExclusives.remove(); if (offset < pendingDownloadErrorHandlers.length) { pendingDownloadErrorHandlers[offset] = null; } } if (prefetchQueue != null) { while (prefetchQueue.size() > 0 && isLoaded[prefetchQueue.peek()]) { prefetchQueue.remove(); } } }
/** * Inform the loader that a fragment has now finished loading. */ void fragmentHasLoaded(int fragment) { logFragmentLoaded(fragment); if (fragment < pendingDownloadErrorHandlers.length) { pendingDownloadErrorHandlers[fragment] = null; } if (isInitial(fragment)) { assert (fragment == remainingInitialFragments.peek()); remainingInitialFragments.remove(); } assert (fragment == fragmentLoading); fragmentLoading = -1; assert !isLoaded[fragment]; isLoaded[fragment] = true; startLoadingNextFragment(); }
/** * Inform the loader that a fragment has now finished loading. */ void fragmentHasLoaded(int fragment) { logFragmentLoaded(fragment); if (fragment < pendingDownloadErrorHandlers.length) { pendingDownloadErrorHandlers[fragment] = null; } /** * It is possible for a fragment to be preloaded by the linker or server before runAsync() has * requested it, in this case the leftovers fragment will be have it's onLoad() called before * remainingInitialFragments has been initialized. */ if (isInitial(fragment) && remainingInitialFragments != null) { assert (fragment == remainingInitialFragments.peek()); remainingInitialFragments.remove(); } assert (fragment == fragmentLoading); fragmentLoading = -1; assert !isLoaded[fragment]; isLoaded[fragment] = true; startLoadingNextFragment(); }
/** * Clear out any inject and prefetch requests that are already loaded. Only * remove items from the head of each queue; any stale entries later in the * queue will be removed later. */ private void clearRequestsAlreadyLoaded() { while (requestedExclusives.size() > 0 && isLoaded[requestedExclusives.peek()]) { int offset = requestedExclusives.remove(); if (offset < pendingDownloadErrorHandlers.length) { pendingDownloadErrorHandlers[offset] = null; } } if (prefetchQueue != null) { while (prefetchQueue.size() > 0 && isLoaded[prefetchQueue.peek()]) { prefetchQueue.remove(); } } }