@Override
 protected void onSuccess(T result) {
   mProducerListener.onProducerFinishWithSuccess(
       mRequestId,
       mProducerName,
       mProducerListener.requiresExtraMap(mRequestId) ? getExtraMapOnSuccess(result) : null);
   mConsumer.onNewResult(result, true);
 }
 @Override
 public Void answer(InvocationOnMock invocation) throws Throwable {
   Consumer consumer = (Consumer) invocation.getArguments()[0];
   Iterator<EncodedImage> iterator = mResults.iterator();
   while (iterator.hasNext()) {
     EncodedImage result = iterator.next();
     consumer.onNewResult(result, !iterator.hasNext());
   }
   return null;
 }
 protected void onNewResultImpl(EncodedImage encodedimage, boolean flag) {
   ImageRequest imagerequest = mProducerContext.getImageRequest();
   boolean flag2 = isResultGoodEnough(encodedimage, imagerequest);
   if (encodedimage != null && (flag2 || imagerequest.getLocalThumbnailPreviewsEnabled())) {
     Consumer consumer = getConsumer();
     boolean flag1;
     if (flag && flag2) {
       flag1 = true;
     } else {
       flag1 = false;
     }
     consumer.onNewResult(encodedimage, flag1);
   }
   if (flag && !flag2) {
     mNextProducer2.produceResults(getConsumer(), mProducerContext);
   }
 }
 @Override
 public Void answer(InvocationOnMock invocation) throws Throwable {
   Consumer consumer = (Consumer) invocation.getArguments()[0];
   consumer.onNewResult(mResult, true);
   return null;
 }