diff --git a/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactShadowNode.java b/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactShadowNode.java index 75ae4fb8ac0..dbf64b1355b 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactShadowNode.java +++ b/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactShadowNode.java @@ -365,4 +365,12 @@ public interface ReactShadowNode { * {@link ReactShadowNode}. */ List getChildrenList(); + + /** + * @return the {@link ReactShadowNode} that was used during the cloning mechanism to create + * this {@link ReactShadowNode} or null if this object was not created using a clone operation. + */ + @Nullable ReactShadowNode getOriginalReactShadowNode(); + + void setOriginalReactShadowNode(@Nullable ReactShadowNode node); } diff --git a/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactShadowNodeImpl.java b/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactShadowNodeImpl.java index 7673c45236f..d097842e4e1 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactShadowNodeImpl.java +++ b/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactShadowNodeImpl.java @@ -99,6 +99,7 @@ public class ReactShadowNodeImpl implements ReactShadowNode private final float[] mPadding = new float[Spacing.ALL + 1]; private final boolean[] mPaddingIsPercent = new boolean[Spacing.ALL + 1]; private YogaNode mYogaNode; + private ReactShadowNode mOriginalReactShadowNode = null; private @Nullable ReactStylesDiffMap mNewProps; @@ -1072,4 +1073,14 @@ public class ReactShadowNodeImpl implements ReactShadowNode public List getChildrenList() { return mChildren == null ? null : Collections.unmodifiableList(mChildren); } + + @Override + public ReactShadowNode getOriginalReactShadowNode() { + return mOriginalReactShadowNode; + } + + @Override + public void setOriginalReactShadowNode(ReactShadowNode node) { + mOriginalReactShadowNode = node; + } }