Support narrower module dependencies
Reviewed By: javache Differential Revision: D4772632 fbshipit-source-id: 615bf8998a3817364d0f8bd435c95c2c1f1bebed
This commit is contained in:
parent
5f5da4e122
commit
0b2ac0ada8
|
@ -0,0 +1,32 @@
|
|||
/**
|
||||
* Copyright (c) 2015-present, Facebook, Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This source code is licensed under the BSD-style license found in the
|
||||
* LICENSE file in the root directory of this source tree. An additional grant
|
||||
* of patent rights can be found in the PATENTS file in the same directory.
|
||||
*/
|
||||
|
||||
package com.facebook.react.bridge;
|
||||
|
||||
import android.content.Context;
|
||||
|
||||
/**
|
||||
* Base class for React native modules that require access to an Android
|
||||
* {@link Context} instance.
|
||||
*/
|
||||
public abstract class ContextBaseJavaModule extends BaseJavaModule {
|
||||
|
||||
private final Context mContext;
|
||||
|
||||
public ContextBaseJavaModule(Context context) {
|
||||
mContext = context;
|
||||
}
|
||||
|
||||
/**
|
||||
* Subclasses can use this method to access Android context passed as a constructor
|
||||
*/
|
||||
protected final Context getContext() {
|
||||
return mContext;
|
||||
}
|
||||
}
|
|
@ -12,10 +12,10 @@ package com.facebook.react.modules.clipboard;
|
|||
import android.annotation.SuppressLint;
|
||||
import android.content.ClipboardManager;
|
||||
import android.content.ClipData;
|
||||
import android.content.Context;
|
||||
import android.os.Build;
|
||||
|
||||
import com.facebook.react.bridge.ReactApplicationContext;
|
||||
import com.facebook.react.bridge.ReactContextBaseJavaModule;
|
||||
import com.facebook.react.bridge.ContextBaseJavaModule;
|
||||
import com.facebook.react.bridge.ReactMethod;
|
||||
import com.facebook.react.bridge.Promise;
|
||||
import com.facebook.react.module.annotations.ReactModule;
|
||||
|
@ -24,10 +24,10 @@ 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 class ClipboardModule extends ContextBaseJavaModule {
|
||||
|
||||
public ClipboardModule(ReactApplicationContext reactContext) {
|
||||
super(reactContext);
|
||||
public ClipboardModule(Context context) {
|
||||
super(context);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -36,7 +36,7 @@ public class ClipboardModule extends ReactContextBaseJavaModule {
|
|||
}
|
||||
|
||||
private ClipboardManager getClipboardService() {
|
||||
return (ClipboardManager) getReactApplicationContext().getSystemService(getReactApplicationContext().CLIPBOARD_SERVICE);
|
||||
return (ClipboardManager) getContext().getSystemService(getContext().CLIPBOARD_SERVICE);
|
||||
}
|
||||
|
||||
@ReactMethod
|
||||
|
@ -60,7 +60,6 @@ public class ClipboardModule extends ReactContextBaseJavaModule {
|
|||
@SuppressLint("DeprecatedMethod")
|
||||
@ReactMethod
|
||||
public void setString(String text) {
|
||||
ReactApplicationContext reactContext = getReactApplicationContext();
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
|
||||
ClipData clipdata = ClipData.newPlainText(null, text);
|
||||
ClipboardManager clipboard = getClipboardService();
|
||||
|
|
|
@ -35,14 +35,18 @@ std::unique_ptr<ModuleRegistry> buildModuleRegistry(
|
|||
jni::alias_ref<jni::JCollection<ModuleHolder::javaobject>::javaobject> cxxModules,
|
||||
std::shared_ptr<MessageQueueThread> moduleMessageQueue) {
|
||||
std::vector<std::unique_ptr<NativeModule>> modules;
|
||||
if (javaModules) {
|
||||
for (const auto& jm : *javaModules) {
|
||||
modules.emplace_back(folly::make_unique<JavaNativeModule>(
|
||||
winstance, jm, moduleMessageQueue));
|
||||
}
|
||||
}
|
||||
if (cxxModules) {
|
||||
for (const auto& cm : *cxxModules) {
|
||||
modules.emplace_back(folly::make_unique<CxxNativeModule>(
|
||||
winstance, cm->getName(), cm->getProvider(), moduleMessageQueue));
|
||||
}
|
||||
}
|
||||
if (modules.empty()) {
|
||||
return nullptr;
|
||||
} else {
|
||||
|
|
|
@ -39,7 +39,7 @@ public class ClipboardModuleTest {
|
|||
|
||||
@Before
|
||||
public void setUp() {
|
||||
mClipboardModule = new ClipboardModule(ReactTestHelper.createCatalystContextForTest());
|
||||
mClipboardModule = new ClipboardModule(RuntimeEnvironment.application);
|
||||
mClipboardManager =
|
||||
(ClipboardManager) RuntimeEnvironment.application.getSystemService(Context.CLIPBOARD_SERVICE);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue