From 4a9b2a73021fb547febe1fa193c3effb7ff8da4e Mon Sep 17 00:00:00 2001 From: "Andrew Chen (Eng)" Date: Wed, 30 May 2018 15:00:23 -0700 Subject: [PATCH] Fix ReactInstanceManager unmountApplication Reviewed By: mdvacca Differential Revision: D7945746 fbshipit-source-id: 0c2eed9a623e442fa4a4ff29ffa01f025466c9b6 --- .../main/java/com/facebook/react/ReactRootView.java | 1 + .../test/java/com/facebook/react/RootViewTest.java | 11 +++++++++++ 2 files changed, 12 insertions(+) diff --git a/ReactAndroid/src/main/java/com/facebook/react/ReactRootView.java b/ReactAndroid/src/main/java/com/facebook/react/ReactRootView.java index 9e7c04ba8..4599484e2 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/ReactRootView.java +++ b/ReactAndroid/src/main/java/com/facebook/react/ReactRootView.java @@ -423,6 +423,7 @@ public class ReactRootView extends SizeMonitoringFrameLayout public void unmountReactApplication() { if (mReactInstanceManager != null && mIsAttachedToInstance) { mReactInstanceManager.detachRootView(this); + mReactInstanceManager = null; mIsAttachedToInstance = false; } mShouldLogContentAppeared = false; diff --git a/ReactAndroid/src/test/java/com/facebook/react/RootViewTest.java b/ReactAndroid/src/test/java/com/facebook/react/RootViewTest.java index c293858b4..d706b9c79 100644 --- a/ReactAndroid/src/test/java/com/facebook/react/RootViewTest.java +++ b/ReactAndroid/src/test/java/com/facebook/react/RootViewTest.java @@ -195,4 +195,15 @@ public class RootViewTest { MotionEvent.obtain(50, new Date().getTime(), MotionEvent.ACTION_HOVER_MOVE, 0, 0, 0)); verifyNoMoreInteractions(eventDispatcher); } + + @Test + public void testRemountApplication() { + ReactInstanceManager instanceManager = mock(ReactInstanceManager.class); + + ReactRootView rootView = new ReactRootView(mReactContext); + + rootView.startReactApplication(instanceManager, ""); + rootView.unmountReactApplication(); + rootView.startReactApplication(instanceManager, ""); + } }