File tree Expand file tree Collapse file tree 2 files changed +16
-0
lines changed
main/java/com/squareup/picasso
test/java/com/squareup/picasso Expand file tree Collapse file tree 2 files changed +16
-0
lines changed Original file line number Diff line number Diff line change @@ -477,6 +477,10 @@ Request transformRequest(Request request) {
477
477
}
478
478
479
479
void defer (ImageView view , DeferredRequestCreator request ) {
480
+ // If there is already a deferred request, cancel it.
481
+ if (targetToDeferredRequestCreator .containsKey (view )) {
482
+ cancelExistingRequest (view );
483
+ }
480
484
targetToDeferredRequestCreator .put (view , request );
481
485
}
482
486
Original file line number Diff line number Diff line change @@ -235,6 +235,18 @@ public class PicassoTest {
235
235
assertThat (picasso .targetToDeferredRequestCreator ).isEmpty ();
236
236
}
237
237
238
+ @ Test public void enqueueingDeferredRequestCancelsThePreviousOne () throws Exception {
239
+ ImageView target = mockImageViewTarget ();
240
+ DeferredRequestCreator firstRequestCreator = mockDeferredRequestCreator ();
241
+ picasso .defer (target , firstRequestCreator );
242
+ assertThat (picasso .targetToDeferredRequestCreator ).containsKey (target );
243
+
244
+ DeferredRequestCreator secondRequestCreator = mockDeferredRequestCreator ();
245
+ picasso .defer (target , secondRequestCreator );
246
+ verify (firstRequestCreator ).cancel ();
247
+ assertThat (picasso .targetToDeferredRequestCreator ).containsKey (target );
248
+ }
249
+
238
250
@ Test public void cancelExistingRequestWithTarget () {
239
251
Target target = mockTarget ();
240
252
Action action = mockAction (URI_KEY_1 , URI_1 , target );
You can’t perform that action at this time.
0 commit comments