@Override public List<NativeModule> createNativeModules(ReactApplicationContext catalystApplicationContext) { return Arrays.<NativeModule>asList( // Core list new AndroidInfoModule(), new ExceptionsManagerModule(reactInstanceManager.getDevSupportManager()), new AppStateModule(catalystApplicationContext), new Timing(catalystApplicationContext, reactInstanceManager.getDevSupportManager()), new UIManagerStubModule(catalystApplicationContext), new SourceCodeModule(catalystApplicationContext), new JSCHeapCapture(catalystApplicationContext), // Main list new AsyncStorageModule(catalystApplicationContext), new IntentModule(catalystApplicationContext), new LocationModule(catalystApplicationContext), new NetworkingModule(catalystApplicationContext), new NetInfoModule(catalystApplicationContext), new VibrationModule(catalystApplicationContext), new WebSocketModule(catalystApplicationContext), new ThreadSelfModule(catalystApplicationContext) ); }
/** * Timing module needs to be created on the main thread so that it gets the correct Choreographer. */ protected Timing createTimingModule() { final SimpleSettableFuture<Timing> simpleSettableFuture = new SimpleSettableFuture<Timing>(); UiThreadUtil.runOnUiThread( new Runnable() { @Override public void run() { Timing timing = new Timing(getContext(), mock(DevSupportManager.class)); simpleSettableFuture.set(timing); } }); try { return simpleSettableFuture.get(5000, TimeUnit.MILLISECONDS); } catch (Exception e) { throw new RuntimeException(e); } }
/** * Timing module needs to be created on the main thread so that it gets the correct Choreographer. */ protected Timing createTimingModule() { final SimpleSettableFuture<Timing> simpleSettableFuture = new SimpleSettableFuture<Timing>(); UiThreadUtil.runOnUiThread( new Runnable() { @Override public void run() { Timing timing = new Timing(getContext()); simpleSettableFuture.set(timing); } }); try { return simpleSettableFuture.get(5000, TimeUnit.MILLISECONDS); } catch (Exception e) { throw new RuntimeException(e); } }
@Override public List<NativeModule> createNativeModules(ReactApplicationContext catalystApplicationContext) { return Arrays.<NativeModule>asList( // Core list new AndroidInfoModule(), new ExceptionsManagerModule(reactInstanceManager.getDevSupportManager()), new Timing(catalystApplicationContext, reactInstanceManager.getDevSupportManager()), new UIManagerStubModule(catalystApplicationContext), new SourceCodeModule(reactInstanceManager.getSourceUrl()), new JSCHeapCapture(catalystApplicationContext), // Main list new AsyncStorageModule(catalystApplicationContext), new IntentModule(catalystApplicationContext), new LocationModule(catalystApplicationContext), new NetworkingModule(catalystApplicationContext), new NetInfoModule(catalystApplicationContext), new VibrationModule(catalystApplicationContext), new WebSocketModule(catalystApplicationContext), new WorkerSelfModule(catalystApplicationContext) ); }
@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); } return Arrays.<NativeModule>asList( new AnimationsDebugModule( catalystApplicationContext, mReactInstanceManager.getDevSupportManager().getDevSettings()), new AndroidInfoModule(), new DeviceEventManagerModule(catalystApplicationContext, mHardwareBackBtnHandler), new ExceptionsManagerModule(mReactInstanceManager.getDevSupportManager()), new Timing(catalystApplicationContext), new SourceCodeModule( mReactInstanceManager.getSourceUrl(), mReactInstanceManager.getDevSupportManager().getSourceMapUrl()), uiManagerModule, new DebugComponentOwnershipModule(catalystApplicationContext)); }
@Before public void prepareModules() { PowerMockito.mockStatic(Arguments.class); when(Arguments.createArray()).thenAnswer( new Answer<Object>() { @Override public Object answer(InvocationOnMock invocation) throws Throwable { return new JavaOnlyArray(); } }); PowerMockito.mockStatic(SystemClock.class); when(SystemClock.currentTimeMillis()).thenReturn(mCurrentTimeNs / 1000000); when(SystemClock.nanoTime()).thenReturn(mCurrentTimeNs); mChoreographerMock = mock(ReactChoreographer.class); PowerMockito.mockStatic(ReactChoreographer.class); when(ReactChoreographer.getInstance()).thenReturn(mChoreographerMock); CatalystInstance reactInstance = mock(CatalystInstance.class); ReactApplicationContext reactContext = mock(ReactApplicationContext.class); when(reactContext.getCatalystInstance()).thenReturn(reactInstance); mCurrentTimeNs = 0; mPostFrameCallbackHandler = new PostFrameCallbackHandler(); doAnswer(mPostFrameCallbackHandler) .when(mChoreographerMock) .postFrameCallback( eq(ReactChoreographer.CallbackType.TIMERS_EVENTS), any(Choreographer.FrameCallback.class)); mTiming = new Timing(reactContext); mJSTimersMock = mock(JSTimersExecution.class); mExecutorTokenMock = mock(ExecutorToken.class); when(reactContext.getJSModule(mExecutorTokenMock, JSTimersExecution.class)).thenReturn(mJSTimersMock); mTiming.initialize(); }
@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); } return Arrays.<NativeModule>asList( new AnimationsDebugModule( catalystApplicationContext, mReactInstanceManager.getDevSupportManager().getDevSettings()), new AndroidInfoModule(), new DeviceEventManagerModule(catalystApplicationContext, mHardwareBackBtnHandler), new ExceptionsManagerModule(mReactInstanceManager.getDevSupportManager()), new Timing(catalystApplicationContext), new SourceCodeModule( mReactInstanceManager.getSourceUrl(), mReactInstanceManager.getDevSupportManager().getSourceMapUrl()), uiManagerModule, new JSCHeapCapture(catalystApplicationContext), new DebugComponentOwnershipModule(catalystApplicationContext)); }