diff --git a/litho-core/src/main/java/com/facebook/litho/ComponentContext.java b/litho-core/src/main/java/com/facebook/litho/ComponentContext.java index 10cefcde29..bcc7157afd 100644 --- a/litho-core/src/main/java/com/facebook/litho/ComponentContext.java +++ b/litho-core/src/main/java/com/facebook/litho/ComponentContext.java @@ -37,7 +37,6 @@ import com.facebook.rendercore.LayoutCache; import com.facebook.rendercore.ResourceCache; import com.facebook.rendercore.ResourceResolver; -import com.facebook.rendercore.visibility.VisibilityBoundsTransformer; /** * A Context subclass for use within the Components framework. Contains extra bookkeeping @@ -132,7 +131,7 @@ public ComponentContext( lithoConfiguration != null ? lithoConfiguration : buildDefaultLithoConfiguration( - mContext, ComponentsConfiguration.defaultInstance, null, null); + mContext, ComponentsConfiguration.defaultInstance, null); if (mLithoConfiguration.componentsConfig.componentsLogger != null && mLithoConfiguration.componentsConfig.logTag == null) { @@ -830,11 +829,6 @@ void removePendingStateUpdate(String key, boolean nestedTreeContext) { } } - @Nullable - public VisibilityBoundsTransformer getVisibilityBoundsTransformer() { - return mLithoConfiguration.visibilityBoundsTransformer; - } - static ComponentsConfiguration getComponentsConfig(ComponentContext c) { return c.mLithoConfiguration.componentsConfig; } diff --git a/litho-core/src/main/java/com/facebook/litho/ComponentContextUtils.kt b/litho-core/src/main/java/com/facebook/litho/ComponentContextUtils.kt index 84077c75ee..3e33204ef7 100644 --- a/litho-core/src/main/java/com/facebook/litho/ComponentContextUtils.kt +++ b/litho-core/src/main/java/com/facebook/litho/ComponentContextUtils.kt @@ -18,7 +18,6 @@ package com.facebook.litho import android.content.Context import com.facebook.litho.config.ComponentsConfiguration -import com.facebook.rendercore.visibility.VisibilityBoundsTransformer object ComponentContextUtils { @JvmStatic @@ -26,12 +25,10 @@ object ComponentContextUtils { context: Context, componentsConfig: ComponentsConfiguration = ComponentsConfiguration.defaultInstance, renderUnitIdGenerator: RenderUnitIdGenerator? = null, - transformer: VisibilityBoundsTransformer? = null, ): LithoConfiguration { return LithoConfiguration( componentsConfig = componentsConfig, areTransitionsEnabled = AnimationsDebug.areTransitionsEnabled(context), - renderUnitIdGenerator = renderUnitIdGenerator, - visibilityBoundsTransformer = transformer) + renderUnitIdGenerator = renderUnitIdGenerator) } } diff --git a/litho-core/src/main/java/com/facebook/litho/ComponentTree.java b/litho-core/src/main/java/com/facebook/litho/ComponentTree.java index 0cbb6dc26b..fa808aa988 100644 --- a/litho-core/src/main/java/com/facebook/litho/ComponentTree.java +++ b/litho-core/src/main/java/com/facebook/litho/ComponentTree.java @@ -88,7 +88,6 @@ import com.facebook.rendercore.debug.DebugEventAttribute; import com.facebook.rendercore.debug.DebugEventBus; import com.facebook.rendercore.debug.DebugEventDispatcher; -import com.facebook.rendercore.visibility.VisibilityBoundsTransformer; import java.lang.ref.WeakReference; import java.util.ArrayList; import java.util.Collections; @@ -362,8 +361,7 @@ protected ComponentTree(Builder builder) { new LithoConfiguration( builder.config, AnimationsDebug.areTransitionsEnabled(androidContext), - renderUnitIdGenerator, - builder.visibilityBoundsTransformer); + renderUnitIdGenerator); final StateUpdater stateUpdater = (builder.mStateUpdater != null) ? builder.mStateUpdater : this; @@ -3000,7 +2998,6 @@ public static class Builder { private @Nullable MeasureListener mMeasureListener; private @Nullable LithoVisibilityEventsController lithoVisibilityEventsController; private @Nullable RenderUnitIdGenerator mRenderUnitIdGenerator; - private @Nullable VisibilityBoundsTransformer visibilityBoundsTransformer; private @Nullable final TreePropContainer treePropContainer; private @Nullable final TreePropContainer parentTreePropContainer; @@ -3009,7 +3006,6 @@ public static class Builder { protected Builder(ComponentContext context) { config = context.mLithoConfiguration.componentsConfig; - visibilityBoundsTransformer = context.mLithoConfiguration.visibilityBoundsTransformer; treePropContainer = context.getTreePropContainer(); parentTreePropContainer = context.getParentTreePropContainer(); mAndroidContext = context.getAndroidContext(); @@ -3122,11 +3118,6 @@ public Builder measureListener(@Nullable MeasureListener measureListener) { return this; } - public Builder visibilityBoundsTransformer(@Nullable VisibilityBoundsTransformer transformer) { - visibilityBoundsTransformer = transformer; - return this; - } - public Builder stateUpdater(@Nullable StateUpdater stateUpdater) { mStateUpdater = stateUpdater; return this; diff --git a/litho-core/src/main/java/com/facebook/litho/LayoutState.kt b/litho-core/src/main/java/com/facebook/litho/LayoutState.kt index 78cf16afdb..c550013bae 100644 --- a/litho-core/src/main/java/com/facebook/litho/LayoutState.kt +++ b/litho-core/src/main/java/com/facebook/litho/LayoutState.kt @@ -433,7 +433,7 @@ internal constructor( getMountableOutputAt(output.index) override fun getVisibilityBoundsTransformer(): VisibilityBoundsTransformer? = - componentContext.visibilityBoundsTransformer + componentContext.lithoConfiguration.componentsConfig.visibilityBoundsTransformer companion object { @JvmStatic diff --git a/litho-core/src/main/java/com/facebook/litho/LithoConfiguration.kt b/litho-core/src/main/java/com/facebook/litho/LithoConfiguration.kt index 5a313d0771..69563dbc08 100644 --- a/litho-core/src/main/java/com/facebook/litho/LithoConfiguration.kt +++ b/litho-core/src/main/java/com/facebook/litho/LithoConfiguration.kt @@ -19,14 +19,12 @@ package com.facebook.litho import com.facebook.kotlin.compilerplugins.dataclassgenerate.annotation.DataClassGenerate import com.facebook.kotlin.compilerplugins.dataclassgenerate.annotation.Mode import com.facebook.litho.config.ComponentsConfiguration -import com.facebook.rendercore.visibility.VisibilityBoundsTransformer @DataClassGenerate(toString = Mode.OMIT, equalsHashCode = Mode.OMIT) data class LithoConfiguration( @JvmField val componentsConfig: ComponentsConfiguration, @JvmField val areTransitionsEnabled: Boolean, @JvmField val renderUnitIdGenerator: RenderUnitIdGenerator?, - @JvmField val visibilityBoundsTransformer: VisibilityBoundsTransformer?, ) { val isSpecsDuplicateStateUpdateDetectionEnabled: Boolean diff --git a/litho-core/src/main/java/com/facebook/litho/config/ComponentsConfiguration.kt b/litho-core/src/main/java/com/facebook/litho/config/ComponentsConfiguration.kt index 68f5139422..6ac759c077 100644 --- a/litho-core/src/main/java/com/facebook/litho/config/ComponentsConfiguration.kt +++ b/litho-core/src/main/java/com/facebook/litho/config/ComponentsConfiguration.kt @@ -27,6 +27,7 @@ import com.facebook.litho.ErrorEventHandler import com.facebook.litho.config.ComponentsConfiguration.Builder import com.facebook.litho.perfboost.LithoPerfBoosterFactory import com.facebook.rendercore.incrementalmount.IncrementalMountExtensionConfigs +import com.facebook.rendercore.visibility.VisibilityBoundsTransformer /** * These values are safe defaults and should not require manual changes. @@ -166,7 +167,8 @@ internal constructor( * @see [com.facebok.litho.widget.RecyclerSpec] * @see [com.facebook.litho.widget.RecyclerLayoutBehavior] */ - @JvmField val measureRecyclerWithPadding: Boolean = false + @JvmField val measureRecyclerWithPadding: Boolean = false, + @JvmField val visibilityBoundsTransformer: VisibilityBoundsTransformer? = null ) { val shouldAddRootHostViewOrDisableBgFgOutputs: Boolean = @@ -350,6 +352,7 @@ internal constructor( private var enableFixForIM = baseConfig.enableFixForIM private var enableLifecycleOwnerWrapper = baseConfig.enableLifecycleOwnerWrapper private var measureRecyclerWithPadding = baseConfig.measureRecyclerWithPadding + private var visibilityBoundsTransformer = baseConfig.visibilityBoundsTransformer fun shouldNotifyVisibleBoundsChangeWhenNestedLithoViewBecomesInvisible( enabled: Boolean @@ -462,6 +465,10 @@ internal constructor( measureRecyclerWithPadding = enabled } + fun visibilityBoundsTransformer(transformer: VisibilityBoundsTransformer?): Builder = also { + visibilityBoundsTransformer = transformer + } + fun build(): ComponentsConfiguration { return baseConfig.copy( specsApiStateUpdateDuplicateDetectionEnabled = @@ -499,7 +506,8 @@ internal constructor( useDefaultItemAnimatorInLazyCollections = useDefaultItemAnimatorInLazyCollections, enableFixForIM = enableFixForIM, enableLifecycleOwnerWrapper = enableLifecycleOwnerWrapper, - measureRecyclerWithPadding = measureRecyclerWithPadding) + measureRecyclerWithPadding = measureRecyclerWithPadding, + visibilityBoundsTransformer = visibilityBoundsTransformer) } } }