mirror of
https://github.com/facebook/react-native.git
synced 2024-11-21 22:10:14 +00:00
Convert com.facebook.react.ReactPackageHelper to Kotlin (#47683)
Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/47683 Changelog: [Internal] Reviewed By: mdvacca Differential Revision: D66131407 fbshipit-source-id: 73d637afea71a77140051efd8001d6ceebc32a43
This commit is contained in:
parent
e0a5bbe309
commit
e80bdb88be
@ -1,56 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
||||||
*
|
|
||||||
* This source code is licensed under the MIT license found in the
|
|
||||||
* LICENSE file in the root directory of this source tree.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.facebook.react;
|
|
||||||
|
|
||||||
import com.facebook.common.logging.FLog;
|
|
||||||
import com.facebook.react.bridge.ModuleHolder;
|
|
||||||
import com.facebook.react.bridge.NativeModule;
|
|
||||||
import com.facebook.react.bridge.ReactApplicationContext;
|
|
||||||
import com.facebook.react.common.ReactConstants;
|
|
||||||
import java.util.Iterator;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
class ReactPackageHelper {
|
|
||||||
/**
|
|
||||||
* A helper method to iterate over a list of Native Modules and convert them to an iterable.
|
|
||||||
*
|
|
||||||
* @param reactPackage
|
|
||||||
* @param reactApplicationContext
|
|
||||||
* @param reactInstanceManager
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
/** package */
|
|
||||||
static Iterable<ModuleHolder> getNativeModuleIterator(
|
|
||||||
ReactPackage reactPackage, ReactApplicationContext reactApplicationContext) {
|
|
||||||
FLog.d(
|
|
||||||
ReactConstants.TAG,
|
|
||||||
reactPackage.getClass().getSimpleName()
|
|
||||||
+ " is not a LazyReactPackage, falling back to old version.");
|
|
||||||
final List<NativeModule> nativeModules =
|
|
||||||
reactPackage.createNativeModules(reactApplicationContext);
|
|
||||||
return () ->
|
|
||||||
new Iterator<ModuleHolder>() {
|
|
||||||
int position = 0;
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public ModuleHolder next() {
|
|
||||||
return new ModuleHolder(nativeModules.get(position++));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean hasNext() {
|
|
||||||
return position < nativeModules.size();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void remove() {
|
|
||||||
throw new UnsupportedOperationException("Cannot remove methods ");
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
}
|
|
@ -0,0 +1,43 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
||||||
|
*
|
||||||
|
* This source code is licensed under the MIT license found in the
|
||||||
|
* LICENSE file in the root directory of this source tree.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.facebook.react
|
||||||
|
|
||||||
|
import com.facebook.common.logging.FLog
|
||||||
|
import com.facebook.react.bridge.ModuleHolder
|
||||||
|
import com.facebook.react.bridge.ReactApplicationContext
|
||||||
|
import com.facebook.react.common.ReactConstants
|
||||||
|
|
||||||
|
internal object ReactPackageHelper {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A helper method to iterate over a list of Native Modules and convert them to an iterable.
|
||||||
|
*
|
||||||
|
* @param reactPackage
|
||||||
|
* @param reactApplicationContext
|
||||||
|
* @param reactInstanceManager
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
fun getNativeModuleIterator(
|
||||||
|
reactPackage: ReactPackage,
|
||||||
|
reactApplicationContext: ReactApplicationContext
|
||||||
|
): Iterable<ModuleHolder> {
|
||||||
|
FLog.d(
|
||||||
|
ReactConstants.TAG,
|
||||||
|
"${reactPackage.javaClass.simpleName} is not a LazyReactPackage, falling back to old version.")
|
||||||
|
val nativeModules = reactPackage.createNativeModules(reactApplicationContext)
|
||||||
|
return Iterable {
|
||||||
|
object : Iterator<ModuleHolder> {
|
||||||
|
var position = 0
|
||||||
|
|
||||||
|
override fun next(): ModuleHolder = ModuleHolder(nativeModules[position++])
|
||||||
|
|
||||||
|
override fun hasNext(): Boolean = position < nativeModules.size
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user