diff --git a/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/MountingManager.java b/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/MountingManager.java index 848861b3356..a8695b84013 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/MountingManager.java +++ b/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/MountingManager.java @@ -210,7 +210,7 @@ public class MountingManager { componentName, propsDiffMap, stateWrapper, themedReactContext); view.setId(reactTag); if (stateWrapper != null) { - viewManager.updateState(view, stateWrapper); + viewManager.updateState(view, propsDiffMap, stateWrapper); } } @@ -325,7 +325,11 @@ public class MountingManager { if (viewManager == null) { throw new IllegalStateException("Unable to find ViewManager for tag: " + reactTag); } - viewManager.updateState(viewState.mView, stateWrapper); + Object extraData = + viewManager.updateState(viewState.mView, viewState.mCurrentProps, stateWrapper); + if (extraData != null) { + viewManager.updateExtraData(viewState.mView, extraData); + } } @UiThread 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 d422598ffb8..d42e47e8c9c 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManager.java +++ b/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManager.java @@ -252,7 +252,10 @@ public abstract class ViewManager * Subclasses can implement this method to receive state updates shared between all instances of * this component type. */ - public void updateState(@Nonnull T view, StateWrapper stateWrapper) {} + public @Nullable Object updateState( + @Nonnull T view, ReactStylesDiffMap props, StateWrapper stateWrapper) { + return null; + } public long measure( Context context, diff --git a/ReactAndroid/src/main/java/com/facebook/react/views/modal/ReactModalHostManager.java b/ReactAndroid/src/main/java/com/facebook/react/views/modal/ReactModalHostManager.java index cd9d812f69e..7c5d696144a 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/views/modal/ReactModalHostManager.java +++ b/ReactAndroid/src/main/java/com/facebook/react/views/modal/ReactModalHostManager.java @@ -11,6 +11,7 @@ import android.graphics.Point; import com.facebook.react.common.MapBuilder; import com.facebook.react.module.annotations.ReactModule; import com.facebook.react.uimanager.LayoutShadowNode; +import com.facebook.react.uimanager.ReactStylesDiffMap; import com.facebook.react.uimanager.StateWrapper; import com.facebook.react.uimanager.ThemedReactContext; import com.facebook.react.uimanager.UIManagerModule; @@ -101,8 +102,10 @@ public class ReactModalHostManager extends ViewGroupManager } @Override - public void updateState(ReactModalHostView view, StateWrapper stateWrapper) { + public Object updateState( + ReactModalHostView view, ReactStylesDiffMap props, StateWrapper stateWrapper) { Point modalSize = ModalHostHelper.getModalHostSize(view.getContext()); view.updateState(stateWrapper, modalSize.x, modalSize.y); + return null; } }