Skip to content

Commit

Permalink
Update smart fetch logging
Browse files Browse the repository at this point in the history
Differential Revision: D53005948

fbshipit-source-id: 4c4dfb1bbb6a4b7aec1720afae5c8018baf67e89
  • Loading branch information
Artem Kholodnyi authored and facebook-github-bot committed Jan 24, 2024
1 parent 876a337 commit f5f3b41
Show file tree
Hide file tree
Showing 3 changed files with 37 additions and 10 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,9 @@ import android.net.Uri
import com.facebook.drawee.drawable.ScalingUtils

object NopUriModifier : UriModifierInterface {
override fun modifyUri(uri: Uri, viewport: Dimensions?, scaleType: ScalingUtils.ScaleType): Uri =
uri
override fun modifyUri(
uri: Uri,
viewport: Dimensions?,
scaleType: ScalingUtils.ScaleType?
): UriModifierInterface.ModificationResult = UriModifierInterface.ModificationResult.Disabled
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,29 @@ package com.facebook.fresco.urimod
import android.net.Uri
import com.facebook.drawee.drawable.ScalingUtils.ScaleType

const val NOT_MODIFIED_DISABLED: String = "Smart fetch is disabled"

interface UriModifierInterface {
fun modifyUri(uri: Uri, viewport: Dimensions?, scaleType: ScaleType): Uri

fun modifyUri(uri: Uri, viewport: Dimensions?, scaleType: ScaleType?): ModificationResult

sealed class ModificationResult {
object Disabled : ModificationResult() {
override fun toString(): String {
return "Disabled"
}
}

class Modified(val newUri: Uri) : ModificationResult() {
override fun toString(): String {
return "Modified"
}
}

class Unmodified(val reason: String) : ModificationResult() {
override fun toString(): String {
return "Unmodified(reason='$reason')"
}
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ import com.facebook.fresco.middleware.HasExtraData
import com.facebook.fresco.ui.common.VitoUtils
import com.facebook.fresco.urimod.Dimensions
import com.facebook.fresco.urimod.UriModifier
import com.facebook.fresco.urimod.UriModifierInterface
import com.facebook.fresco.vito.core.ImagePipelineUtils
import com.facebook.fresco.vito.core.VitoImagePipeline
import com.facebook.fresco.vito.core.VitoImageRequest
Expand Down Expand Up @@ -46,16 +47,16 @@ class VitoImagePipelineImpl(
val extras: MutableMap<String, Any?> = mutableMapOf()
var finalImageSource = imageSource
if (imageSource is SingleImageSource) {
val uri = imageSource.uri
val maybeModifiedUri =
val result: UriModifierInterface.ModificationResult =
UriModifier.INSTANCE.modifyUri(
uri,
imageSource.uri,
viewport?.let { Dimensions(it.width(), it.height()) },
imageOptions.actualImageScaleType)

if (maybeModifiedUri != uri) {
extras[HasExtraData.KEY_MODIFIED_URL] = true
finalImageSource = ImageSourceProvider.forUri(maybeModifiedUri)
if (result !is UriModifierInterface.ModificationResult.Disabled) {
extras[HasExtraData.KEY_MODIFIED_URL] = result.toString()
}
if (result is UriModifierInterface.ModificationResult.Modified) {
finalImageSource = ImageSourceProvider.forUri(result.newUri)
}
if (imageSource.extras != null) {
extras[HasExtraData.KEY_IMAGE_SOURCE_EXTRAS] = imageSource.extras
Expand Down

0 comments on commit f5f3b41

Please sign in to comment.