@@ -76,6 +76,7 @@ class DecodeJob<R>
76
76
private volatile DataFetcherGenerator currentGenerator ;
77
77
private volatile boolean isCallbackNotified ;
78
78
private volatile boolean isCancelled ;
79
+ private boolean isLoadingFromAlternateCacheKey ;
79
80
80
81
DecodeJob (DiskCacheProvider diskCacheProvider , Pools .Pool <DecodeJob <?>> pool ) {
81
82
this .diskCacheProvider = diskCacheProvider ;
@@ -332,9 +333,10 @@ private void notifyFailed() {
332
333
onLoadFailed ();
333
334
}
334
335
335
- private void notifyComplete (Resource <R > resource , DataSource dataSource ) {
336
+ private void notifyComplete (
337
+ Resource <R > resource , DataSource dataSource , boolean isLoadedFromAlternateCacheKey ) {
336
338
setNotifiedOrThrow ();
337
- callback .onResourceReady (resource , dataSource );
339
+ callback .onResourceReady (resource , dataSource , isLoadedFromAlternateCacheKey );
338
340
}
339
341
340
342
private void setNotifiedOrThrow () {
@@ -381,6 +383,8 @@ public void onDataFetcherReady(
381
383
this .currentFetcher = fetcher ;
382
384
this .currentDataSource = dataSource ;
383
385
this .currentAttemptingKey = attemptedKey ;
386
+ this .isLoadingFromAlternateCacheKey = sourceKey != decodeHelper .getCacheKeys ().get (0 );
387
+
384
388
if (Thread .currentThread () != currentThread ) {
385
389
runReason = RunReason .DECODE_DATA ;
386
390
callback .reschedule (this );
@@ -429,13 +433,14 @@ private void decodeFromRetrievedData() {
429
433
throwables .add (e );
430
434
}
431
435
if (resource != null ) {
432
- notifyEncodeAndRelease (resource , currentDataSource );
436
+ notifyEncodeAndRelease (resource , currentDataSource , isLoadingFromAlternateCacheKey );
433
437
} else {
434
438
runGenerators ();
435
439
}
436
440
}
437
441
438
- private void notifyEncodeAndRelease (Resource <R > resource , DataSource dataSource ) {
442
+ private void notifyEncodeAndRelease (
443
+ Resource <R > resource , DataSource dataSource , boolean isLoadedFromAlternateCacheKey ) {
439
444
if (resource instanceof Initializable ) {
440
445
((Initializable ) resource ).initialize ();
441
446
}
@@ -447,7 +452,7 @@ private void notifyEncodeAndRelease(Resource<R> resource, DataSource dataSource)
447
452
result = lockedResource ;
448
453
}
449
454
450
- notifyComplete (result , dataSource );
455
+ notifyComplete (result , dataSource , isLoadedFromAlternateCacheKey );
451
456
452
457
stage = Stage .ENCODE ;
453
458
try {
@@ -710,7 +715,8 @@ void clear() {
710
715
711
716
interface Callback <R > {
712
717
713
- void onResourceReady (Resource <R > resource , DataSource dataSource );
718
+ void onResourceReady (
719
+ Resource <R > resource , DataSource dataSource , boolean isLoadedFromAlternateCacheKey );
714
720
715
721
void onLoadFailed (GlideException e );
716
722
0 commit comments