Skip to content

Commit d7cfdaa

Browse files
committedFeb 19, 2014
Always interrupt not actual downloads (even without progressListener)
1 parent 0e2315c commit d7cfdaa

File tree

1 file changed

+16
-12
lines changed

1 file changed

+16
-12
lines changed
 

‎library/src/com/nostra13/universalimageloader/core/LoadAndDisplayImageTask.java

+16-12
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,7 @@ final class LoadAndDisplayImageTask implements Runnable, IoUtils.CopyListener {
9090
final DisplayImageOptions options;
9191
final ImageLoadingListener listener;
9292
final ImageLoadingProgressListener progressListener;
93+
private final boolean syncLoading;
9394

9495
// State vars
9596
private LoadedFrom loadedFrom = LoadedFrom.NETWORK;
@@ -112,6 +113,7 @@ public LoadAndDisplayImageTask(ImageLoaderEngine engine, ImageLoadingInfo imageL
112113
options = imageLoadingInfo.options;
113114
listener = imageLoadingInfo.listener;
114115
progressListener = imageLoadingInfo.progressListener;
116+
syncLoading = options.isSyncLoading();
115117
}
116118

117119
@Override
@@ -173,7 +175,7 @@ public void run() {
173175

174176
DisplayBitmapTask displayBitmapTask = new DisplayBitmapTask(bmp, imageLoadingInfo, engine, loadedFrom);
175177
displayBitmapTask.setLoggingEnabled(writeLogs);
176-
runTask(displayBitmapTask, options.isSyncLoading(), handler, engine);
178+
runTask(displayBitmapTask, syncLoading, handler, engine);
177179
}
178180

179181
/** @return <b>true</b> - if task should be interrupted; <b>false</b> - otherwise */
@@ -322,24 +324,26 @@ private boolean resizeAndSaveImage(int maxWidth, int maxHeight) throws IOExcepti
322324

323325
@Override
324326
public boolean onBytesCopied(int current, int total) {
325-
return progressListener == null || fireProgressEvent(current, total);
327+
return fireProgressEvent(current, total);
326328
}
327329

328330
/** @return <b>true</b> - if loading should be continued; <b>false</b> - if loading should be interrupted */
329331
private boolean fireProgressEvent(final int current, final int total) {
330-
if (options.isSyncLoading() || isTaskInterrupted() || isTaskNotActual()) return false;
331-
Runnable r = new Runnable() {
332-
@Override
333-
public void run() {
334-
progressListener.onProgressUpdate(uri, imageAware.getWrappedView(), current, total);
335-
}
336-
};
337-
runTask(r, false, handler, engine);
332+
if (syncLoading || isTaskInterrupted() || isTaskNotActual()) return false;
333+
if (progressListener != null) {
334+
Runnable r = new Runnable() {
335+
@Override
336+
public void run() {
337+
progressListener.onProgressUpdate(uri, imageAware.getWrappedView(), current, total);
338+
}
339+
};
340+
runTask(r, false, handler, engine);
341+
}
338342
return true;
339343
}
340344

341345
private void fireFailEvent(final FailType failType, final Throwable failCause) {
342-
if (options.isSyncLoading() || isTaskInterrupted() || isTaskNotActual()) return;
346+
if (syncLoading || isTaskInterrupted() || isTaskNotActual()) return;
343347
Runnable r = new Runnable() {
344348
@Override
345349
public void run() {
@@ -353,7 +357,7 @@ public void run() {
353357
}
354358

355359
private void fireCancelEvent() {
356-
if (options.isSyncLoading() || isTaskInterrupted()) return;
360+
if (syncLoading || isTaskInterrupted()) return;
357361
Runnable r = new Runnable() {
358362
@Override
359363
public void run() {

0 commit comments

Comments
 (0)
Please sign in to comment.