@@ -90,6 +90,7 @@ final class LoadAndDisplayImageTask implements Runnable, IoUtils.CopyListener {
90
90
final DisplayImageOptions options ;
91
91
final ImageLoadingListener listener ;
92
92
final ImageLoadingProgressListener progressListener ;
93
+ private final boolean syncLoading ;
93
94
94
95
// State vars
95
96
private LoadedFrom loadedFrom = LoadedFrom .NETWORK ;
@@ -112,6 +113,7 @@ public LoadAndDisplayImageTask(ImageLoaderEngine engine, ImageLoadingInfo imageL
112
113
options = imageLoadingInfo .options ;
113
114
listener = imageLoadingInfo .listener ;
114
115
progressListener = imageLoadingInfo .progressListener ;
116
+ syncLoading = options .isSyncLoading ();
115
117
}
116
118
117
119
@ Override
@@ -173,7 +175,7 @@ public void run() {
173
175
174
176
DisplayBitmapTask displayBitmapTask = new DisplayBitmapTask (bmp , imageLoadingInfo , engine , loadedFrom );
175
177
displayBitmapTask .setLoggingEnabled (writeLogs );
176
- runTask (displayBitmapTask , options . isSyncLoading () , handler , engine );
178
+ runTask (displayBitmapTask , syncLoading , handler , engine );
177
179
}
178
180
179
181
/** @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
322
324
323
325
@ Override
324
326
public boolean onBytesCopied (int current , int total ) {
325
- return progressListener == null || fireProgressEvent (current , total );
327
+ return fireProgressEvent (current , total );
326
328
}
327
329
328
330
/** @return <b>true</b> - if loading should be continued; <b>false</b> - if loading should be interrupted */
329
331
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
+ }
338
342
return true ;
339
343
}
340
344
341
345
private void fireFailEvent (final FailType failType , final Throwable failCause ) {
342
- if (options . isSyncLoading () || isTaskInterrupted () || isTaskNotActual ()) return ;
346
+ if (syncLoading || isTaskInterrupted () || isTaskNotActual ()) return ;
343
347
Runnable r = new Runnable () {
344
348
@ Override
345
349
public void run () {
@@ -353,7 +357,7 @@ public void run() {
353
357
}
354
358
355
359
private void fireCancelEvent () {
356
- if (options . isSyncLoading () || isTaskInterrupted ()) return ;
360
+ if (syncLoading || isTaskInterrupted ()) return ;
357
361
Runnable r = new Runnable () {
358
362
@ Override
359
363
public void run () {
0 commit comments