From 3d1b79cd156e8055eab54cefa84a3532572be82c Mon Sep 17 00:00:00 2001 From: Aaron Chiu Date: Fri, 2 Sep 2016 16:15:11 -0700 Subject: [PATCH] covert RNFeedPackage and it's modules to use @ReactModule and @ReactModuleList Reviewed By: lexs Differential Revision: D3796860 fbshipit-source-id: d4b5f3635754ef28277b79cb1ea9bab07ba3ea6e --- .../java/com/facebook/react/animated/BUCK | 11 ++-- .../react/animated/NativeAnimatedModule.java | 6 ++- .../processing/ReactModuleSpecProcessor.java | 54 +++++++++++++------ .../modules/appstate/AppStateModule.java | 2 + .../com/facebook/react/modules/appstate/BUCK | 7 +-- .../com/facebook/react/modules/camera/BUCK | 5 +- .../modules/camera/CameraRollManager.java | 2 + .../modules/camera/ImageEditingManager.java | 4 +- .../modules/camera/ImageStoreManager.java | 2 + .../com/facebook/react/modules/clipboard/BUCK | 5 +- .../modules/clipboard/ClipboardModule.java | 16 ++---- .../java/com/facebook/react/modules/core/BUCK | 9 ++-- .../core/DeviceEventManagerModule.java | 2 + .../modules/core/ExceptionsManagerModule.java | 2 + .../facebook/react/modules/core/Timing.java | 4 +- .../facebook/react/modules/datepicker/BUCK | 5 +- .../datepicker/DatePickerDialogModule.java | 6 ++- .../modules/debug/AnimationsDebugModule.java | 2 + .../com/facebook/react/modules/debug/BUCK | 7 +-- .../react/modules/debug/SourceCodeModule.java | 8 ++- .../com/facebook/react/modules/dialog/BUCK | 5 +- .../react/modules/dialog/DialogModule.java | 3 +- .../com/facebook/react/modules/fresco/BUCK | 1 + .../react/modules/fresco/FrescoModule.java | 2 + .../facebook/react/modules/i18nmanager/BUCK | 1 + .../i18nmanager/I18nManagerModule.java | 14 ++--- .../com/facebook/react/modules/image/BUCK | 1 + .../modules/image/ImageLoaderModule.java | 2 + .../com/facebook/react/modules/intent/BUCK | 5 +- .../react/modules/intent/IntentModule.java | 2 + .../com/facebook/react/modules/location/BUCK | 7 +-- .../modules/location/LocationModule.java | 19 +++++-- .../com/facebook/react/modules/netinfo/BUCK | 7 +-- .../react/modules/netinfo/NetInfoModule.java | 2 + .../modules/network/NetworkingModule.java | 2 +- .../facebook/react/modules/permissions/BUCK | 7 +-- .../permissions/PermissionsModule.java | 2 + .../com/facebook/react/modules/share/BUCK | 5 +- .../react/modules/share/ShareModule.java | 10 ++-- .../com/facebook/react/modules/statusbar/BUCK | 7 +-- .../modules/statusbar/StatusBarModule.java | 20 ++++--- .../modules/storage/AsyncStorageModule.java | 2 + .../com/facebook/react/modules/storage/BUCK | 7 +-- .../modules/systeminfo/AndroidInfoModule.java | 4 +- .../facebook/react/modules/systeminfo/BUCK | 5 +- .../facebook/react/modules/timepicker/BUCK | 5 +- .../timepicker/TimePickerDialogModule.java | 6 +-- .../com/facebook/react/modules/toast/BUCK | 5 +- .../react/modules/toast/ToastModule.java | 2 + .../com/facebook/react/modules/vibration/BUCK | 7 +-- .../modules/vibration/VibrationModule.java | 2 + .../com/facebook/react/modules/websocket/BUCK | 1 + .../modules/websocket/WebSocketModule.java | 24 ++++++--- 53 files changed, 219 insertions(+), 134 deletions(-) diff --git a/ReactAndroid/src/main/java/com/facebook/react/animated/BUCK b/ReactAndroid/src/main/java/com/facebook/react/animated/BUCK index d6c34221f..67385884a 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/animated/BUCK +++ b/ReactAndroid/src/main/java/com/facebook/react/animated/BUCK @@ -6,13 +6,14 @@ android_library( '*.java', ]), deps = [ - react_native_target('java/com/facebook/react/bridge:bridge'), - react_native_target('java/com/facebook/react/modules/core:core'), - react_native_target('java/com/facebook/react/uimanager:uimanager'), - react_native_target('java/com/facebook/react/uimanager/annotations:annotations'), + react_native_dep('third-party/android/support/v4:lib-support-v4'), react_native_dep('third-party/java/infer-annotations:infer-annotations'), react_native_dep('third-party/java/jsr-305:jsr-305'), - react_native_dep('third-party/android/support/v4:lib-support-v4'), + react_native_target('java/com/facebook/react/bridge:bridge'), + react_native_target('java/com/facebook/react/module/annotations:annotations'), + react_native_target('java/com/facebook/react/modules/core:core'), + react_native_target('java/com/facebook/react/uimanager/annotations:annotations'), + react_native_target('java/com/facebook/react/uimanager:uimanager'), ], visibility = [ 'PUBLIC', diff --git a/ReactAndroid/src/main/java/com/facebook/react/animated/NativeAnimatedModule.java b/ReactAndroid/src/main/java/com/facebook/react/animated/NativeAnimatedModule.java index 303fb8325..45a39e343 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/animated/NativeAnimatedModule.java +++ b/ReactAndroid/src/main/java/com/facebook/react/animated/NativeAnimatedModule.java @@ -21,6 +21,7 @@ import com.facebook.react.bridge.ReactContextBaseJavaModule; import com.facebook.react.bridge.ReactMethod; import com.facebook.react.bridge.ReadableMap; import com.facebook.react.bridge.WritableMap; +import com.facebook.react.module.annotations.ReactModule; import com.facebook.react.modules.core.DeviceEventManagerModule; import com.facebook.react.uimanager.GuardedChoreographerFrameCallback; import com.facebook.react.uimanager.ReactChoreographer; @@ -70,6 +71,7 @@ import java.util.ArrayList; * isolates us from the problems that may be caused by concurrent updates of animated graph while UI * thread is "executing" the animation loop. */ +@ReactModule(name = "NativeAnimatedModule") public class NativeAnimatedModule extends ReactContextBaseJavaModule implements OnBatchCompleteListener, LifecycleEventListener { @@ -136,8 +138,8 @@ public class NativeAnimatedModule extends ReactContextBaseJavaModule implements // from the UIManagerModule) doesn't matter as we only enqueue operations for the UI thread to // be executed from here. Thanks to ReactChoreographer all the operations from here are going // to be executed *after* all the operations enqueued by UIManager as the callback type that we - // use for ReactChoreographer (CallbackType.NATIVE_ANIMATED_MODULE) is run after callbacks that UIManager - // use + // use for ReactChoreographer (CallbackType.NATIVE_ANIMATED_MODULE) is run after callbacks that + // UIManager uses. ArrayList operations = mOperations.isEmpty() ? null : mOperations; if (operations != null) { mOperations = new ArrayList<>(); diff --git a/ReactAndroid/src/main/java/com/facebook/react/module/processing/ReactModuleSpecProcessor.java b/ReactAndroid/src/main/java/com/facebook/react/module/processing/ReactModuleSpecProcessor.java index 34171a768..63cb06699 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/module/processing/ReactModuleSpecProcessor.java +++ b/ReactAndroid/src/main/java/com/facebook/react/module/processing/ReactModuleSpecProcessor.java @@ -4,6 +4,7 @@ package com.facebook.react.module.processing; import javax.annotation.processing.AbstractProcessor; import javax.annotation.processing.Filer; +import javax.annotation.processing.Messager; import javax.annotation.processing.ProcessingEnvironment; import javax.annotation.processing.RoundEnvironment; import javax.annotation.processing.SupportedAnnotationTypes; @@ -37,6 +38,7 @@ import com.squareup.javapoet.TypeName; import com.squareup.javapoet.TypeSpec; import static javax.lang.model.element.Modifier.PUBLIC; +import static javax.tools.Diagnostic.Kind.ERROR; /** * Generates a list of ReactModuleInfo for modules annotated with {@link ReactModule} in @@ -59,6 +61,8 @@ public class ReactModuleSpecProcessor extends AbstractProcessor { private Filer mFiler; @SuppressFieldNotInitialized private Elements mElements; + @SuppressFieldNotInitialized + private Messager mMessager; @Override public synchronized void init(ProcessingEnvironment processingEnv) { @@ -66,6 +70,7 @@ public class ReactModuleSpecProcessor extends AbstractProcessor { mFiler = processingEnv.getFiler(); mElements = processingEnv.getElementUtils(); + mMessager = processingEnv.getMessager(); } @Override @@ -89,23 +94,29 @@ public class ReactModuleSpecProcessor extends AbstractProcessor { } } - MethodSpec getReactModuleInfosMethod = MethodSpec.methodBuilder("getReactModuleInfos") - .addModifiers(PUBLIC) - // TODO add function to native module interface + MethodSpec getReactModuleInfosMethod; + try { + getReactModuleInfosMethod = MethodSpec.methodBuilder("getReactModuleInfos") + .addModifiers(PUBLIC) + // TODO add function to native module interface // .addAnnotation(Override.class) - .addCode(getCodeBlockForReactModuleInfos(nativeModules)) - .returns(MAP_TYPE) - .build(); + .addCode(getCodeBlockForReactModuleInfos(nativeModules)) + .returns(MAP_TYPE) + .build(); + } catch (ReactModuleSpecException reactModuleSpecException) { + mMessager.printMessage(ERROR, reactModuleSpecException.mMessage); + return false; + } - TypeSpec reactModulesInfosTypeSpec = TypeSpec.classBuilder( - fileName + "$$ReactModuleInfoProvider") - .addModifiers(Modifier.PUBLIC) - .addMethod(getReactModuleInfosMethod) - .build(); + TypeSpec reactModulesInfosTypeSpec = TypeSpec.classBuilder( + fileName + "$$ReactModuleInfoProvider") + .addModifiers(Modifier.PUBLIC) + .addMethod(getReactModuleInfosMethod) + .build(); - JavaFile javaFile = JavaFile.builder(packageName, reactModulesInfosTypeSpec) - .addFileComment("Generated by " + getClass().getName()) - .build(); + JavaFile javaFile = JavaFile.builder(packageName, reactModulesInfosTypeSpec) + .addFileComment("Generated by " + getClass().getName()) + .build(); try { javaFile.writeTo(mFiler); @@ -117,7 +128,8 @@ public class ReactModuleSpecProcessor extends AbstractProcessor { return true; } - private CodeBlock getCodeBlockForReactModuleInfos(List nativeModules) { + private CodeBlock getCodeBlockForReactModuleInfos(List nativeModules) + throws ReactModuleSpecException { CodeBlock.Builder builder = CodeBlock.builder() .addStatement("$T map = new $T()", MAP_TYPE, INSTANTIATED_MAP_TYPE); @@ -126,6 +138,9 @@ public class ReactModuleSpecProcessor extends AbstractProcessor { TypeElement typeElement = mElements.getTypeElement(nativeModule); ReactModule reactModule = typeElement.getAnnotation(ReactModule.class); + if (reactModule == null) { + throw new ReactModuleSpecException(keyString + " not found."); + } String valueString = new StringBuilder() .append("new ReactModuleInfo(") .append("\"").append(reactModule.name()).append("\"").append(", ") @@ -140,4 +155,13 @@ public class ReactModuleSpecProcessor extends AbstractProcessor { builder.addStatement("return map"); return builder.build(); } + + private static class ReactModuleSpecException extends Exception { + + public final String mMessage; + + public ReactModuleSpecException(String message) { + mMessage = message; + } + } } diff --git a/ReactAndroid/src/main/java/com/facebook/react/modules/appstate/AppStateModule.java b/ReactAndroid/src/main/java/com/facebook/react/modules/appstate/AppStateModule.java index a3daa95a7..16f4e70d7 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/modules/appstate/AppStateModule.java +++ b/ReactAndroid/src/main/java/com/facebook/react/modules/appstate/AppStateModule.java @@ -16,8 +16,10 @@ import com.facebook.react.bridge.ReactApplicationContext; import com.facebook.react.bridge.ReactContextBaseJavaModule; import com.facebook.react.bridge.ReactMethod; import com.facebook.react.bridge.WritableMap; +import com.facebook.react.module.annotations.ReactModule; import com.facebook.react.modules.core.DeviceEventManagerModule.RCTDeviceEventEmitter; +@ReactModule(name = "AppState") public class AppStateModule extends ReactContextBaseJavaModule implements LifecycleEventListener { diff --git a/ReactAndroid/src/main/java/com/facebook/react/modules/appstate/BUCK b/ReactAndroid/src/main/java/com/facebook/react/modules/appstate/BUCK index 27cc8a7cd..65217bd41 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/modules/appstate/BUCK +++ b/ReactAndroid/src/main/java/com/facebook/react/modules/appstate/BUCK @@ -4,12 +4,13 @@ android_library( name = 'appstate', srcs = glob(['**/*.java']), deps = [ - react_native_target('java/com/facebook/react/bridge:bridge'), - react_native_target('java/com/facebook/react/common:common'), - react_native_target('java/com/facebook/react/modules/core:core'), react_native_dep('libraries/fbcore/src/main/java/com/facebook/common/logging:logging'), react_native_dep('third-party/java/infer-annotations:infer-annotations'), react_native_dep('third-party/java/jsr-305:jsr-305'), + react_native_target('java/com/facebook/react/bridge:bridge'), + react_native_target('java/com/facebook/react/common:common'), + react_native_target('java/com/facebook/react/module/annotations:annotations'), + react_native_target('java/com/facebook/react/modules/core:core'), ], visibility = [ 'PUBLIC', diff --git a/ReactAndroid/src/main/java/com/facebook/react/modules/camera/BUCK b/ReactAndroid/src/main/java/com/facebook/react/modules/camera/BUCK index cede97b16..f6eac34e0 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/modules/camera/BUCK +++ b/ReactAndroid/src/main/java/com/facebook/react/modules/camera/BUCK @@ -4,11 +4,12 @@ android_library( name = 'camera', srcs = glob(['**/*.java']), deps = [ - react_native_target('java/com/facebook/react/bridge:bridge'), - react_native_target('java/com/facebook/react/common:common'), react_native_dep('libraries/fbcore/src/main/java/com/facebook/common/logging:logging'), react_native_dep('third-party/java/infer-annotations:infer-annotations'), react_native_dep('third-party/java/jsr-305:jsr-305'), + react_native_target('java/com/facebook/react/bridge:bridge'), + react_native_target('java/com/facebook/react/common:common'), + react_native_target('java/com/facebook/react/module/annotations:annotations'), ], visibility = [ 'PUBLIC', diff --git a/ReactAndroid/src/main/java/com/facebook/react/modules/camera/CameraRollManager.java b/ReactAndroid/src/main/java/com/facebook/react/modules/camera/CameraRollManager.java index ff2ee2d5f..6216f1038 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/modules/camera/CameraRollManager.java +++ b/ReactAndroid/src/main/java/com/facebook/react/modules/camera/CameraRollManager.java @@ -49,12 +49,14 @@ import com.facebook.react.bridge.WritableMap; import com.facebook.react.bridge.WritableNativeArray; import com.facebook.react.bridge.WritableNativeMap; import com.facebook.react.common.ReactConstants; +import com.facebook.react.module.annotations.ReactModule; // TODO #6015104: rename to something less iOSish /** * {@link NativeModule} that allows JS to interact with the photos on the device (i.e. * {@link MediaStore.Images}). */ +@ReactModule(name = "RKCameraRollManager") public class CameraRollManager extends ReactContextBaseJavaModule { private static final String ERROR_UNABLE_TO_LOAD = "E_UNABLE_TO_LOAD"; diff --git a/ReactAndroid/src/main/java/com/facebook/react/modules/camera/ImageEditingManager.java b/ReactAndroid/src/main/java/com/facebook/react/modules/camera/ImageEditingManager.java index 952d92322..b7534a0a8 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/modules/camera/ImageEditingManager.java +++ b/ReactAndroid/src/main/java/com/facebook/react/modules/camera/ImageEditingManager.java @@ -47,10 +47,12 @@ import com.facebook.react.bridge.JSApplicationIllegalArgumentException; import com.facebook.react.bridge.ReadableMap; import com.facebook.infer.annotation.Assertions; import com.facebook.react.common.ReactConstants; +import com.facebook.react.module.annotations.ReactModule; /** * Native module that provides image cropping functionality. */ +@ReactModule(name = "RKImageEditingManager") public class ImageEditingManager extends ReactContextBaseJavaModule { private static final List LOCAL_URI_PREFIXES = Arrays.asList( @@ -89,7 +91,6 @@ public class ImageEditingManager extends ReactContextBaseJavaModule { ExifInterface.TAG_WHITE_BALANCE }; - public ImageEditingManager(ReactApplicationContext reactContext) { super(reactContext); new CleanTask(getReactApplicationContext()).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); @@ -282,7 +283,6 @@ public class ImageEditingManager extends ReactContextBaseJavaModule { } mSuccess.invoke(Uri.fromFile(tempFile).toString()); - } catch (Exception e) { mError.invoke(e.getMessage()); } diff --git a/ReactAndroid/src/main/java/com/facebook/react/modules/camera/ImageStoreManager.java b/ReactAndroid/src/main/java/com/facebook/react/modules/camera/ImageStoreManager.java index 68329f42a..7c980e610 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/modules/camera/ImageStoreManager.java +++ b/ReactAndroid/src/main/java/com/facebook/react/modules/camera/ImageStoreManager.java @@ -27,7 +27,9 @@ import com.facebook.react.bridge.ReactApplicationContext; import com.facebook.react.bridge.ReactContext; import com.facebook.react.bridge.ReactContextBaseJavaModule; import com.facebook.react.bridge.ReactMethod; +import com.facebook.react.module.annotations.ReactModule; +@ReactModule(name = "ImageStoreManager") public class ImageStoreManager extends ReactContextBaseJavaModule { private static final int BUFFER_SIZE = 8192; diff --git a/ReactAndroid/src/main/java/com/facebook/react/modules/clipboard/BUCK b/ReactAndroid/src/main/java/com/facebook/react/modules/clipboard/BUCK index 262b92ef2..ad23f2cce 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/modules/clipboard/BUCK +++ b/ReactAndroid/src/main/java/com/facebook/react/modules/clipboard/BUCK @@ -4,11 +4,12 @@ android_library( name = 'clipboard', srcs = glob(['**/*.java']), deps = [ - react_native_target('java/com/facebook/react/bridge:bridge'), - react_native_target('java/com/facebook/react/common:common'), react_native_dep('libraries/fbcore/src/main/java/com/facebook/common/logging:logging'), react_native_dep('third-party/java/infer-annotations:infer-annotations'), react_native_dep('third-party/java/jsr-305:jsr-305'), + react_native_target('java/com/facebook/react/bridge:bridge'), + react_native_target('java/com/facebook/react/common:common'), + react_native_target('java/com/facebook/react/module/annotations:annotations'), ], visibility = [ 'PUBLIC', diff --git a/ReactAndroid/src/main/java/com/facebook/react/modules/clipboard/ClipboardModule.java b/ReactAndroid/src/main/java/com/facebook/react/modules/clipboard/ClipboardModule.java index a51f93e7c..520010795 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/modules/clipboard/ClipboardModule.java +++ b/ReactAndroid/src/main/java/com/facebook/react/modules/clipboard/ClipboardModule.java @@ -14,24 +14,16 @@ import android.content.ClipboardManager; import android.content.ClipData; import android.os.Build; -import com.facebook.common.logging.FLog; -import com.facebook.react.bridge.Callback; -import com.facebook.react.bridge.NativeModule; import com.facebook.react.bridge.ReactApplicationContext; -import com.facebook.react.bridge.ReactContext; import com.facebook.react.bridge.ReactContextBaseJavaModule; import com.facebook.react.bridge.ReactMethod; import com.facebook.react.bridge.Promise; -import com.facebook.react.common.ReactConstants; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import com.facebook.react.module.annotations.ReactModule; /** * A module that allows JS to get/set clipboard contents. */ +@ReactModule(name = "Clipboard") public class ClipboardModule extends ReactContextBaseJavaModule { public ClipboardModule(ReactApplicationContext reactContext) { @@ -48,7 +40,7 @@ public class ClipboardModule extends ReactContextBaseJavaModule { } @ReactMethod - public void getString(Promise promise){ + public void getString(Promise promise) { try { ClipboardManager clipboard = getClipboardService(); ClipData clipData = clipboard.getPrimaryClip(); @@ -60,7 +52,7 @@ public class ClipboardModule extends ReactContextBaseJavaModule { } else { promise.resolve(""); } - } catch(Exception e) { + } catch (Exception e) { promise.reject(e); } } diff --git a/ReactAndroid/src/main/java/com/facebook/react/modules/core/BUCK b/ReactAndroid/src/main/java/com/facebook/react/modules/core/BUCK index 2fff5f1ef..415cb678a 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/modules/core/BUCK +++ b/ReactAndroid/src/main/java/com/facebook/react/modules/core/BUCK @@ -4,13 +4,14 @@ android_library( name = 'core', srcs = glob(['**/*.java']), deps = [ - react_native_target('java/com/facebook/react/bridge:bridge'), - react_native_target('java/com/facebook/react/common:common'), - react_native_target('java/com/facebook/react/devsupport:devsupport'), - react_native_target('java/com/facebook/react/uimanager:uimanager'), react_native_dep('libraries/fbcore/src/main/java/com/facebook/common/logging:logging'), react_native_dep('third-party/java/infer-annotations:infer-annotations'), react_native_dep('third-party/java/jsr-305:jsr-305'), + react_native_target('java/com/facebook/react/bridge:bridge'), + react_native_target('java/com/facebook/react/common:common'), + react_native_target('java/com/facebook/react/devsupport:devsupport'), + react_native_target('java/com/facebook/react/module/annotations:annotations'), + react_native_target('java/com/facebook/react/uimanager:uimanager'), ], visibility = [ 'PUBLIC', diff --git a/ReactAndroid/src/main/java/com/facebook/react/modules/core/DeviceEventManagerModule.java b/ReactAndroid/src/main/java/com/facebook/react/modules/core/DeviceEventManagerModule.java index d28cf84f1..85b9c3853 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/modules/core/DeviceEventManagerModule.java +++ b/ReactAndroid/src/main/java/com/facebook/react/modules/core/DeviceEventManagerModule.java @@ -21,10 +21,12 @@ import com.facebook.react.bridge.JavaScriptModule; import com.facebook.react.bridge.SupportsWebWorkers; import com.facebook.react.bridge.UiThreadUtil; import com.facebook.react.bridge.WritableMap; +import com.facebook.react.module.annotations.ReactModule; /** * Native module that handles device hardware events like hardware back presses. */ +@ReactModule(name = "DeviceEventManager") public class DeviceEventManagerModule extends ReactContextBaseJavaModule { @SupportsWebWorkers diff --git a/ReactAndroid/src/main/java/com/facebook/react/modules/core/ExceptionsManagerModule.java b/ReactAndroid/src/main/java/com/facebook/react/modules/core/ExceptionsManagerModule.java index c5ad60e59..4f516b424 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/modules/core/ExceptionsManagerModule.java +++ b/ReactAndroid/src/main/java/com/facebook/react/modules/core/ExceptionsManagerModule.java @@ -21,7 +21,9 @@ import com.facebook.react.bridge.ReadableType; import com.facebook.react.devsupport.DevSupportManager; import com.facebook.react.common.JavascriptException; import com.facebook.react.common.ReactConstants; +import com.facebook.react.module.annotations.ReactModule; +@ReactModule(name = "RKExceptionsManager") public class ExceptionsManagerModule extends BaseJavaModule { static private final Pattern mJsModuleIdPattern = Pattern.compile("(?:^|[/\\\\])(\\d+\\.js)$"); diff --git a/ReactAndroid/src/main/java/com/facebook/react/modules/core/Timing.java b/ReactAndroid/src/main/java/com/facebook/react/modules/core/Timing.java index bcf625573..30bc729d2 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/modules/core/Timing.java +++ b/ReactAndroid/src/main/java/com/facebook/react/modules/core/Timing.java @@ -24,6 +24,7 @@ import com.facebook.react.bridge.UiThreadUtil; import com.facebook.react.bridge.WritableArray; import com.facebook.react.common.SystemClock; import com.facebook.react.devsupport.DevSupportManager; +import com.facebook.react.module.annotations.ReactModule; import com.facebook.react.uimanager.ReactChoreographer; import java.util.ArrayList; @@ -41,6 +42,7 @@ import javax.annotation.Nullable; /** * Native module for JS timer execution. Timers fire on frame boundaries. */ +@ReactModule(name = "RCTTiming", supportsWebWorkers = true) public final class Timing extends ReactContextBaseJavaModule implements LifecycleEventListener, OnExecutorUnregisteredListener { @@ -168,7 +170,7 @@ public final class Timing extends ReactContextBaseJavaModule implements Lifecycl long time = SystemClock.currentTimeMillis(); long absoluteFrameStartTime = time - frameTimeElapsed; - if (FRAME_DURATION_MS - (float)frameTimeElapsed < IDLE_CALLBACK_FRAME_DEADLINE_MS) { + if (FRAME_DURATION_MS - (float) frameTimeElapsed < IDLE_CALLBACK_FRAME_DEADLINE_MS) { return; } diff --git a/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/BUCK b/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/BUCK index d53004753..1c1ddad5c 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/BUCK +++ b/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/BUCK @@ -4,11 +4,12 @@ android_library( name = 'datepicker', srcs = glob(['**/*.java']), deps = [ - react_native_target('java/com/facebook/react/bridge:bridge'), - react_native_target('java/com/facebook/react/common:common'), react_native_dep('third-party/android/support/v4:lib-support-v4'), react_native_dep('third-party/java/infer-annotations:infer-annotations'), react_native_dep('third-party/java/jsr-305:jsr-305'), + react_native_target('java/com/facebook/react/bridge:bridge'), + react_native_target('java/com/facebook/react/common:common'), + react_native_target('java/com/facebook/react/module/annotations:annotations'), ], visibility = [ 'PUBLIC', diff --git a/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/DatePickerDialogModule.java b/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/DatePickerDialogModule.java index 6f76ea7e4..3381b446c 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/DatePickerDialogModule.java +++ b/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/DatePickerDialogModule.java @@ -31,11 +31,13 @@ import com.facebook.react.bridge.ReadableMap; import com.facebook.react.bridge.WritableMap; import com.facebook.react.bridge.WritableNativeMap; import com.facebook.react.common.annotations.VisibleForTesting; +import com.facebook.react.module.annotations.ReactModule; /** * {@link NativeModule} that allows JS to show a native date picker dialog and get called back when * the user selects a date. */ +@ReactModule(name = "DatePickerAndroid") public class DatePickerDialogModule extends ReactContextBaseJavaModule { @VisibleForTesting @@ -129,7 +131,7 @@ public class DatePickerDialogModule extends ReactContextBaseJavaModule { android.support.v4.app.FragmentManager fragmentManager = ((android.support.v4.app.FragmentActivity) activity).getSupportFragmentManager(); android.support.v4.app.DialogFragment oldFragment = - (android.support.v4.app.DialogFragment)fragmentManager.findFragmentByTag(FRAGMENT_TAG); + (android.support.v4.app.DialogFragment) fragmentManager.findFragmentByTag(FRAGMENT_TAG); if (oldFragment != null) { oldFragment.dismiss(); } @@ -144,7 +146,7 @@ public class DatePickerDialogModule extends ReactContextBaseJavaModule { fragment.show(fragmentManager, FRAGMENT_TAG); } else { FragmentManager fragmentManager = activity.getFragmentManager(); - DialogFragment oldFragment = (DialogFragment)fragmentManager.findFragmentByTag(FRAGMENT_TAG); + DialogFragment oldFragment = (DialogFragment) fragmentManager.findFragmentByTag(FRAGMENT_TAG); if (oldFragment != null) { oldFragment.dismiss(); } diff --git a/ReactAndroid/src/main/java/com/facebook/react/modules/debug/AnimationsDebugModule.java b/ReactAndroid/src/main/java/com/facebook/react/modules/debug/AnimationsDebugModule.java index dc9664581..a85ce4977 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/modules/debug/AnimationsDebugModule.java +++ b/ReactAndroid/src/main/java/com/facebook/react/modules/debug/AnimationsDebugModule.java @@ -23,11 +23,13 @@ import com.facebook.react.bridge.ReactApplicationContext; import com.facebook.react.bridge.ReactContextBaseJavaModule; import com.facebook.react.bridge.ReactMethod; import com.facebook.react.common.ReactConstants; +import com.facebook.react.module.annotations.ReactModule; /** * Module that records debug information during transitions (animated navigation events such as * going from one screen to another). */ +@ReactModule(name = "AnimationsDebugModule") public class AnimationsDebugModule extends ReactContextBaseJavaModule { private @Nullable FpsDebugFrameCallback mFrameCallback; diff --git a/ReactAndroid/src/main/java/com/facebook/react/modules/debug/BUCK b/ReactAndroid/src/main/java/com/facebook/react/modules/debug/BUCK index a43da0d29..32bd45d52 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/modules/debug/BUCK +++ b/ReactAndroid/src/main/java/com/facebook/react/modules/debug/BUCK @@ -4,12 +4,13 @@ android_library( name = 'debug', srcs = glob(['**/*.java']), deps = [ - react_native_target('java/com/facebook/react/bridge:bridge'), - react_native_target('java/com/facebook/react/common:common'), - react_native_target('java/com/facebook/react/uimanager:uimanager'), react_native_dep('libraries/fbcore/src/main/java/com/facebook/common/logging:logging'), react_native_dep('third-party/java/infer-annotations:infer-annotations'), react_native_dep('third-party/java/jsr-305:jsr-305'), + react_native_target('java/com/facebook/react/bridge:bridge'), + react_native_target('java/com/facebook/react/common:common'), + react_native_target('java/com/facebook/react/module/annotations:annotations'), + react_native_target('java/com/facebook/react/uimanager:uimanager'), ], visibility = [ 'PUBLIC', diff --git a/ReactAndroid/src/main/java/com/facebook/react/modules/debug/SourceCodeModule.java b/ReactAndroid/src/main/java/com/facebook/react/modules/debug/SourceCodeModule.java index 71aba3511..99752c88b 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/modules/debug/SourceCodeModule.java +++ b/ReactAndroid/src/main/java/com/facebook/react/modules/debug/SourceCodeModule.java @@ -14,15 +14,13 @@ import javax.annotation.Nullable; import java.util.HashMap; import java.util.Map; -import com.facebook.react.bridge.Promise; import com.facebook.react.bridge.BaseJavaModule; -import com.facebook.react.bridge.ReactMethod; -import com.facebook.react.bridge.WritableMap; -import com.facebook.react.bridge.WritableNativeMap; +import com.facebook.react.module.annotations.ReactModule; /** * Module that exposes the URL to the source code map (used for exception stack trace parsing) to JS */ +@ReactModule(name = "RCTSourceCode") public class SourceCodeModule extends BaseJavaModule { private final String mSourceUrl; @@ -38,7 +36,7 @@ public class SourceCodeModule extends BaseJavaModule { @Override public @Nullable Map getConstants() { - HashMap constants = new HashMap(); + HashMap constants = new HashMap<>(); constants.put("scriptURL", mSourceUrl); return constants; } diff --git a/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/BUCK b/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/BUCK index a16ce52e3..8af992d5b 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/BUCK +++ b/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/BUCK @@ -4,12 +4,13 @@ android_library( name = 'dialog', srcs = glob(['**/*.java']), deps = [ - react_native_target('java/com/facebook/react/bridge:bridge'), - react_native_target('java/com/facebook/react/common:common'), react_native_dep('libraries/fbcore/src/main/java/com/facebook/common/logging:logging'), react_native_dep('third-party/android/support/v4:lib-support-v4'), react_native_dep('third-party/java/infer-annotations:infer-annotations'), react_native_dep('third-party/java/jsr-305:jsr-305'), + react_native_target('java/com/facebook/react/bridge:bridge'), + react_native_target('java/com/facebook/react/common:common'), + react_native_target('java/com/facebook/react/module/annotations:annotations'), ], visibility = [ 'PUBLIC', diff --git a/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/DialogModule.java b/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/DialogModule.java index a9bbedc14..d543b6cf0 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/DialogModule.java +++ b/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/DialogModule.java @@ -21,7 +21,6 @@ import android.os.Bundle; import android.support.v4.app.FragmentActivity; import com.facebook.common.logging.FLog; -import com.facebook.infer.annotation.Assertions; import com.facebook.react.bridge.Callback; import com.facebook.react.bridge.LifecycleEventListener; import com.facebook.react.bridge.ReactApplicationContext; @@ -30,7 +29,9 @@ import com.facebook.react.bridge.ReactMethod; import com.facebook.react.bridge.ReadableArray; import com.facebook.react.bridge.ReadableMap; import com.facebook.react.common.MapBuilder; +import com.facebook.react.module.annotations.ReactModule; +@ReactModule(name = DialogModule.NAME) public class DialogModule extends ReactContextBaseJavaModule implements LifecycleEventListener { /* package */ static final String FRAGMENT_TAG = diff --git a/ReactAndroid/src/main/java/com/facebook/react/modules/fresco/BUCK b/ReactAndroid/src/main/java/com/facebook/react/modules/fresco/BUCK index 367f8cf48..7566895b3 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/modules/fresco/BUCK +++ b/ReactAndroid/src/main/java/com/facebook/react/modules/fresco/BUCK @@ -18,6 +18,7 @@ android_library( react_native_dep('third-party/java/okhttp:okhttp3'), react_native_target('java/com/facebook/react/bridge:bridge'), react_native_target('java/com/facebook/react/common:common'), + react_native_target('java/com/facebook/react/module/annotations:annotations'), react_native_target('java/com/facebook/react/modules/common:common'), react_native_target('java/com/facebook/react/modules/network:network'), ], diff --git a/ReactAndroid/src/main/java/com/facebook/react/modules/fresco/FrescoModule.java b/ReactAndroid/src/main/java/com/facebook/react/modules/fresco/FrescoModule.java index 6ce077625..161aa8248 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/modules/fresco/FrescoModule.java +++ b/ReactAndroid/src/main/java/com/facebook/react/modules/fresco/FrescoModule.java @@ -23,6 +23,7 @@ import com.facebook.imagepipeline.listener.RequestListener; import com.facebook.react.bridge.ReactApplicationContext; import com.facebook.react.bridge.ReactContextBaseJavaModule; import com.facebook.react.common.ReactConstants; +import com.facebook.react.module.annotations.ReactModule; import com.facebook.react.modules.common.ModuleDataCleaner; import com.facebook.react.modules.network.OkHttpClientProvider; import com.facebook.soloader.SoLoader; @@ -32,6 +33,7 @@ import com.facebook.soloader.SoLoader; * *

Does not expose any methods to JavaScript code. For initialization and cleanup only. */ +@ReactModule(name = "FrescoModule") public class FrescoModule extends ReactContextBaseJavaModule implements ModuleDataCleaner.Cleanable { diff --git a/ReactAndroid/src/main/java/com/facebook/react/modules/i18nmanager/BUCK b/ReactAndroid/src/main/java/com/facebook/react/modules/i18nmanager/BUCK index deece94dc..9d6f02b9d 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/modules/i18nmanager/BUCK +++ b/ReactAndroid/src/main/java/com/facebook/react/modules/i18nmanager/BUCK @@ -9,6 +9,7 @@ android_library( react_native_dep('third-party/java/jsr-305:jsr-305'), react_native_target('java/com/facebook/react/bridge:bridge'), react_native_target('java/com/facebook/react/common:common'), + react_native_target('java/com/facebook/react/module/annotations:annotations'), ], visibility = [ 'PUBLIC', diff --git a/ReactAndroid/src/main/java/com/facebook/react/modules/i18nmanager/I18nManagerModule.java b/ReactAndroid/src/main/java/com/facebook/react/modules/i18nmanager/I18nManagerModule.java index 14bb792f4..90e27eef7 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/modules/i18nmanager/I18nManagerModule.java +++ b/ReactAndroid/src/main/java/com/facebook/react/modules/i18nmanager/I18nManagerModule.java @@ -13,18 +13,18 @@ import android.content.Context; import com.facebook.react.bridge.NativeModule; import com.facebook.react.bridge.ReactApplicationContext; -import com.facebook.react.bridge.ReactContext; import com.facebook.react.bridge.ReactContextBaseJavaModule; import com.facebook.react.bridge.ReactMethod; import com.facebook.react.common.MapBuilder; +import com.facebook.react.module.annotations.ReactModule; import java.util.Locale; import java.util.Map; - /** * {@link NativeModule} that allows JS to set allowRTL and get isRTL status. */ +@ReactModule(name = "I18nManager") public class I18nManagerModule extends ReactContextBaseJavaModule { private final I18nUtil sharedI18nUtilInstance = I18nUtil.getInstance(); @@ -44,9 +44,7 @@ public class I18nManagerModule extends ReactContextBaseJavaModule { final Locale locale = context.getResources().getConfiguration().locale; final Map constants = MapBuilder.newHashMap(); - constants.put("isRTL", sharedI18nUtilInstance.isRTL( - getReactApplicationContext() - )); + constants.put("isRTL", sharedI18nUtilInstance.isRTL(getReactApplicationContext())); constants.put("localeIdentifier", locale.toString()); return constants; } @@ -55,15 +53,13 @@ public class I18nManagerModule extends ReactContextBaseJavaModule { public void allowRTL(boolean value) { sharedI18nUtilInstance.allowRTL( getReactApplicationContext(), - value - ); + value); } @ReactMethod public void forceRTL(boolean value) { sharedI18nUtilInstance.forceRTL( getReactApplicationContext(), - value - ); + value); } } diff --git a/ReactAndroid/src/main/java/com/facebook/react/modules/image/BUCK b/ReactAndroid/src/main/java/com/facebook/react/modules/image/BUCK index d3786b6dc..9118af46d 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/modules/image/BUCK +++ b/ReactAndroid/src/main/java/com/facebook/react/modules/image/BUCK @@ -12,6 +12,7 @@ android_library( react_native_dep('third-party/java/jsr-305:jsr-305'), react_native_target('java/com/facebook/react/bridge:bridge'), react_native_target('java/com/facebook/react/common:common'), + react_native_target('java/com/facebook/react/module/annotations:annotations'), ], visibility = [ 'PUBLIC', diff --git a/ReactAndroid/src/main/java/com/facebook/react/modules/image/ImageLoaderModule.java b/ReactAndroid/src/main/java/com/facebook/react/modules/image/ImageLoaderModule.java index b717969e1..92ab18ca5 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/modules/image/ImageLoaderModule.java +++ b/ReactAndroid/src/main/java/com/facebook/react/modules/image/ImageLoaderModule.java @@ -33,7 +33,9 @@ import com.facebook.react.bridge.ReactContextBaseJavaModule; import com.facebook.react.bridge.ReactMethod; import com.facebook.react.bridge.ReadableArray; import com.facebook.react.bridge.WritableMap; +import com.facebook.react.module.annotations.ReactModule; +@ReactModule(name = "ImageLoader") public class ImageLoaderModule extends ReactContextBaseJavaModule implements LifecycleEventListener { diff --git a/ReactAndroid/src/main/java/com/facebook/react/modules/intent/BUCK b/ReactAndroid/src/main/java/com/facebook/react/modules/intent/BUCK index 82c5b51b4..9270eb0de 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/modules/intent/BUCK +++ b/ReactAndroid/src/main/java/com/facebook/react/modules/intent/BUCK @@ -4,10 +4,11 @@ android_library( name = 'intent', srcs = glob(['**/*.java']), deps = [ - react_native_target('java/com/facebook/react/bridge:bridge'), - react_native_target('java/com/facebook/react/common:common'), react_native_dep('third-party/java/infer-annotations:infer-annotations'), react_native_dep('third-party/java/jsr-305:jsr-305'), + react_native_target('java/com/facebook/react/bridge:bridge'), + react_native_target('java/com/facebook/react/common:common'), + react_native_target('java/com/facebook/react/module/annotations:annotations'), ], visibility = [ 'PUBLIC', diff --git a/ReactAndroid/src/main/java/com/facebook/react/modules/intent/IntentModule.java b/ReactAndroid/src/main/java/com/facebook/react/modules/intent/IntentModule.java index 8139797ae..8d3cc8b75 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/modules/intent/IntentModule.java +++ b/ReactAndroid/src/main/java/com/facebook/react/modules/intent/IntentModule.java @@ -19,10 +19,12 @@ import com.facebook.react.bridge.Promise; import com.facebook.react.bridge.ReactApplicationContext; import com.facebook.react.bridge.ReactContextBaseJavaModule; import com.facebook.react.bridge.ReactMethod; +import com.facebook.react.module.annotations.ReactModule; /** * Intent module. Launch other activities or open URLs. */ +@ReactModule(name = "IntentAndroid") public class IntentModule extends ReactContextBaseJavaModule { public IntentModule(ReactApplicationContext reactContext) { diff --git a/ReactAndroid/src/main/java/com/facebook/react/modules/location/BUCK b/ReactAndroid/src/main/java/com/facebook/react/modules/location/BUCK index 4fb39039c..03ff67582 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/modules/location/BUCK +++ b/ReactAndroid/src/main/java/com/facebook/react/modules/location/BUCK @@ -4,11 +4,12 @@ android_library( name = 'location', srcs = glob(['**/*.java']), deps = [ - react_native_target('java/com/facebook/react/bridge:bridge'), - react_native_target('java/com/facebook/react/modules/core:core'), - react_native_target('java/com/facebook/react/common:common'), react_native_dep('third-party/java/infer-annotations:infer-annotations'), react_native_dep('third-party/java/jsr-305:jsr-305'), + react_native_target('java/com/facebook/react/bridge:bridge'), + react_native_target('java/com/facebook/react/common:common'), + react_native_target('java/com/facebook/react/module/annotations:annotations'), + react_native_target('java/com/facebook/react/modules/core:core'), ], visibility = [ 'PUBLIC', diff --git a/ReactAndroid/src/main/java/com/facebook/react/modules/location/LocationModule.java b/ReactAndroid/src/main/java/com/facebook/react/modules/location/LocationModule.java index 9aa887b50..f83fa0c94 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/modules/location/LocationModule.java +++ b/ReactAndroid/src/main/java/com/facebook/react/modules/location/LocationModule.java @@ -28,11 +28,13 @@ import com.facebook.react.bridge.ReactMethod; import com.facebook.react.bridge.ReadableMap; import com.facebook.react.bridge.WritableMap; import com.facebook.react.common.SystemClock; +import com.facebook.react.module.annotations.ReactModule; import com.facebook.react.modules.core.DeviceEventManagerModule.RCTDeviceEventEmitter; /** * Native module that exposes Geolocation to JS. */ +@ReactModule(name = "LocationObserver") public class LocationModule extends ReactContextBaseJavaModule { private @Nullable String mWatchedProvider; @@ -76,7 +78,11 @@ public class LocationModule extends ReactContextBaseJavaModule { private final boolean highAccuracy; private final float distanceFilter; - private LocationOptions(long timeout, double maximumAge, boolean highAccuracy, float distanceFilter) { + private LocationOptions( + long timeout, + double maximumAge, + boolean highAccuracy, + float distanceFilter) { this.timeout = timeout; this.maximumAge = maximumAge; this.highAccuracy = highAccuracy; @@ -91,8 +97,9 @@ public class LocationModule extends ReactContextBaseJavaModule { map.hasKey("maximumAge") ? map.getDouble("maximumAge") : Double.POSITIVE_INFINITY; boolean highAccuracy = map.hasKey("enableHighAccuracy") && map.getBoolean("enableHighAccuracy"); - float distanceFilter = - map.hasKey("distanceFilter") ? (float) map.getDouble("distanceFilter") : RCT_DEFAULT_LOCATION_ACCURACY; + float distanceFilter = map.hasKey("distanceFilter") ? + (float) map.getDouble("distanceFilter") : + RCT_DEFAULT_LOCATION_ACCURACY; return new LocationOptions(timeout, maximumAge, highAccuracy, distanceFilter); } @@ -156,7 +163,11 @@ public class LocationModule extends ReactContextBaseJavaModule { } if (!provider.equals(mWatchedProvider)) { locationManager.removeUpdates(mLocationListener); - locationManager.requestLocationUpdates(provider, 1000, locationOptions.distanceFilter, mLocationListener); + locationManager.requestLocationUpdates( + provider, + 1000, + locationOptions.distanceFilter, + mLocationListener); } mWatchedProvider = provider; } catch (SecurityException e) { diff --git a/ReactAndroid/src/main/java/com/facebook/react/modules/netinfo/BUCK b/ReactAndroid/src/main/java/com/facebook/react/modules/netinfo/BUCK index 0a23937ba..421154aae 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/modules/netinfo/BUCK +++ b/ReactAndroid/src/main/java/com/facebook/react/modules/netinfo/BUCK @@ -4,13 +4,14 @@ android_library( name = 'netinfo', srcs = glob(['**/*.java']), deps = [ - react_native_target('java/com/facebook/react/bridge:bridge'), - react_native_target('java/com/facebook/react/modules/core:core'), - react_native_target('java/com/facebook/react/common:common'), react_native_dep('libraries/fbcore/src/main/java/com/facebook/common/logging:logging'), react_native_dep('third-party/android/support/v4:lib-support-v4'), react_native_dep('third-party/java/infer-annotations:infer-annotations'), react_native_dep('third-party/java/jsr-305:jsr-305'), + react_native_target('java/com/facebook/react/bridge:bridge'), + react_native_target('java/com/facebook/react/common:common'), + react_native_target('java/com/facebook/react/module/annotations:annotations'), + react_native_target('java/com/facebook/react/modules/core:core'), ], visibility = [ 'PUBLIC', diff --git a/ReactAndroid/src/main/java/com/facebook/react/modules/netinfo/NetInfoModule.java b/ReactAndroid/src/main/java/com/facebook/react/modules/netinfo/NetInfoModule.java index 1b8b93cbe..3ed157d65 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/modules/netinfo/NetInfoModule.java +++ b/ReactAndroid/src/main/java/com/facebook/react/modules/netinfo/NetInfoModule.java @@ -24,12 +24,14 @@ import com.facebook.react.bridge.ReactContextBaseJavaModule; import com.facebook.react.bridge.ReactMethod; import com.facebook.react.bridge.WritableMap; import com.facebook.react.bridge.WritableNativeMap; +import com.facebook.react.module.annotations.ReactModule; import static com.facebook.react.modules.core.DeviceEventManagerModule.RCTDeviceEventEmitter; /** * Module that monitors and provides information about the connectivity state of the device. */ +@ReactModule(name = "NetInfo") public class NetInfoModule extends ReactContextBaseJavaModule implements LifecycleEventListener { diff --git a/ReactAndroid/src/main/java/com/facebook/react/modules/network/NetworkingModule.java b/ReactAndroid/src/main/java/com/facebook/react/modules/network/NetworkingModule.java index 8884bdbf4..ecbd087c5 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/modules/network/NetworkingModule.java +++ b/ReactAndroid/src/main/java/com/facebook/react/modules/network/NetworkingModule.java @@ -50,7 +50,7 @@ import okhttp3.ResponseBody; /** * Implements the XMLHttpRequest JavaScript interface. */ -@ReactModule(name = "RCTNetworking") +@ReactModule(name = "RCTNetworking", supportsWebWorkers = true) public final class NetworkingModule extends ReactContextBaseJavaModule { private static final String CONTENT_ENCODING_HEADER_NAME = "content-encoding"; diff --git a/ReactAndroid/src/main/java/com/facebook/react/modules/permissions/BUCK b/ReactAndroid/src/main/java/com/facebook/react/modules/permissions/BUCK index 1e26201ad..9ee4190d1 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/modules/permissions/BUCK +++ b/ReactAndroid/src/main/java/com/facebook/react/modules/permissions/BUCK @@ -4,11 +4,12 @@ android_library( name = 'permissions', srcs = glob(['**/*.java']), deps = [ - react_native_target('java/com/facebook/react/bridge:bridge'), - react_native_target('java/com/facebook/react/common:common'), - react_native_target('java/com/facebook/react/modules/core:core'), react_native_dep('third-party/java/infer-annotations:infer-annotations'), react_native_dep('third-party/java/jsr-305:jsr-305'), + react_native_target('java/com/facebook/react/bridge:bridge'), + react_native_target('java/com/facebook/react/common:common'), + react_native_target('java/com/facebook/react/module/annotations:annotations'), + react_native_target('java/com/facebook/react/modules/core:core'), ], visibility = [ 'PUBLIC', diff --git a/ReactAndroid/src/main/java/com/facebook/react/modules/permissions/PermissionsModule.java b/ReactAndroid/src/main/java/com/facebook/react/modules/permissions/PermissionsModule.java index 6918ad425..a27e16023 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/modules/permissions/PermissionsModule.java +++ b/ReactAndroid/src/main/java/com/facebook/react/modules/permissions/PermissionsModule.java @@ -20,12 +20,14 @@ import com.facebook.react.bridge.Promise; import com.facebook.react.bridge.ReactApplicationContext; import com.facebook.react.bridge.ReactContextBaseJavaModule; import com.facebook.react.bridge.ReactMethod; +import com.facebook.react.module.annotations.ReactModule; import com.facebook.react.modules.core.PermissionAwareActivity; import com.facebook.react.modules.core.PermissionListener; /** * Module that exposes the Android M Permission system to JS. */ +@ReactModule(name = "PermissionsAndroid") public class PermissionsModule extends ReactContextBaseJavaModule implements PermissionListener { private final SparseArray mCallbacks; diff --git a/ReactAndroid/src/main/java/com/facebook/react/modules/share/BUCK b/ReactAndroid/src/main/java/com/facebook/react/modules/share/BUCK index 4e95826b0..b24d02934 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/modules/share/BUCK +++ b/ReactAndroid/src/main/java/com/facebook/react/modules/share/BUCK @@ -4,11 +4,12 @@ android_library( name = 'share', srcs = glob(['**/*.java']), deps = [ - react_native_target('java/com/facebook/react/bridge:bridge'), - react_native_target('java/com/facebook/react/common:common'), react_native_dep('libraries/fbcore/src/main/java/com/facebook/common/logging:logging'), react_native_dep('third-party/java/infer-annotations:infer-annotations'), react_native_dep('third-party/java/jsr-305:jsr-305'), + react_native_target('java/com/facebook/react/bridge:bridge'), + react_native_target('java/com/facebook/react/common:common'), + react_native_target('java/com/facebook/react/module/annotations:annotations'), ], visibility = [ 'PUBLIC', diff --git a/ReactAndroid/src/main/java/com/facebook/react/modules/share/ShareModule.java b/ReactAndroid/src/main/java/com/facebook/react/modules/share/ShareModule.java index eee2a42ca..06b4a1aea 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/modules/share/ShareModule.java +++ b/ReactAndroid/src/main/java/com/facebook/react/modules/share/ShareModule.java @@ -11,21 +11,20 @@ package com.facebook.react.modules.share; import android.app.Activity; import android.content.Intent; -import android.net.Uri; import com.facebook.react.bridge.Arguments; -import com.facebook.react.bridge.JSApplicationIllegalArgumentException; import com.facebook.react.bridge.Promise; import com.facebook.react.bridge.ReactApplicationContext; import com.facebook.react.bridge.ReactContextBaseJavaModule; import com.facebook.react.bridge.ReactMethod; import com.facebook.react.bridge.ReadableMap; import com.facebook.react.bridge.WritableMap; -import com.facebook.react.common.ReactConstants; +import com.facebook.react.module.annotations.ReactModule; /** * Intent module. Launch other activities or open URLs. */ +@ReactModule(name = "ShareModule") public class ShareModule extends ReactContextBaseJavaModule { /* package */ static final String ACTION_SHARED = "sharedAction"; @@ -80,11 +79,8 @@ public class ShareModule extends ReactContextBaseJavaModule { WritableMap result = Arguments.createMap(); result.putString("action", ACTION_SHARED); promise.resolve(result); - } catch (Exception e) { promise.reject(ERROR_UNABLE_TO_OPEN_DIALOG, "Failed to open share dialog"); } - } - -} \ No newline at end of file +} diff --git a/ReactAndroid/src/main/java/com/facebook/react/modules/statusbar/BUCK b/ReactAndroid/src/main/java/com/facebook/react/modules/statusbar/BUCK index ba21450a2..aef3b5e02 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/modules/statusbar/BUCK +++ b/ReactAndroid/src/main/java/com/facebook/react/modules/statusbar/BUCK @@ -4,12 +4,13 @@ android_library( name = 'statusbar', srcs = glob(['**/*.java']), deps = [ - react_native_target('java/com/facebook/react/bridge:bridge'), - react_native_target('java/com/facebook/react/common:common'), - react_native_target('java/com/facebook/react/uimanager:uimanager'), react_native_dep('third-party/android/support/v4:lib-support-v4'), react_native_dep('third-party/java/infer-annotations:infer-annotations'), react_native_dep('third-party/java/jsr-305:jsr-305'), + react_native_target('java/com/facebook/react/bridge:bridge'), + react_native_target('java/com/facebook/react/common:common'), + react_native_target('java/com/facebook/react/module/annotations:annotations'), + react_native_target('java/com/facebook/react/uimanager:uimanager'), ], visibility = [ 'PUBLIC', diff --git a/ReactAndroid/src/main/java/com/facebook/react/modules/statusbar/StatusBarModule.java b/ReactAndroid/src/main/java/com/facebook/react/modules/statusbar/StatusBarModule.java index 76554b7e4..931a7821c 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/modules/statusbar/StatusBarModule.java +++ b/ReactAndroid/src/main/java/com/facebook/react/modules/statusbar/StatusBarModule.java @@ -30,11 +30,13 @@ import com.facebook.react.bridge.ReactContextBaseJavaModule; import com.facebook.react.bridge.ReactMethod; import com.facebook.react.bridge.UiThreadUtil; import com.facebook.react.common.MapBuilder; +import com.facebook.react.module.annotations.ReactModule; import com.facebook.react.uimanager.PixelUtil; /** * {@link NativeModule} that allows changing the appearance of the status bar. */ +@ReactModule(name = "StatusBarManager") public class StatusBarModule extends ReactContextBaseJavaModule { private static final String ERROR_NO_ACTIVITY = "E_NO_ACTIVITY"; @@ -55,14 +57,14 @@ public class StatusBarModule extends ReactContextBaseJavaModule { @Override public @Nullable Map getConstants() { final Context context = getReactApplicationContext(); - final int heightResId = context.getResources().getIdentifier("status_bar_height", "dimen", "android"); + final int heightResId = context.getResources() + .getIdentifier("status_bar_height", "dimen", "android"); final float height = heightResId > 0 ? PixelUtil.toDIPFromPixel(context.getResources().getDimensionPixelSize(heightResId)) : 0; return MapBuilder.of( - HEIGHT_KEY, height - ); + HEIGHT_KEY, height); } @ReactMethod @@ -99,8 +101,7 @@ public class StatusBarModule extends ReactContextBaseJavaModule { } res.resolve(null); } - } - ); + }); } else { res.resolve(null); } @@ -132,8 +133,7 @@ public class StatusBarModule extends ReactContextBaseJavaModule { defaultInsets.getSystemWindowInsetLeft(), 0, defaultInsets.getSystemWindowInsetRight(), - defaultInsets.getSystemWindowInsetBottom() - ); + defaultInsets.getSystemWindowInsetBottom()); } }); } else { @@ -143,8 +143,7 @@ public class StatusBarModule extends ReactContextBaseJavaModule { ViewCompat.requestApplyInsets(decorView); res.resolve(null); } - } - ); + }); } } @@ -169,7 +168,6 @@ public class StatusBarModule extends ReactContextBaseJavaModule { res.resolve(null); } - } - ); + }); } } diff --git a/ReactAndroid/src/main/java/com/facebook/react/modules/storage/AsyncStorageModule.java b/ReactAndroid/src/main/java/com/facebook/react/modules/storage/AsyncStorageModule.java index 35b615066..7ccee315b 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/modules/storage/AsyncStorageModule.java +++ b/ReactAndroid/src/main/java/com/facebook/react/modules/storage/AsyncStorageModule.java @@ -26,12 +26,14 @@ import com.facebook.react.bridge.WritableArray; import com.facebook.react.bridge.WritableMap; import com.facebook.react.common.ReactConstants; import com.facebook.react.common.SetBuilder; +import com.facebook.react.module.annotations.ReactModule; import com.facebook.react.modules.common.ModuleDataCleaner; import static com.facebook.react.modules.storage.ReactDatabaseSupplier.KEY_COLUMN; import static com.facebook.react.modules.storage.ReactDatabaseSupplier.TABLE_CATALYST; import static com.facebook.react.modules.storage.ReactDatabaseSupplier.VALUE_COLUMN; +@ReactModule(name = "AsyncSQLiteDBStorage") public final class AsyncStorageModule extends ReactContextBaseJavaModule implements ModuleDataCleaner.Cleanable { diff --git a/ReactAndroid/src/main/java/com/facebook/react/modules/storage/BUCK b/ReactAndroid/src/main/java/com/facebook/react/modules/storage/BUCK index b9d5d418c..2c40f2a13 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/modules/storage/BUCK +++ b/ReactAndroid/src/main/java/com/facebook/react/modules/storage/BUCK @@ -4,12 +4,13 @@ android_library( name = 'storage', srcs = glob(['**/*.java']), deps = [ - react_native_target('java/com/facebook/react/bridge:bridge'), - react_native_target('java/com/facebook/react/common:common'), - react_native_target('java/com/facebook/react/modules/common:common'), react_native_dep('libraries/fbcore/src/main/java/com/facebook/common/logging:logging'), react_native_dep('third-party/java/infer-annotations:infer-annotations'), react_native_dep('third-party/java/jsr-305:jsr-305'), + react_native_target('java/com/facebook/react/bridge:bridge'), + react_native_target('java/com/facebook/react/common:common'), + react_native_target('java/com/facebook/react/module/annotations:annotations'), + react_native_target('java/com/facebook/react/modules/common:common'), ], visibility = [ 'PUBLIC', diff --git a/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/AndroidInfoModule.java b/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/AndroidInfoModule.java index 7ef7dee01..0e432acbe 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/AndroidInfoModule.java +++ b/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/AndroidInfoModule.java @@ -12,6 +12,7 @@ package com.facebook.react.modules.systeminfo; import android.os.Build; import com.facebook.react.bridge.BaseJavaModule; +import com.facebook.react.module.annotations.ReactModule; import java.util.HashMap; import java.util.Map; @@ -21,6 +22,7 @@ import javax.annotation.Nullable; /** * Module that exposes Android Constants to JS. */ +@ReactModule(name = "AndroidConstants") public class AndroidInfoModule extends BaseJavaModule { @Override @@ -30,7 +32,7 @@ public class AndroidInfoModule extends BaseJavaModule { @Override public @Nullable Map getConstants() { - HashMap constants = new HashMap(); + HashMap constants = new HashMap<>(); constants.put("Version", Build.VERSION.SDK_INT); constants.put("ServerHost", AndroidInfoHelpers.getServerHost()); return constants; diff --git a/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/BUCK b/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/BUCK index a7be01fc4..17d47f701 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/BUCK +++ b/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/BUCK @@ -4,10 +4,11 @@ android_library( name = 'systeminfo', srcs = glob(['**/*.java']), deps = [ - react_native_target('java/com/facebook/react/bridge:bridge'), - react_native_target('java/com/facebook/react/common:common'), react_native_dep('third-party/java/infer-annotations:infer-annotations'), react_native_dep('third-party/java/jsr-305:jsr-305'), + react_native_target('java/com/facebook/react/bridge:bridge'), + react_native_target('java/com/facebook/react/common:common'), + react_native_target('java/com/facebook/react/module/annotations:annotations'), ], visibility = [ 'PUBLIC', diff --git a/ReactAndroid/src/main/java/com/facebook/react/modules/timepicker/BUCK b/ReactAndroid/src/main/java/com/facebook/react/modules/timepicker/BUCK index 1b7d3eac3..6c886c981 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/modules/timepicker/BUCK +++ b/ReactAndroid/src/main/java/com/facebook/react/modules/timepicker/BUCK @@ -4,11 +4,12 @@ android_library( name = 'timepicker', srcs = glob(['**/*.java']), deps = [ - react_native_target('java/com/facebook/react/bridge:bridge'), - react_native_target('java/com/facebook/react/common:common'), react_native_dep('third-party/android/support/v4:lib-support-v4'), react_native_dep('third-party/java/infer-annotations:infer-annotations'), react_native_dep('third-party/java/jsr-305:jsr-305'), + react_native_target('java/com/facebook/react/bridge:bridge'), + react_native_target('java/com/facebook/react/common:common'), + react_native_target('java/com/facebook/react/module/annotations:annotations'), ], visibility = [ 'PUBLIC', diff --git a/ReactAndroid/src/main/java/com/facebook/react/modules/timepicker/TimePickerDialogModule.java b/ReactAndroid/src/main/java/com/facebook/react/modules/timepicker/TimePickerDialogModule.java index 7d627b583..6150cf24f 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/modules/timepicker/TimePickerDialogModule.java +++ b/ReactAndroid/src/main/java/com/facebook/react/modules/timepicker/TimePickerDialogModule.java @@ -11,8 +11,6 @@ package com.facebook.react.modules.timepicker; import javax.annotation.Nullable; -import java.util.Map; - import android.app.Activity; import android.app.DialogFragment; import android.app.FragmentManager; @@ -31,11 +29,13 @@ import com.facebook.react.bridge.ReadableMap; import com.facebook.react.bridge.WritableMap; import com.facebook.react.bridge.WritableNativeMap; import com.facebook.react.common.annotations.VisibleForTesting; +import com.facebook.react.module.annotations.ReactModule; /** * {@link NativeModule} that allows JS to show a native time picker dialog and get called back when * the user selects a time. */ +@ReactModule(name = "TimePickerAndroid") public class TimePickerDialogModule extends ReactContextBaseJavaModule { @VisibleForTesting @@ -106,7 +106,7 @@ public class TimePickerDialogModule extends ReactContextBaseJavaModule { android.support.v4.app.FragmentManager fragmentManager = ((android.support.v4.app.FragmentActivity) activity).getSupportFragmentManager(); android.support.v4.app.DialogFragment oldFragment = - (android.support.v4.app.DialogFragment)fragmentManager.findFragmentByTag(FRAGMENT_TAG); + (android.support.v4.app.DialogFragment) fragmentManager.findFragmentByTag(FRAGMENT_TAG); if (oldFragment != null) { oldFragment.dismiss(); } diff --git a/ReactAndroid/src/main/java/com/facebook/react/modules/toast/BUCK b/ReactAndroid/src/main/java/com/facebook/react/modules/toast/BUCK index fdfec87eb..c56b0c3c5 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/modules/toast/BUCK +++ b/ReactAndroid/src/main/java/com/facebook/react/modules/toast/BUCK @@ -4,10 +4,11 @@ android_library( name = 'toast', srcs = glob(['**/*.java']), deps = [ - react_native_target('java/com/facebook/react/bridge:bridge'), - react_native_target('java/com/facebook/react/common:common'), react_native_dep('third-party/java/infer-annotations:infer-annotations'), react_native_dep('third-party/java/jsr-305:jsr-305'), + react_native_target('java/com/facebook/react/bridge:bridge'), + react_native_target('java/com/facebook/react/common:common'), + react_native_target('java/com/facebook/react/module/annotations:annotations'), ], visibility = [ 'PUBLIC', diff --git a/ReactAndroid/src/main/java/com/facebook/react/modules/toast/ToastModule.java b/ReactAndroid/src/main/java/com/facebook/react/modules/toast/ToastModule.java index 243c917a6..1ffc334b7 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/modules/toast/ToastModule.java +++ b/ReactAndroid/src/main/java/com/facebook/react/modules/toast/ToastModule.java @@ -18,12 +18,14 @@ import com.facebook.react.bridge.ReactContextBaseJavaModule; import com.facebook.react.bridge.ReactMethod; import com.facebook.react.common.MapBuilder; import com.facebook.react.bridge.UiThreadUtil; +import com.facebook.react.module.annotations.ReactModule; import java.util.Map; /** * {@link NativeModule} that allows JS to show an Android Toast. */ +@ReactModule(name = "ToastAndroid") public class ToastModule extends ReactContextBaseJavaModule { private static final String DURATION_SHORT_KEY = "SHORT"; diff --git a/ReactAndroid/src/main/java/com/facebook/react/modules/vibration/BUCK b/ReactAndroid/src/main/java/com/facebook/react/modules/vibration/BUCK index 19ceed59d..a21f7ac89 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/modules/vibration/BUCK +++ b/ReactAndroid/src/main/java/com/facebook/react/modules/vibration/BUCK @@ -4,12 +4,13 @@ android_library( name = 'vibration', srcs = glob(['**/*.java']), deps = [ - react_native_target('java/com/facebook/react/bridge:bridge'), - react_native_target('java/com/facebook/react/common:common'), - react_native_target('java/com/facebook/react/modules/core:core'), react_native_dep('libraries/fbcore/src/main/java/com/facebook/common/logging:logging'), react_native_dep('third-party/java/infer-annotations:infer-annotations'), react_native_dep('third-party/java/jsr-305:jsr-305'), + react_native_target('java/com/facebook/react/bridge:bridge'), + react_native_target('java/com/facebook/react/common:common'), + react_native_target('java/com/facebook/react/module/annotations:annotations'), + react_native_target('java/com/facebook/react/modules/core:core'), ], visibility = [ 'PUBLIC', diff --git a/ReactAndroid/src/main/java/com/facebook/react/modules/vibration/VibrationModule.java b/ReactAndroid/src/main/java/com/facebook/react/modules/vibration/VibrationModule.java index 21c54a188..932d82a80 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/modules/vibration/VibrationModule.java +++ b/ReactAndroid/src/main/java/com/facebook/react/modules/vibration/VibrationModule.java @@ -16,7 +16,9 @@ import com.facebook.react.bridge.ReactApplicationContext; import com.facebook.react.bridge.ReactContextBaseJavaModule; import com.facebook.react.bridge.ReactMethod; import com.facebook.react.bridge.ReadableArray; +import com.facebook.react.module.annotations.ReactModule; +@ReactModule(name = "Vibration") public class VibrationModule extends ReactContextBaseJavaModule { public VibrationModule(ReactApplicationContext reactContext) { diff --git a/ReactAndroid/src/main/java/com/facebook/react/modules/websocket/BUCK b/ReactAndroid/src/main/java/com/facebook/react/modules/websocket/BUCK index 7c8af9cca..0fd4d1d68 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/modules/websocket/BUCK +++ b/ReactAndroid/src/main/java/com/facebook/react/modules/websocket/BUCK @@ -12,6 +12,7 @@ android_library( react_native_dep('third-party/java/okio:okio'), react_native_target('java/com/facebook/react/bridge:bridge'), react_native_target('java/com/facebook/react/common:common'), + react_native_target('java/com/facebook/react/module/annotations:annotations'), react_native_target('java/com/facebook/react/modules/core:core'), ], visibility = [ diff --git a/ReactAndroid/src/main/java/com/facebook/react/modules/websocket/WebSocketModule.java b/ReactAndroid/src/main/java/com/facebook/react/modules/websocket/WebSocketModule.java index 3c6799efa..30de3ac5d 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/modules/websocket/WebSocketModule.java +++ b/ReactAndroid/src/main/java/com/facebook/react/modules/websocket/WebSocketModule.java @@ -27,6 +27,7 @@ import com.facebook.react.bridge.ReadableMapKeySetIterator; import com.facebook.react.bridge.ReadableType; import com.facebook.react.bridge.WritableMap; import com.facebook.react.common.ReactConstants; +import com.facebook.react.module.annotations.ReactModule; import com.facebook.react.modules.core.DeviceEventManagerModule; import okhttp3.OkHttpClient; @@ -47,9 +48,11 @@ import java.util.concurrent.TimeUnit; import okio.Buffer; import okio.ByteString; +@ReactModule(name = "WebSocketModule") public class WebSocketModule extends ReactContextBaseJavaModule { - private Map mWebSocketConnections = new HashMap<>(); + private final Map mWebSocketConnections = new HashMap<>(); + private ReactContext mReactContext; public WebSocketModule(ReactApplicationContext context) { @@ -69,7 +72,11 @@ public class WebSocketModule extends ReactContextBaseJavaModule { } @ReactMethod - public void connect(final String url, @Nullable final ReadableArray protocols, @Nullable final ReadableMap headers, final int id) { + public void connect( + final String url, + @Nullable final ReadableArray protocols, + @Nullable final ReadableMap headers, + final int id) { OkHttpClient client = new OkHttpClient.Builder() .connectTimeout(10, TimeUnit.SECONDS) .writeTimeout(10, TimeUnit.SECONDS) @@ -219,7 +226,8 @@ public class WebSocketModule extends ReactContextBaseJavaModule { throw new RuntimeException("Cannot send a message. Unknown WebSocket id " + id); } try { - client.sendMessage(RequestBody.create(WebSocket.BINARY, ByteString.decodeBase64(base64String))); + client.sendMessage( + RequestBody.create(WebSocket.BINARY, ByteString.decodeBase64(base64String))); } catch (IOException | IllegalStateException e) { notifyWebSocketFailed(id, e.getMessage()); } @@ -267,16 +275,18 @@ public class WebSocketModule extends ReactContextBaseJavaModule { } if (requestURI.getPort() != -1) { - defaultOrigin = String.format("%s://%s:%s", scheme, requestURI.getHost(), requestURI.getPort()); + defaultOrigin = String.format( + "%s://%s:%s", + scheme, + requestURI.getHost(), + requestURI.getPort()); } else { defaultOrigin = String.format("%s://%s/", scheme, requestURI.getHost()); } return defaultOrigin; - - } catch(URISyntaxException e) { + } catch (URISyntaxException e) { throw new IllegalArgumentException("Unable to set " + uri + " as default origin header."); } } - }