diff --git a/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIImplementation.java b/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIImplementation.java index 95ca85c9a..58d83f594 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIImplementation.java +++ b/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIImplementation.java @@ -8,11 +8,6 @@ */ package com.facebook.react.uimanager; -import javax.annotation.Nullable; - -import java.util.Arrays; -import java.util.List; - import com.facebook.common.logging.FLog; import com.facebook.infer.annotation.Assertions; import com.facebook.react.animation.Animation; @@ -30,6 +25,9 @@ import com.facebook.react.uimanager.events.EventDispatcher; import com.facebook.systrace.Systrace; import com.facebook.systrace.SystraceMessage; import com.facebook.yoga.YogaDirection; +import java.util.Arrays; +import java.util.List; +import javax.annotation.Nullable; /** * An class that is used to receive React commands from JS and translate them into a @@ -92,7 +90,7 @@ public class UIImplementation { protected ReactShadowNode createShadowNode(String className) { ViewManager viewManager = mViewManagers.get(className); - return viewManager.createShadowNodeInstance(); + return viewManager.createShadowNodeInstance(mReactContext); } protected final ReactShadowNode resolveShadowNode(int reactTag) { 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 7222e3b0e..1d69fad8a 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManager.java +++ b/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManager.java @@ -9,19 +9,17 @@ package com.facebook.react.uimanager; -import javax.annotation.Nullable; - -import java.util.Map; - import android.view.View; - import com.facebook.react.bridge.BaseJavaModule; +import com.facebook.react.bridge.ReactApplicationContext; import com.facebook.react.bridge.ReadableArray; import com.facebook.react.touch.JSResponderHandler; import com.facebook.react.touch.ReactInterceptingViewGroup; import com.facebook.react.uimanager.annotations.ReactProp; import com.facebook.react.uimanager.annotations.ReactPropGroup; import com.facebook.react.uimanager.annotations.ReactPropertyHolder; +import java.util.Map; +import javax.annotation.Nullable; /** * Class responsible for knowing how to create and update catalyst Views of a given type. It is also @@ -62,7 +60,13 @@ public abstract class ViewManager * measuring position and size of the view. In mose of the cases this should just return an * instance of {@link ReactShadowNode} */ - public abstract C createShadowNodeInstance(); + public C createShadowNodeInstance() { + throw new RuntimeException("ViewManager subclasses must implement createShadowNodeInstance()"); + } + + public C createShadowNodeInstance(ReactApplicationContext context) { + return createShadowNodeInstance(); + } /** * This method should return {@link Class} instance that represent type of shadow node that this