diff --git a/ReactAndroid/src/main/java/com/facebook/react/config/ReactFeatureFlags.java b/ReactAndroid/src/main/java/com/facebook/react/config/ReactFeatureFlags.java index 4fd59de5c28..67458f72c04 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/config/ReactFeatureFlags.java +++ b/ReactAndroid/src/main/java/com/facebook/react/config/ReactFeatureFlags.java @@ -47,4 +47,11 @@ public class ReactFeatureFlags { * This feature flag enables logs for Fabric */ public static boolean enableFabricLogs = false; + + /** + * Should this application use a {@link com.facebook.react.uimanager.ViewManagerDelegate} (if + * provided) to update the view properties. If {@code false}, then the generated {@code + * ...$$PropsSetter} class will be used instead. + */ + public static boolean useViewManagerDelegates = false; } diff --git a/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManager.java b/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManager.java index 8f894dea57b..547260dfc41 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManager.java +++ b/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManager.java @@ -14,6 +14,7 @@ import com.facebook.react.bridge.BaseJavaModule; import com.facebook.react.bridge.ReactApplicationContext; import com.facebook.react.bridge.ReadableArray; import com.facebook.react.bridge.ReadableMap; +import com.facebook.react.config.ReactFeatureFlags; import com.facebook.react.touch.JSResponderHandler; import com.facebook.react.touch.ReactInterceptingViewGroup; import com.facebook.react.uimanager.annotations.ReactProp; @@ -40,8 +41,8 @@ public abstract class ViewManager * @param stateWrapper */ public void updateProperties(@NonNull T viewToUpdate, ReactStylesDiffMap props) { - final ViewManagerDelegate delegate = getDelegate(); - if (delegate != null) { + final ViewManagerDelegate delegate; + if (ReactFeatureFlags.useViewManagerDelegates && (delegate = getDelegate()) != null) { ViewManagerPropertyUpdater.updateProps(delegate, viewToUpdate, props); } else { ViewManagerPropertyUpdater.updateProps(this, viewToUpdate, props);