@@ -138,7 +138,8 @@ public Bitmap downloadBitmap(String uri, BitmapDisplayConfig config, final Bitma
138
138
139
139
try {
140
140
141
- // download to disk
141
+ Bitmap bitmap = null ;
142
+ // try download to disk
142
143
if (globalConfig .isDiskCacheEnabled ()) {
143
144
synchronized (mDiskCacheLock ) {
144
145
// Wait for disk cache to initialize
@@ -169,6 +170,11 @@ public Bitmap downloadBitmap(String uri, BitmapDisplayConfig config, final Bitma
169
170
}
170
171
if (snapshot != null ) {
171
172
bitmapMeta .inputStream = snapshot .getInputStream (DISK_CACHE_INDEX );
173
+ bitmap = decodeBitmapMeta (bitmapMeta , config );
174
+ if (bitmap == null ) {
175
+ bitmapMeta .inputStream = null ;
176
+ mDiskLruCache .remove (uri );
177
+ }
172
178
}
173
179
} catch (Throwable e ) {
174
180
LogUtils .e (e .getMessage (), e );
@@ -177,20 +183,22 @@ public Bitmap downloadBitmap(String uri, BitmapDisplayConfig config, final Bitma
177
183
}
178
184
}
179
185
180
- // download to memory stream
181
- if (! globalConfig . isDiskCacheEnabled () || mDiskLruCache == null || bitmapMeta . inputStream == null ) {
186
+ // try download to memory stream
187
+ if (bitmap == null ) {
182
188
outputStream = new ByteArrayOutputStream ();
183
189
bitmapMeta .expiryTimestamp = globalConfig .getDownloader ().downloadToStream (uri , outputStream , task );
184
190
if (bitmapMeta .expiryTimestamp < 0 ) {
185
191
return null ;
186
192
} else {
187
193
bitmapMeta .data = ((ByteArrayOutputStream ) outputStream ).toByteArray ();
194
+ bitmap = decodeBitmapMeta (bitmapMeta , config );
188
195
}
189
196
}
190
197
191
- Bitmap bitmap = decodeBitmapMeta (bitmapMeta , config );
192
- bitmap = rotateBitmapIfNeeded (uri , config , bitmap );
193
- addBitmapToMemoryCache (uri , config , bitmap , bitmapMeta .expiryTimestamp );
198
+ if (bitmap != null ) {
199
+ bitmap = rotateBitmapIfNeeded (uri , config , bitmap );
200
+ addBitmapToMemoryCache (uri , config , bitmap , bitmapMeta .expiryTimestamp );
201
+ }
194
202
return bitmap ;
195
203
} catch (Throwable e ) {
196
204
LogUtils .e (e .getMessage (), e );
0 commit comments