From 40a367e0a3700263e6f08bed86a80bb982dc3085 Mon Sep 17 00:00:00 2001 From: Ramanpreet Nara Date: Thu, 30 Sep 2021 20:48:29 -0700 Subject: [PATCH] Make ClipboardModule TurboModule-compatible Summary: We forgot to make ClipboardModule TurboModule compatible. I think this was most likely because our codemods targeted all Java classes that extended ReactContextBaseJavaModule. The ClipboardModule extends ContextBaseJavaModule instead. There are no other NativeModules that extend ContextBaseJavaModule. Changelog: [Internal] Reviewed By: sshic Differential Revision: D31291293 fbshipit-source-id: cf5d21898101699f8c349b013a77e8329339a8d3 --- .../com/facebook/react/modules/clipboard/BUCK | 5 ++++- .../modules/clipboard/ClipboardModule.java | 17 +++++++++-------- .../modules/clipboard/ClipboardModuleTest.java | 4 +++- 3 files changed, 16 insertions(+), 10 deletions(-) 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 0e46f879509..0f9a670a69b 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/modules/clipboard/BUCK +++ b/ReactAndroid/src/main/java/com/facebook/react/modules/clipboard/BUCK @@ -1,4 +1,4 @@ -load("//tools/build_defs/oss:rn_defs.bzl", "react_native_dep", "react_native_target", "rn_android_library") +load("//tools/build_defs/oss:rn_defs.bzl", "react_native_dep", "react_native_root_target", "react_native_target", "rn_android_library") rn_android_library( name = "clipboard", @@ -16,4 +16,7 @@ rn_android_library( react_native_target("java/com/facebook/react/common:common"), react_native_target("java/com/facebook/react/module/annotations:annotations"), ], + exported_deps = [ + react_native_root_target(":FBReactNativeSpec"), + ], ) 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 43f8b5c69da..fd152947efd 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 @@ -9,17 +9,16 @@ package com.facebook.react.modules.clipboard; import android.content.ClipData; import android.content.ClipboardManager; -import android.content.Context; -import com.facebook.react.bridge.ContextBaseJavaModule; +import com.facebook.fbreact.specs.NativeClipboardSpec; import com.facebook.react.bridge.Promise; -import com.facebook.react.bridge.ReactMethod; +import com.facebook.react.bridge.ReactApplicationContext; import com.facebook.react.module.annotations.ReactModule; /** A module that allows JS to get/set clipboard contents. */ @ReactModule(name = ClipboardModule.NAME) -public class ClipboardModule extends ContextBaseJavaModule { +public class ClipboardModule extends NativeClipboardSpec { - public ClipboardModule(Context context) { + public ClipboardModule(ReactApplicationContext context) { super(context); } @@ -31,10 +30,12 @@ public class ClipboardModule extends ContextBaseJavaModule { } private ClipboardManager getClipboardService() { - return (ClipboardManager) getContext().getSystemService(getContext().CLIPBOARD_SERVICE); + return (ClipboardManager) + getReactApplicationContext() + .getSystemService(getReactApplicationContext().CLIPBOARD_SERVICE); } - @ReactMethod + @Override public void getString(Promise promise) { try { ClipboardManager clipboard = getClipboardService(); @@ -50,7 +51,7 @@ public class ClipboardModule extends ContextBaseJavaModule { } } - @ReactMethod + @Override public void setString(String text) { ClipData clipdata = ClipData.newPlainText(null, text); ClipboardManager clipboard = getClipboardService(); diff --git a/ReactAndroid/src/test/java/com/facebook/react/modules/clipboard/ClipboardModuleTest.java b/ReactAndroid/src/test/java/com/facebook/react/modules/clipboard/ClipboardModuleTest.java index fb84ba47caa..21ab31a27b8 100644 --- a/ReactAndroid/src/test/java/com/facebook/react/modules/clipboard/ClipboardModuleTest.java +++ b/ReactAndroid/src/test/java/com/facebook/react/modules/clipboard/ClipboardModuleTest.java @@ -13,6 +13,7 @@ import static org.junit.Assert.assertTrue; import android.annotation.SuppressLint; import android.content.Context; import android.text.ClipboardManager; +import com.facebook.react.bridge.ReactApplicationContext; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; @@ -32,7 +33,8 @@ public class ClipboardModuleTest { @Before public void setUp() { - mClipboardModule = new ClipboardModule(RuntimeEnvironment.application); + mClipboardModule = + new ClipboardModule(new ReactApplicationContext(RuntimeEnvironment.application)); mClipboardManager = (ClipboardManager) RuntimeEnvironment.application.getSystemService(Context.CLIPBOARD_SERVICE);