@Override public List<NativeModule> createNativeModules( ReactApplicationContext catalystApplicationContext) { Systrace.beginSection(Systrace.TRACE_TAG_REACT_JAVA_BRIDGE, "createUIManagerModule"); UIManagerModule uiManagerModule; try { List<ViewManager> viewManagersList = mReactInstanceManager.createAllViewManagers(catalystApplicationContext); uiManagerModule = new UIManagerModule( catalystApplicationContext, viewManagersList, mUIImplementationProvider.createUIImplementation( catalystApplicationContext, viewManagersList)); } finally { Systrace.endSection(Systrace.TRACE_TAG_REACT_JAVA_BRIDGE); } List<NativeModule> nativeModulesList = new ArrayList<>( Arrays.<NativeModule>asList( new AnimationsDebugModule( catalystApplicationContext, mReactInstanceManager.getDevSupportManager().getDevSettings()), new AndroidInfoModule(), new DeviceEventManagerModule(catalystApplicationContext, mHardwareBackBtnHandler), new ExceptionsManagerModule(mReactInstanceManager.getDevSupportManager()), new Timing( catalystApplicationContext, mReactInstanceManager.getDevSupportManager()), new SourceCodeModule(mReactInstanceManager.getSourceUrl()), uiManagerModule, new DebugComponentOwnershipModule(catalystApplicationContext))); if (ReactBuildConfig.DEBUG) { nativeModulesList.add(new JSCHeapCapture(catalystApplicationContext)); } return nativeModulesList; }