From 7d27f4941cf9fa0782dd9fd345b8e7ae507477e2 Mon Sep 17 00:00:00 2001 From: Don Yu Date: Fri, 29 Jul 2016 11:04:58 -0700 Subject: [PATCH] Expose rootViewTag for ReactRootView Reviewed By: AaaChiuuu Differential Revision: D3630452 fbshipit-source-id: 9e7e750051b8bd5c60971a82740916e2e5faf6f6 --- .../com/facebook/react/ReactInstanceManagerImpl.java | 1 + .../src/main/java/com/facebook/react/ReactRootView.java | 9 +++++++++ .../com/facebook/react/XReactInstanceManagerImpl.java | 1 + 3 files changed, 11 insertions(+) diff --git a/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManagerImpl.java b/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManagerImpl.java index d33fd10d2..30b09dfd6 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManagerImpl.java +++ b/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManagerImpl.java @@ -773,6 +773,7 @@ import static com.facebook.react.bridge.ReactMarkerConstants.RUN_JS_BUNDLE_START UIManagerModule uiManagerModule = catalystInstance.getNativeModule(UIManagerModule.class); int rootTag = uiManagerModule.addMeasuredRootView(rootView); + rootView.setRootViewTag(rootTag); @Nullable Bundle launchOptions = rootView.getLaunchOptions(); WritableMap initialProps = launchOptions != null ? Arguments.fromBundle(launchOptions) diff --git a/ReactAndroid/src/main/java/com/facebook/react/ReactRootView.java b/ReactAndroid/src/main/java/com/facebook/react/ReactRootView.java index 50f7f4077..bd591e968 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/ReactRootView.java +++ b/ReactAndroid/src/main/java/com/facebook/react/ReactRootView.java @@ -58,6 +58,7 @@ public class ReactRootView extends SizeMonitoringFrameLayout implements RootView private @Nullable Bundle mLaunchOptions; private @Nullable KeyboardListener mKeyboardListener; private @Nullable OnGenericMotionListener mOnGenericMotionListener; + private int mRootViewTag; private boolean mWasMeasured = false; private boolean mIsAttachedToInstance = false; private final JSTouchDispatcher mJSTouchDispatcher = new JSTouchDispatcher(this); @@ -281,6 +282,14 @@ public class ReactRootView extends SizeMonitoringFrameLayout implements RootView "of your hosting Activity or in the onDestroyView() of your hosting Fragment."); } + public int getRootViewTag() { + return mRootViewTag; + } + + public void setRootViewTag(int rootViewTag) { + mRootViewTag = rootViewTag; + } + private class KeyboardListener implements ViewTreeObserver.OnGlobalLayoutListener { private final Rect mVisibleViewArea; private final int mMinKeyboardHeightDetected; diff --git a/ReactAndroid/src/main/java/com/facebook/react/XReactInstanceManagerImpl.java b/ReactAndroid/src/main/java/com/facebook/react/XReactInstanceManagerImpl.java index adc4ff8d4..5c8aa8b92 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/XReactInstanceManagerImpl.java +++ b/ReactAndroid/src/main/java/com/facebook/react/XReactInstanceManagerImpl.java @@ -765,6 +765,7 @@ import static com.facebook.systrace.Systrace.TRACE_TAG_REACT_JAVA_BRIDGE; UIManagerModule uiManagerModule = catalystInstance.getNativeModule(UIManagerModule.class); int rootTag = uiManagerModule.addMeasuredRootView(rootView); + rootView.setRootViewTag(rootTag); @Nullable Bundle launchOptions = rootView.getLaunchOptions(); WritableMap initialProps = Arguments.makeNativeMap(launchOptions); String jsAppModuleName = rootView.getJSModuleName();