diff --git a/packages/react-native-codegen/android/gradlePlugin-build/gradlePlugin/src/main/java/com/facebook/react/codegen/generator/resolver/FunctionResolvedType.java b/packages/react-native-codegen/android/gradlePlugin-build/gradlePlugin/src/main/java/com/facebook/react/codegen/generator/resolver/FunctionResolvedType.java index 2a7468ce11e..7896494eebb 100644 --- a/packages/react-native-codegen/android/gradlePlugin-build/gradlePlugin/src/main/java/com/facebook/react/codegen/generator/resolver/FunctionResolvedType.java +++ b/packages/react-native-codegen/android/gradlePlugin-build/gradlePlugin/src/main/java/com/facebook/react/codegen/generator/resolver/FunctionResolvedType.java @@ -103,6 +103,8 @@ public final class FunctionResolvedType extends ResolvedType { // React methods need special `@ReactMethod` annotation for now. methodBuilder.addAnnotation(annotationBuilder.build()); + // TODO(T82242829) Add @DoNotStrip annotation + return methodBuilder.build(); } diff --git a/packages/react-native-codegen/src/generators/modules/GenerateModuleJavaSpec.js b/packages/react-native-codegen/src/generators/modules/GenerateModuleJavaSpec.js index b8238cf4786..34334426418 100644 --- a/packages/react-native-codegen/src/generators/modules/GenerateModuleJavaSpec.js +++ b/packages/react-native-codegen/src/generators/modules/GenerateModuleJavaSpec.js @@ -395,6 +395,7 @@ module.exports = { 'com.facebook.react.bridge.ReactMethod', 'com.facebook.react.bridge.ReactModuleWithSpec', 'com.facebook.react.turbomodule.core.interfaces.TurboModule', + 'com.facebook.proguard.annotations.DoNotStrip', ]); const methods = properties.map(method => { @@ -443,7 +444,7 @@ module.exports = { const methodJavaAnnotation = `@ReactMethod${ isSyncMethod ? '(isBlockingSynchronousMethod = true)' : '' - }`; + }\n @DoNotStrip`; const methodBody = method.optional ? getFalsyReturnStatementFromReturnType( methodTypeAnnotation.returnTypeAnnotation, diff --git a/packages/react-native-codegen/src/generators/modules/__tests__/__snapshots__/GenerateModuleJavaSpec-test.js.snap b/packages/react-native-codegen/src/generators/modules/__tests__/__snapshots__/GenerateModuleJavaSpec-test.js.snap index a5564d2fbaa..5e314758e47 100644 --- a/packages/react-native-codegen/src/generators/modules/__tests__/__snapshots__/GenerateModuleJavaSpec-test.js.snap +++ b/packages/react-native-codegen/src/generators/modules/__tests__/__snapshots__/GenerateModuleJavaSpec-test.js.snap @@ -16,6 +16,7 @@ Map { package com.facebook.fbreact.specs; +import com.facebook.proguard.annotations.DoNotStrip; import com.facebook.react.bridge.Callback; import com.facebook.react.bridge.ReactApplicationContext; import com.facebook.react.bridge.ReactContextBaseJavaModule; @@ -32,15 +33,19 @@ public abstract class NativeSampleTurboModuleSpec extends ReactContextBaseJavaMo } @ReactMethod(isBlockingSynchronousMethod = true) + @DoNotStrip public abstract WritableMap difficult(ReadableMap A); @ReactMethod + @DoNotStrip public abstract void optionals(ReadableMap A); @ReactMethod + @DoNotStrip public void optionalMethod(ReadableMap options, Callback callback, ReadableArray extras) {} @ReactMethod + @DoNotStrip public abstract void getArrays(ReadableMap options); } ", @@ -63,6 +68,7 @@ Map { package com.facebook.fbreact.specs; +import com.facebook.proguard.annotations.DoNotStrip; import com.facebook.react.bridge.ReactApplicationContext; import com.facebook.react.bridge.ReactContextBaseJavaModule; import com.facebook.react.bridge.ReactMethod; @@ -96,6 +102,7 @@ Map { package com.facebook.fbreact.specs; +import com.facebook.proguard.annotations.DoNotStrip; import com.facebook.react.bridge.ReactApplicationContext; import com.facebook.react.bridge.ReactContextBaseJavaModule; import com.facebook.react.bridge.ReactMethod; @@ -109,6 +116,7 @@ public abstract class AliasTurboModuleSpec extends ReactContextBaseJavaModule im } @ReactMethod + @DoNotStrip public abstract void cropImage(ReadableMap cropData); } ", @@ -131,6 +139,7 @@ Map { package com.facebook.fbreact.specs; +import com.facebook.proguard.annotations.DoNotStrip; import com.facebook.react.bridge.Promise; import com.facebook.react.bridge.ReactApplicationContext; import com.facebook.react.bridge.ReactContextBaseJavaModule; @@ -146,12 +155,15 @@ public abstract class NativeCameraRollManagerSpec extends ReactContextBaseJavaMo } @ReactMethod + @DoNotStrip public abstract void getPhotos(ReadableMap params, Promise promise); @ReactMethod + @DoNotStrip public abstract void saveToCameraRoll(String uri, String type, Promise promise); @ReactMethod + @DoNotStrip public abstract void deletePhotos(ReadableArray assets, Promise promise); } ", @@ -169,6 +181,7 @@ public abstract class NativeCameraRollManagerSpec extends ReactContextBaseJavaMo package com.facebook.fbreact.specs; +import com.facebook.proguard.annotations.DoNotStrip; import com.facebook.react.bridge.ReactApplicationContext; import com.facebook.react.bridge.ReactContextBaseJavaModule; import com.facebook.react.bridge.ReactMethod; @@ -183,18 +196,23 @@ public abstract class NativeExceptionsManagerSpec extends ReactContextBaseJavaMo } @ReactMethod + @DoNotStrip public abstract void reportFatalException(String message, ReadableArray stack, double exceptionId); @ReactMethod + @DoNotStrip public abstract void reportSoftException(String message, ReadableArray stack, double exceptionId); @ReactMethod + @DoNotStrip public void reportException(ReadableMap data) {} @ReactMethod + @DoNotStrip public abstract void updateExceptionMessage(String message, ReadableArray stack, double exceptionId); @ReactMethod + @DoNotStrip public void dismissRedbox() {} } ", @@ -217,6 +235,7 @@ Map { package com.facebook.fbreact.specs; +import com.facebook.proguard.annotations.DoNotStrip; import com.facebook.react.bridge.Callback; import com.facebook.react.bridge.Promise; import com.facebook.react.bridge.ReactApplicationContext; @@ -268,33 +287,43 @@ public abstract class NativeSampleTurboModuleSpec extends ReactContextBaseJavaMo } @ReactMethod + @DoNotStrip public abstract void voidFunc(); @ReactMethod(isBlockingSynchronousMethod = true) + @DoNotStrip public abstract boolean getBool(boolean arg); @ReactMethod(isBlockingSynchronousMethod = true) + @DoNotStrip public abstract double getNumber(double arg); @ReactMethod(isBlockingSynchronousMethod = true) + @DoNotStrip public abstract String getString(String arg); @ReactMethod(isBlockingSynchronousMethod = true) + @DoNotStrip public abstract WritableArray getArray(ReadableArray arg); @ReactMethod(isBlockingSynchronousMethod = true) + @DoNotStrip public abstract WritableMap getObject(ReadableMap arg); @ReactMethod(isBlockingSynchronousMethod = true) + @DoNotStrip public abstract double getRootTag(double arg); @ReactMethod(isBlockingSynchronousMethod = true) + @DoNotStrip public abstract WritableMap getValue(double x, String y, ReadableMap z); @ReactMethod + @DoNotStrip public abstract void getValueWithCallback(Callback callback); @ReactMethod + @DoNotStrip public abstract void getValueWithPromise(boolean error, Promise promise); } ", @@ -317,6 +346,7 @@ Map { package com.facebook.fbreact.specs; +import com.facebook.proguard.annotations.DoNotStrip; import com.facebook.react.bridge.ReactApplicationContext; import com.facebook.react.bridge.ReactContextBaseJavaModule; import com.facebook.react.bridge.ReactMethod; @@ -329,6 +359,7 @@ public abstract class NativeSampleTurboModuleSpec extends ReactContextBaseJavaMo } @ReactMethod + @DoNotStrip public abstract void voidFunc(); } ", @@ -346,6 +377,7 @@ public abstract class NativeSampleTurboModuleSpec extends ReactContextBaseJavaMo package com.facebook.fbreact.specs; +import com.facebook.proguard.annotations.DoNotStrip; import com.facebook.react.bridge.ReactApplicationContext; import com.facebook.react.bridge.ReactContextBaseJavaModule; import com.facebook.react.bridge.ReactMethod; @@ -358,6 +390,7 @@ public abstract class NativeSampleTurboModule2Spec extends ReactContextBaseJavaM } @ReactMethod + @DoNotStrip public abstract void voidFunc(); } ",