move more bugreporting logic to bugreporting module

Reviewed By: astreet

Differential Revision: D3168205

fb-gh-sync-id: 3cf5691acb258f9741c61005bbec0a8507bc8162
fbshipit-source-id: 3cf5691acb258f9741c61005bbec0a8507bc8162
This commit is contained in:
Felix Oghina
2016-04-14 03:17:31 -07:00
committed by Facebook Github Bot 3
parent 89340f1620
commit 4ddb7c59d0
4 changed files with 20 additions and 1 deletions

View File

@@ -52,6 +52,7 @@ public interface CatalystInstance extends MemoryPressureListener {
<T extends JavaScriptModule> T getJSModule(Class<T> jsInterface);
<T extends JavaScriptModule> T getJSModule(ExecutorToken executorToken, Class<T> jsInterface);
<T extends NativeModule> boolean hasNativeModule(Class<T> nativeModuleInterface);
<T extends NativeModule> T getNativeModule(Class<T> nativeModuleInterface);
Collection<NativeModule> getNativeModules();

View File

@@ -290,6 +290,11 @@ public class CatalystInstanceImpl implements CatalystInstance {
return Assertions.assertNotNull(mJSModuleRegistry).getJavaScriptModule(executorToken, jsInterface);
}
@Override
public <T extends NativeModule> boolean hasNativeModule(Class<T> nativeModuleInterface) {
return mJavaRegistry.hasModule(nativeModuleInterface);
}
@Override
public <T extends NativeModule> T getNativeModule(Class<T> nativeModuleInterface) {
return mJavaRegistry.getModule(nativeModuleInterface);

View File

@@ -144,6 +144,10 @@ public class NativeModuleRegistry {
}
}
public <T extends NativeModule> boolean hasModule(Class<T> moduleInterface) {
return mModuleInstances.containsKey(moduleInterface);
}
public <T extends NativeModule> T getModule(Class<T> moduleInterface) {
return (T) Assertions.assertNotNull(mModuleInstances.get(moduleInterface));
}

View File

@@ -104,12 +104,21 @@ public class ReactContext extends ContextWrapper {
return mCatalystInstance.getJSModule(executorToken, jsInterface);
}
public <T extends NativeModule> boolean hasNativeModule(Class<T> nativeModuleInterface) {
if (mCatalystInstance == null) {
throw new RuntimeException(
"Trying to call native module before CatalystInstance has been set!");
}
return mCatalystInstance.hasNativeModule(nativeModuleInterface);
}
/**
* @return the instance of the specified module interface associated with this ReactContext.
*/
public <T extends NativeModule> T getNativeModule(Class<T> nativeModuleInterface) {
if (mCatalystInstance == null) {
throw new RuntimeException("Trying to invoke JS before CatalystInstance has been set!");
throw new RuntimeException(
"Trying to call native module before CatalystInstance has been set!");
}
return mCatalystInstance.getNativeModule(nativeModuleInterface);
}