Add backward compatible support for onLayout event in Fabric

Reviewed By: achen1

Differential Revision: D8231722

fbshipit-source-id: 3d0641a7813e742ca81b98576f9ffc30ee597f30
This commit is contained in:
David Vacca
2018-06-01 17:47:40 -07:00
committed by Facebook Github Bot
parent 6c989fe7c6
commit 6aea98441a
8 changed files with 90 additions and 10 deletions

View File

@@ -37,7 +37,9 @@ import com.facebook.react.modules.core.PermissionListener;
import com.facebook.react.shell.MainReactPackage;
import com.facebook.react.testing.idledetection.ReactBridgeIdleSignaler;
import com.facebook.react.testing.idledetection.ReactIdleDetectionUtil;
import com.facebook.react.uimanager.events.EventDispatcher;
import com.facebook.react.uimanager.UIImplementationProvider;
import com.facebook.react.uimanager.UIManagerModule;
import com.facebook.react.uimanager.ViewManager;
import com.facebook.react.uimanager.ViewManagerRegistry;
import java.util.Arrays;
@@ -265,8 +267,10 @@ public class ReactAppTestActivity extends FragmentActivity
public FabricUIManager get() {
List<ViewManager> viewManagers =
mReactInstanceManager.getOrCreateViewManagers(reactApplicationContext);
EventDispatcher eventDispatcher =
reactApplicationContext.getNativeModule(UIManagerModule.class).getEventDispatcher();
FabricUIManager fabricUIManager =
new FabricUIManager(reactApplicationContext, new ViewManagerRegistry(viewManagers), jsContext);
new FabricUIManager(reactApplicationContext, new ViewManagerRegistry(viewManagers), jsContext, eventDispatcher);
new FabricJSCBinding().installFabric(jsContext, fabricUIManager);
return fabricUIManager;
}

View File

@@ -25,6 +25,8 @@ import com.facebook.react.testing.idledetection.IdleWaiter;
public abstract class ReactInstrumentationTest extends
ActivityInstrumentationTestCase2<ReactAppTestActivity> implements IdleWaiter {
protected StringRecordingModule mRecordingModule;
public ReactInstrumentationTest() {
super(ReactAppTestActivity.class);
}
@@ -36,6 +38,7 @@ public abstract class ReactInstrumentationTest extends
Intent intent = new Intent();
intent.putExtra(ReactAppTestActivity.EXTRA_IS_FABRIC_TEST, isFabricTest());
setActivityIntent(intent);
mRecordingModule = new StringRecordingModule();
final ReactAppTestActivity activity = getActivity();
activity.loadBundle(
createReactInstanceSpecForTest(),
@@ -95,7 +98,7 @@ public abstract class ReactInstrumentationTest extends
* Override this method to provide extra native modules to be loaded before the app starts
*/
protected ReactInstanceSpecForTest createReactInstanceSpecForTest() {
return new ReactInstanceSpecForTest();
return new ReactInstanceSpecForTest().addNativeModule(mRecordingModule);
}
/**