1package com.bumptech.glide.request; 2 3/** 4 * A coordinator that coordinates two individual {@link Request}s that load a small thumbnail version of an image and 5 * the full size version of the image at the same time. 6 */ 7public class ThumbnailRequestCoordinator implements RequestCoordinator, Request { 8 private Request full; 9 private Request thumb; 10 11 public void setRequests(Request full, Request thumb) { 12 this.full = full; 13 this.thumb = thumb; 14 } 15 16 @Override 17 public boolean canSetImage(Request request) { 18 return request == full || !full.isComplete(); 19 } 20 21 @Override 22 public boolean canSetPlaceholder(Request request) { 23 return request == full && !isAnyRequestComplete(); 24 } 25 26 @Override 27 public boolean isAnyRequestComplete() { 28 return full.isComplete() || thumb.isComplete(); 29 } 30 31 @Override 32 public void run() { 33 if (!thumb.isRunning()) { 34 thumb.run(); 35 } 36 if (!full.isRunning()) { 37 full.run(); 38 } 39 } 40 41 @Override 42 public void clear() { 43 full.clear(); 44 thumb.clear(); 45 } 46 47 @Override 48 public boolean isRunning() { 49 return full.isRunning(); 50 } 51 52 @Override 53 public boolean isComplete() { 54 return full.isComplete(); 55 } 56 57 @Override 58 public boolean isFailed() { 59 return full.isFailed(); 60 } 61 62 @Override 63 public void recycle() { 64 full.recycle(); 65 thumb.recycle(); 66 } 67} 68