Skip to content

Commit 2535bb3

Browse files
refinedatafacebook-github-bot
authored andcommitted
Add optional timeout when checking disk cache in Vito for SF
Reviewed By: oprisnik Differential Revision: D65206058 fbshipit-source-id: 0542c62a43f9f196487d3794fbec2d3029e0af72
1 parent c06fc9f commit 2535bb3

4 files changed

Lines changed: 13 additions & 1 deletion

File tree

‎vito/core-java-impl/src/main/java/com/facebook/fresco/vito/core/impl/VitoImagePipelineImpl.kt‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,9 @@ class VitoImagePipelineImpl(
151151
timeout: Long,
152152
unit: TimeUnit
153153
): Boolean {
154+
if (timeout <= 0) {
155+
return isInDiskCacheSync(vitoImageRequest)
156+
}
154157
val imageRequest = vitoImageRequest.finalImageRequest ?: return false
155158
return try {
156159
DataSources.waitForFinalResult(imagePipeline.isInDiskCache(imageRequest), timeout, unit)

‎vito/core/src/main/java/com/facebook/fresco/vito/core/DefaultFrescoVitoConfig.kt‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,8 @@ constructor(override val prefetchConfig: PrefetchConfig = DefaultPrefetchConfig(
4545

4646
override fun experimentalDynamicSizeOnPrepareMainThreadVito2(): Boolean = false
4747

48+
override fun experimentalDynamicSizeDiskCacheCheckTimeoutMs(): Long = 0
49+
4850
open class DefaultPrefetchConfig : PrefetchConfig {
4951
override fun prefetchInOnPrepare(): Boolean = true
5052

‎vito/core/src/main/java/com/facebook/fresco/vito/core/FrescoVitoConfig.kt‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,4 +41,6 @@ interface FrescoVitoConfig {
4141
fun experimentalDynamicSizeWithCacheFallbackVito2(): Boolean
4242

4343
fun experimentalDynamicSizeOnPrepareMainThreadVito2(): Boolean
44+
45+
fun experimentalDynamicSizeDiskCacheCheckTimeoutMs(): Long
4446
}

‎vito/litho/src/main/java/com/facebook/fresco/vito/litho/FrescoVitoImage2Spec.kt‎

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ import com.facebook.litho.annotations.ShouldExcludeFromIncrementalMount
5959
import com.facebook.litho.annotations.ShouldUpdate
6060
import com.facebook.litho.annotations.TreeProp
6161
import com.facebook.litho.utils.MeasureUtils
62+
import java.util.concurrent.TimeUnit
6263

6364
/** Fresco Vito component for Litho */
6465
@MountSpec(isPureRender = true, canPreallocate = true, poolSize = 15)
@@ -171,7 +172,11 @@ object FrescoVitoImage2Spec {
171172
forceKeepOriginalSize.set(!experimentalDynamicSizeOnPrepareMainThreadVito2())
172173
} else {
173174
forceKeepOriginalSize.set(
174-
FrescoVitoProvider.getImagePipeline().isInDiskCacheSync(requestCachedValue))
175+
FrescoVitoProvider.getImagePipeline()
176+
.isInDiskCacheSync(
177+
requestCachedValue,
178+
FrescoVitoProvider.getConfig().experimentalDynamicSizeDiskCacheCheckTimeoutMs(),
179+
TimeUnit.MILLISECONDS))
175180
}
176181
if (forceKeepOriginalSize.get() == true) {
177182
// Prefetch in OnPrepare since no prefetch will happen in OnBoundsDefined

0 commit comments

Comments
 (0)