override fun updateDecodeJob()

in imagepipeline/src/main/java/com/facebook/imagepipeline/producers/DecodeProducer.kt [454:483]


    override fun updateDecodeJob(
        encodedImage: EncodedImage?,
        @Consumer.Status status: Int
    ): Boolean {
      if (encodedImage == null) {
        return false
      }
      val ret = super.updateDecodeJob(encodedImage, status)
      if ((isNotLast(status) || statusHasFlag(status, IS_PARTIAL_RESULT)) &&
          !statusHasFlag(status, IS_PLACEHOLDER) &&
          EncodedImage.isValid(encodedImage) &&
          encodedImage.imageFormat === DefaultImageFormats.JPEG) {
        if (!this.progressiveJpegParser.parseMoreData(encodedImage)) {
          return false
        }
        val scanNum = this.progressiveJpegParser.bestScanNumber
        if (scanNum <= lastScheduledScanNumber) {
          // We have already decoded this scan, no need to do so again
          return false
        }
        if (scanNum < progressiveJpegConfig.getNextScanNumberToDecode(lastScheduledScanNumber) &&
            !this.progressiveJpegParser.isEndMarkerRead) {
          // We have not reached the minimum scan set by the configuration and there
          // are still more scans to be read (the end marker is not reached)
          return false
        }
        lastScheduledScanNumber = scanNum
      }
      return ret
    }