mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
Migrate MainReactPackage to Kotlin (#47070)
Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/47070 For the sake of Stable API, I'd like to get this class converted to Kotlin The class is becoming `final` so could be breaking for some users if they subclass `MainReactPackage` which I believe this should not be a valid usage of this API. Changelog: [Android] [Changed] - Migrate MainReactPackage to Kotlin (and make it final) Reviewed By: tdn120 Differential Revision: D64479418 fbshipit-source-id: 24a07de4e5796a7b82ba34c9b36511b8fc526f1a
This commit is contained in:
committed by
Facebook GitHub Bot
parent
2d2bb9c588
commit
7bbac8ee27
@@ -3028,6 +3028,8 @@ public abstract interface class com/facebook/react/module/model/ReactModuleInfoP
|
||||
}
|
||||
|
||||
public final class com/facebook/react/modules/accessibilityinfo/AccessibilityInfoModule : com/facebook/fbreact/specs/NativeAccessibilityInfoSpec, com/facebook/react/bridge/LifecycleEventListener {
|
||||
public static final field Companion Lcom/facebook/react/modules/accessibilityinfo/AccessibilityInfoModule$Companion;
|
||||
public static final field NAME Ljava/lang/String;
|
||||
public fun <init> (Lcom/facebook/react/bridge/ReactApplicationContext;)V
|
||||
public fun announceForAccessibility (Ljava/lang/String;)V
|
||||
public fun getRecommendedTimeoutMillis (DLcom/facebook/react/bridge/Callback;)V
|
||||
@@ -3043,6 +3045,9 @@ public final class com/facebook/react/modules/accessibilityinfo/AccessibilityInf
|
||||
public fun setAccessibilityFocus (D)V
|
||||
}
|
||||
|
||||
public final class com/facebook/react/modules/accessibilityinfo/AccessibilityInfoModule$Companion {
|
||||
}
|
||||
|
||||
public final class com/facebook/react/modules/appearance/AppearanceModule : com/facebook/fbreact/specs/NativeAppearanceSpec {
|
||||
public static final field Companion Lcom/facebook/react/modules/appearance/AppearanceModule$Companion;
|
||||
public static final field NAME Ljava/lang/String;
|
||||
@@ -3387,11 +3392,16 @@ public final class com/facebook/react/modules/devloading/DevLoadingModule$Compan
|
||||
}
|
||||
|
||||
public final class com/facebook/react/modules/devtoolsruntimesettings/ReactDevToolsRuntimeSettingsModule : com/facebook/fbreact/specs/NativeReactDevToolsRuntimeSettingsModuleSpec {
|
||||
public static final field Companion Lcom/facebook/react/modules/devtoolsruntimesettings/ReactDevToolsRuntimeSettingsModule$Companion;
|
||||
public static final field NAME Ljava/lang/String;
|
||||
public fun <init> (Lcom/facebook/react/bridge/ReactApplicationContext;)V
|
||||
public fun getReloadAndProfileConfig ()Lcom/facebook/react/bridge/WritableMap;
|
||||
public fun setReloadAndProfileConfig (Lcom/facebook/react/bridge/ReadableMap;)V
|
||||
}
|
||||
|
||||
public final class com/facebook/react/modules/devtoolsruntimesettings/ReactDevToolsRuntimeSettingsModule$Companion {
|
||||
}
|
||||
|
||||
public class com/facebook/react/modules/dialog/AlertFragment : androidx/fragment/app/DialogFragment, android/content/DialogInterface$OnClickListener {
|
||||
public fun <init> ()V
|
||||
public fun <init> (Lcom/facebook/react/modules/dialog/DialogModule$AlertFragmentListener;Landroid/os/Bundle;)V
|
||||
@@ -3414,6 +3424,7 @@ public class com/facebook/react/modules/dialog/DialogModule : com/facebook/fbrea
|
||||
|
||||
public class com/facebook/react/modules/fresco/FrescoModule : com/facebook/react/bridge/ReactContextBaseJavaModule, com/facebook/react/bridge/LifecycleEventListener, com/facebook/react/modules/common/ModuleDataCleaner$Cleanable, com/facebook/react/turbomodule/core/interfaces/TurboModule {
|
||||
public static final field Companion Lcom/facebook/react/modules/fresco/FrescoModule$Companion;
|
||||
public static final field NAME Ljava/lang/String;
|
||||
public fun <init> (Lcom/facebook/react/bridge/ReactApplicationContext;)V
|
||||
public fun <init> (Lcom/facebook/react/bridge/ReactApplicationContext;Lcom/facebook/imagepipeline/core/ImagePipeline;)V
|
||||
public fun <init> (Lcom/facebook/react/bridge/ReactApplicationContext;Lcom/facebook/imagepipeline/core/ImagePipeline;Z)V
|
||||
@@ -3469,6 +3480,8 @@ public final class com/facebook/react/modules/fresco/XmlFormat {
|
||||
}
|
||||
|
||||
public final class com/facebook/react/modules/i18nmanager/I18nManagerModule : com/facebook/fbreact/specs/NativeI18nManagerSpec {
|
||||
public static final field Companion Lcom/facebook/react/modules/i18nmanager/I18nManagerModule$Companion;
|
||||
public static final field NAME Ljava/lang/String;
|
||||
public fun <init> (Lcom/facebook/react/bridge/ReactApplicationContext;)V
|
||||
public fun allowRTL (Z)V
|
||||
public fun forceRTL (Z)V
|
||||
@@ -3476,6 +3489,9 @@ public final class com/facebook/react/modules/i18nmanager/I18nManagerModule : co
|
||||
public fun swapLeftAndRightInRTL (Z)V
|
||||
}
|
||||
|
||||
public final class com/facebook/react/modules/i18nmanager/I18nManagerModule$Companion {
|
||||
}
|
||||
|
||||
public final class com/facebook/react/modules/i18nmanager/I18nUtil {
|
||||
public static final field Companion Lcom/facebook/react/modules/i18nmanager/I18nUtil$Companion;
|
||||
public final fun allowRTL (Landroid/content/Context;Z)V
|
||||
@@ -3647,6 +3663,8 @@ public class com/facebook/react/modules/network/TLSSocketFactory : javax/net/ssl
|
||||
}
|
||||
|
||||
public final class com/facebook/react/modules/permissions/PermissionsModule : com/facebook/fbreact/specs/NativePermissionsAndroidSpec, com/facebook/react/modules/core/PermissionListener {
|
||||
public static final field Companion Lcom/facebook/react/modules/permissions/PermissionsModule$Companion;
|
||||
public static final field NAME Ljava/lang/String;
|
||||
public fun <init> (Lcom/facebook/react/bridge/ReactApplicationContext;)V
|
||||
public fun checkPermission (Ljava/lang/String;Lcom/facebook/react/bridge/Promise;)V
|
||||
public fun onRequestPermissionsResult (I[Ljava/lang/String;[I)Z
|
||||
@@ -3655,15 +3673,24 @@ public final class com/facebook/react/modules/permissions/PermissionsModule : co
|
||||
public fun shouldShowRequestPermissionRationale (Ljava/lang/String;Lcom/facebook/react/bridge/Promise;)V
|
||||
}
|
||||
|
||||
public final class com/facebook/react/modules/permissions/PermissionsModule$Companion {
|
||||
}
|
||||
|
||||
public final class com/facebook/react/modules/reactdevtoolssettings/ReactDevToolsSettingsManagerModule : com/facebook/fbreact/specs/NativeReactDevToolsSettingsManagerSpec {
|
||||
public static final field Companion Lcom/facebook/react/modules/reactdevtoolssettings/ReactDevToolsSettingsManagerModule$Companion;
|
||||
public static final field NAME Ljava/lang/String;
|
||||
public fun <init> (Lcom/facebook/react/bridge/ReactApplicationContext;)V
|
||||
public fun getGlobalHookSettings ()Ljava/lang/String;
|
||||
public fun setGlobalHookSettings (Ljava/lang/String;)V
|
||||
}
|
||||
|
||||
public final class com/facebook/react/modules/reactdevtoolssettings/ReactDevToolsSettingsManagerModule$Companion {
|
||||
}
|
||||
|
||||
public final class com/facebook/react/modules/share/ShareModule : com/facebook/fbreact/specs/NativeShareModuleSpec {
|
||||
public static final field Companion Lcom/facebook/react/modules/share/ShareModule$Companion;
|
||||
public static final field ERROR_INVALID_CONTENT Ljava/lang/String;
|
||||
public static final field NAME Ljava/lang/String;
|
||||
public fun <init> (Lcom/facebook/react/bridge/ReactApplicationContext;)V
|
||||
public fun share (Lcom/facebook/react/bridge/ReadableMap;Ljava/lang/String;Lcom/facebook/react/bridge/Promise;)V
|
||||
}
|
||||
@@ -3672,10 +3699,15 @@ public final class com/facebook/react/modules/share/ShareModule$Companion {
|
||||
}
|
||||
|
||||
public final class com/facebook/react/modules/sound/SoundManagerModule : com/facebook/fbreact/specs/NativeSoundManagerSpec {
|
||||
public static final field Companion Lcom/facebook/react/modules/sound/SoundManagerModule$Companion;
|
||||
public static final field NAME Ljava/lang/String;
|
||||
public fun <init> (Lcom/facebook/react/bridge/ReactApplicationContext;)V
|
||||
public fun playTouchSound ()V
|
||||
}
|
||||
|
||||
public final class com/facebook/react/modules/sound/SoundManagerModule$Companion {
|
||||
}
|
||||
|
||||
public final class com/facebook/react/modules/statusbar/StatusBarModule : com/facebook/fbreact/specs/NativeStatusBarManagerAndroidSpec {
|
||||
public static final field Companion Lcom/facebook/react/modules/statusbar/StatusBarModule$Companion;
|
||||
public static final field NAME Ljava/lang/String;
|
||||
@@ -3729,12 +3761,17 @@ public final class com/facebook/react/modules/toast/ToastModule$Companion {
|
||||
}
|
||||
|
||||
public final class com/facebook/react/modules/vibration/VibrationModule : com/facebook/fbreact/specs/NativeVibrationSpec {
|
||||
public static final field Companion Lcom/facebook/react/modules/vibration/VibrationModule$Companion;
|
||||
public static final field NAME Ljava/lang/String;
|
||||
public fun <init> (Lcom/facebook/react/bridge/ReactApplicationContext;)V
|
||||
public fun cancel ()V
|
||||
public fun vibrate (D)V
|
||||
public fun vibrateByPattern (Lcom/facebook/react/bridge/ReadableArray;D)V
|
||||
}
|
||||
|
||||
public final class com/facebook/react/modules/vibration/VibrationModule$Companion {
|
||||
}
|
||||
|
||||
public final class com/facebook/react/modules/websocket/WebSocketModule : com/facebook/fbreact/specs/NativeWebSocketModuleSpec {
|
||||
public fun <init> (Lcom/facebook/react/bridge/ReactApplicationContext;)V
|
||||
public fun addListener (Ljava/lang/String;)V
|
||||
@@ -4022,16 +4059,17 @@ public final class com/facebook/react/shell/MainPackageConfig {
|
||||
public final fun getFrescoConfig ()Lcom/facebook/imagepipeline/core/ImagePipelineConfig;
|
||||
}
|
||||
|
||||
public class com/facebook/react/shell/MainReactPackage : com/facebook/react/BaseReactPackage, com/facebook/react/ViewManagerOnDemandReactPackage {
|
||||
public final class com/facebook/react/shell/MainReactPackage : com/facebook/react/BaseReactPackage, com/facebook/react/ViewManagerOnDemandReactPackage {
|
||||
public fun <init> ()V
|
||||
public fun <init> (Lcom/facebook/react/shell/MainPackageConfig;)V
|
||||
public synthetic fun <init> (Lcom/facebook/react/shell/MainPackageConfig;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
|
||||
public fun createViewManager (Lcom/facebook/react/bridge/ReactApplicationContext;Ljava/lang/String;)Lcom/facebook/react/uimanager/ViewManager;
|
||||
public fun createViewManagers (Lcom/facebook/react/bridge/ReactApplicationContext;)Ljava/util/List;
|
||||
public fun getModule (Ljava/lang/String;Lcom/facebook/react/bridge/ReactApplicationContext;)Lcom/facebook/react/bridge/NativeModule;
|
||||
public fun getReactModuleInfoProvider ()Lcom/facebook/react/module/model/ReactModuleInfoProvider;
|
||||
public fun getViewManagerNames (Lcom/facebook/react/bridge/ReactApplicationContext;)Ljava/util/Collection;
|
||||
public fun getViewManagers (Lcom/facebook/react/bridge/ReactApplicationContext;)Ljava/util/List;
|
||||
public fun getViewManagersMap ()Ljava/util/Map;
|
||||
public final fun getViewManagersMap ()Ljava/util/Map;
|
||||
}
|
||||
|
||||
public class com/facebook/react/shell/MainReactPackage$$ReactModuleInfoProvider : com/facebook/react/module/model/ReactModuleInfoProvider {
|
||||
|
||||
+2
-1
@@ -255,7 +255,8 @@ public class AccessibilityInfoModule(context: ReactApplicationContext) :
|
||||
successCallback.invoke(recommendedTimeout)
|
||||
}
|
||||
|
||||
private companion object {
|
||||
public companion object {
|
||||
public const val NAME: String = NativeAccessibilityInfoSpec.NAME
|
||||
private const val REDUCE_MOTION_EVENT_NAME = "reduceMotionDidChange"
|
||||
private const val HIGH_TEXT_CONTRAST_EVENT_NAME = "highTextContrastDidChange"
|
||||
private const val TOUCH_EXPLORATION_EVENT_NAME = "touchExplorationDidChange"
|
||||
|
||||
+3
-2
@@ -25,9 +25,10 @@ private class Settings {
|
||||
public class ReactDevToolsRuntimeSettingsModule(reactContext: ReactApplicationContext?) :
|
||||
NativeReactDevToolsRuntimeSettingsModuleSpec(reactContext) {
|
||||
|
||||
// static to persist across Turbo Module reloads
|
||||
private companion object {
|
||||
public companion object {
|
||||
// static to persist across Turbo Module reloads
|
||||
private val settings = Settings()
|
||||
public const val NAME: String = NativeReactDevToolsRuntimeSettingsModuleSpec.NAME
|
||||
}
|
||||
|
||||
override fun setReloadAndProfileConfig(map: ReadableMap) {
|
||||
|
||||
+1
-1
@@ -132,7 +132,7 @@ constructor(
|
||||
}
|
||||
|
||||
public companion object {
|
||||
internal const val NAME = "FrescoModule"
|
||||
public const val NAME: String = "FrescoModule"
|
||||
private var hasBeenInitialized = false
|
||||
|
||||
/**
|
||||
|
||||
+4
@@ -35,4 +35,8 @@ public class I18nManagerModule(context: ReactApplicationContext?) : NativeI18nMa
|
||||
override fun swapLeftAndRightInRTL(value: Boolean) {
|
||||
I18nUtil.instance.swapLeftAndRightInRTL(getReactApplicationContext(), value)
|
||||
}
|
||||
|
||||
public companion object {
|
||||
public const val NAME: String = NativeI18nManagerSpec.NAME
|
||||
}
|
||||
}
|
||||
|
||||
+2
-1
@@ -183,7 +183,8 @@ public class PermissionsModule(reactContext: ReactApplicationContext?) :
|
||||
return activity
|
||||
}
|
||||
|
||||
private companion object {
|
||||
public companion object {
|
||||
public const val NAME: String = NativePermissionsAndroidSpec.NAME
|
||||
private const val ERROR_INVALID_ACTIVITY = "E_INVALID_ACTIVITY"
|
||||
}
|
||||
}
|
||||
|
||||
+2
-1
@@ -26,7 +26,8 @@ public class ReactDevToolsSettingsManagerModule(reactContext: ReactApplicationCo
|
||||
public override fun getGlobalHookSettings(): String? =
|
||||
sharedPreferences.getString(KEY_HOOK_SETTINGS, null)
|
||||
|
||||
private companion object {
|
||||
public companion object {
|
||||
public const val NAME: String = NativeReactDevToolsSettingsManagerSpec.NAME
|
||||
private const val SHARED_PREFERENCES_PREFIX = "ReactNative__DevToolsSettings"
|
||||
private const val KEY_HOOK_SETTINGS = "HookSettings"
|
||||
}
|
||||
|
||||
+1
@@ -59,6 +59,7 @@ public class ShareModule(reactContext: ReactApplicationContext) :
|
||||
}
|
||||
|
||||
public companion object {
|
||||
public const val NAME: String = NativeShareModuleSpec.NAME
|
||||
const private val ACTION_SHARED: String = "sharedAction"
|
||||
const public val ERROR_INVALID_CONTENT: String = "E_INVALID_CONTENT"
|
||||
const private val ERROR_UNABLE_TO_OPEN_DIALOG: String = "E_UNABLE_TO_OPEN_DIALOG"
|
||||
|
||||
+4
@@ -23,4 +23,8 @@ public class SoundManagerModule(reactContext: ReactApplicationContext?) :
|
||||
getReactApplicationContext().getSystemService(Context.AUDIO_SERVICE) as AudioManager
|
||||
audioManager.playSoundEffect(AudioManager.FX_KEY_CLICK)
|
||||
}
|
||||
|
||||
public companion object {
|
||||
public const val NAME: String = NativeSoundManagerSpec.NAME
|
||||
}
|
||||
}
|
||||
|
||||
+4
@@ -61,4 +61,8 @@ public class VibrationModule(reactContext: ReactApplicationContext) :
|
||||
@Suppress("DEPRECATION")
|
||||
getReactApplicationContext().getSystemService(Context.VIBRATOR_SERVICE) as Vibrator?
|
||||
}
|
||||
|
||||
public companion object {
|
||||
public const val NAME: String = NativeVibrationSpec.NAME
|
||||
}
|
||||
}
|
||||
|
||||
-335
@@ -1,335 +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.shell;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import androidx.annotation.Nullable;
|
||||
import com.facebook.react.BaseReactPackage;
|
||||
import com.facebook.react.ViewManagerOnDemandReactPackage;
|
||||
import com.facebook.react.animated.NativeAnimatedModule;
|
||||
import com.facebook.react.bridge.ModuleSpec;
|
||||
import com.facebook.react.bridge.NativeModule;
|
||||
import com.facebook.react.bridge.ReactApplicationContext;
|
||||
import com.facebook.react.common.ClassFinder;
|
||||
import com.facebook.react.module.annotations.ReactModule;
|
||||
import com.facebook.react.module.annotations.ReactModuleList;
|
||||
import com.facebook.react.module.model.ReactModuleInfo;
|
||||
import com.facebook.react.module.model.ReactModuleInfoProvider;
|
||||
import com.facebook.react.modules.accessibilityinfo.AccessibilityInfoModule;
|
||||
import com.facebook.react.modules.appearance.AppearanceModule;
|
||||
import com.facebook.react.modules.appstate.AppStateModule;
|
||||
import com.facebook.react.modules.blob.BlobModule;
|
||||
import com.facebook.react.modules.blob.FileReaderModule;
|
||||
import com.facebook.react.modules.camera.ImageStoreManager;
|
||||
import com.facebook.react.modules.clipboard.ClipboardModule;
|
||||
import com.facebook.react.modules.devloading.DevLoadingModule;
|
||||
import com.facebook.react.modules.devtoolsruntimesettings.ReactDevToolsRuntimeSettingsModule;
|
||||
import com.facebook.react.modules.dialog.DialogModule;
|
||||
import com.facebook.react.modules.fresco.FrescoModule;
|
||||
import com.facebook.react.modules.i18nmanager.I18nManagerModule;
|
||||
import com.facebook.react.modules.image.ImageLoaderModule;
|
||||
import com.facebook.react.modules.intent.IntentModule;
|
||||
import com.facebook.react.modules.network.NetworkingModule;
|
||||
import com.facebook.react.modules.permissions.PermissionsModule;
|
||||
import com.facebook.react.modules.reactdevtoolssettings.ReactDevToolsSettingsManagerModule;
|
||||
import com.facebook.react.modules.share.ShareModule;
|
||||
import com.facebook.react.modules.sound.SoundManagerModule;
|
||||
import com.facebook.react.modules.statusbar.StatusBarModule;
|
||||
import com.facebook.react.modules.toast.ToastModule;
|
||||
import com.facebook.react.modules.vibration.VibrationModule;
|
||||
import com.facebook.react.modules.websocket.WebSocketModule;
|
||||
import com.facebook.react.uimanager.UIManagerModule;
|
||||
import com.facebook.react.uimanager.ViewManager;
|
||||
import com.facebook.react.views.drawer.ReactDrawerLayoutManager;
|
||||
import com.facebook.react.views.image.ReactImageManager;
|
||||
import com.facebook.react.views.modal.ReactModalHostManager;
|
||||
import com.facebook.react.views.progressbar.ReactProgressBarViewManager;
|
||||
import com.facebook.react.views.safeareaview.ReactSafeAreaViewManager;
|
||||
import com.facebook.react.views.scroll.ReactHorizontalScrollContainerViewManager;
|
||||
import com.facebook.react.views.scroll.ReactHorizontalScrollViewManager;
|
||||
import com.facebook.react.views.scroll.ReactScrollViewManager;
|
||||
import com.facebook.react.views.swiperefresh.SwipeRefreshLayoutManager;
|
||||
import com.facebook.react.views.switchview.ReactSwitchManager;
|
||||
import com.facebook.react.views.text.ReactRawTextManager;
|
||||
import com.facebook.react.views.text.ReactTextViewManager;
|
||||
import com.facebook.react.views.text.ReactVirtualTextViewManager;
|
||||
import com.facebook.react.views.text.frescosupport.FrescoBasedReactTextInlineImageViewManager;
|
||||
import com.facebook.react.views.textinput.ReactTextInputManager;
|
||||
import com.facebook.react.views.unimplementedview.ReactUnimplementedViewManager;
|
||||
import com.facebook.react.views.view.ReactViewManager;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import javax.inject.Provider;
|
||||
|
||||
/** Package defining basic modules and view managers. */
|
||||
@ReactModuleList(
|
||||
nativeModules = {
|
||||
AccessibilityInfoModule.class,
|
||||
AppearanceModule.class,
|
||||
AppStateModule.class,
|
||||
BlobModule.class,
|
||||
DevLoadingModule.class,
|
||||
FileReaderModule.class,
|
||||
ClipboardModule.class,
|
||||
DialogModule.class,
|
||||
FrescoModule.class,
|
||||
I18nManagerModule.class,
|
||||
ImageLoaderModule.class,
|
||||
ImageStoreManager.class,
|
||||
IntentModule.class,
|
||||
NativeAnimatedModule.class,
|
||||
NetworkingModule.class,
|
||||
PermissionsModule.class,
|
||||
ReactDevToolsSettingsManagerModule.class,
|
||||
ReactDevToolsRuntimeSettingsModule.class,
|
||||
ShareModule.class,
|
||||
SoundManagerModule.class,
|
||||
StatusBarModule.class,
|
||||
ToastModule.class,
|
||||
VibrationModule.class,
|
||||
WebSocketModule.class,
|
||||
})
|
||||
public class MainReactPackage extends BaseReactPackage implements ViewManagerOnDemandReactPackage {
|
||||
|
||||
private MainPackageConfig mConfig;
|
||||
private @Nullable Map<String, ModuleSpec> mViewManagers;
|
||||
|
||||
public MainReactPackage() {}
|
||||
|
||||
/** Create a new package with configuration */
|
||||
public MainReactPackage(MainPackageConfig config) {
|
||||
mConfig = config;
|
||||
}
|
||||
|
||||
@Override
|
||||
public @Nullable NativeModule getModule(String name, ReactApplicationContext context) {
|
||||
switch (name) {
|
||||
case AccessibilityInfoModule.NAME:
|
||||
return new AccessibilityInfoModule(context);
|
||||
case AppearanceModule.NAME:
|
||||
return new AppearanceModule(context);
|
||||
case AppStateModule.NAME:
|
||||
return new AppStateModule(context);
|
||||
case BlobModule.NAME:
|
||||
return new BlobModule(context);
|
||||
case DevLoadingModule.NAME:
|
||||
return new DevLoadingModule(context);
|
||||
case FileReaderModule.NAME:
|
||||
return new FileReaderModule(context);
|
||||
case ClipboardModule.NAME:
|
||||
return new ClipboardModule(context);
|
||||
case DialogModule.NAME:
|
||||
return new DialogModule(context);
|
||||
case FrescoModule.NAME:
|
||||
return new FrescoModule(context, true, mConfig != null ? mConfig.getFrescoConfig() : null);
|
||||
case I18nManagerModule.NAME:
|
||||
return new I18nManagerModule(context);
|
||||
case ImageLoaderModule.NAME:
|
||||
return new ImageLoaderModule(context);
|
||||
case ImageStoreManager.NAME:
|
||||
return new ImageStoreManager(context);
|
||||
case IntentModule.NAME:
|
||||
return new IntentModule(context);
|
||||
case NativeAnimatedModule.NAME:
|
||||
return new NativeAnimatedModule(context);
|
||||
case NetworkingModule.NAME:
|
||||
return new NetworkingModule(context);
|
||||
case PermissionsModule.NAME:
|
||||
return new PermissionsModule(context);
|
||||
case ShareModule.NAME:
|
||||
return new ShareModule(context);
|
||||
case StatusBarModule.NAME:
|
||||
return new StatusBarModule(context);
|
||||
case SoundManagerModule.NAME:
|
||||
return new SoundManagerModule(context);
|
||||
case ToastModule.NAME:
|
||||
return new ToastModule(context);
|
||||
case VibrationModule.NAME:
|
||||
return new VibrationModule(context);
|
||||
case WebSocketModule.NAME:
|
||||
return new WebSocketModule(context);
|
||||
case ReactDevToolsSettingsManagerModule.NAME:
|
||||
return new ReactDevToolsSettingsManagerModule(context);
|
||||
case ReactDevToolsRuntimeSettingsModule.NAME:
|
||||
return new ReactDevToolsRuntimeSettingsModule(context);
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ViewManager> createViewManagers(ReactApplicationContext reactContext) {
|
||||
List<ViewManager> viewManagers = new ArrayList<>();
|
||||
|
||||
viewManagers.add(new ReactDrawerLayoutManager());
|
||||
viewManagers.add(new ReactHorizontalScrollViewManager());
|
||||
viewManagers.add(new ReactHorizontalScrollContainerViewManager());
|
||||
viewManagers.add(new ReactProgressBarViewManager());
|
||||
viewManagers.add(new ReactScrollViewManager());
|
||||
viewManagers.add(new ReactSwitchManager());
|
||||
viewManagers.add(new ReactSafeAreaViewManager());
|
||||
viewManagers.add(new SwipeRefreshLayoutManager());
|
||||
|
||||
// Native equivalents
|
||||
viewManagers.add(new FrescoBasedReactTextInlineImageViewManager());
|
||||
viewManagers.add(new ReactImageManager());
|
||||
viewManagers.add(new ReactModalHostManager());
|
||||
viewManagers.add(new ReactRawTextManager());
|
||||
viewManagers.add(new ReactTextInputManager());
|
||||
viewManagers.add(new ReactTextViewManager());
|
||||
viewManagers.add(new ReactViewManager());
|
||||
viewManagers.add(new ReactVirtualTextViewManager());
|
||||
|
||||
viewManagers.add(new ReactUnimplementedViewManager());
|
||||
|
||||
return viewManagers;
|
||||
}
|
||||
|
||||
private static void appendMap(
|
||||
Map<String, ModuleSpec> map, String name, Provider<? extends NativeModule> provider) {
|
||||
map.put(name, ModuleSpec.viewManagerSpec(provider));
|
||||
}
|
||||
|
||||
/**
|
||||
* @return a map of view managers that should be registered with {@link UIManagerModule}
|
||||
*/
|
||||
@SuppressLint("VisibleForTests")
|
||||
public Map<String, ModuleSpec> getViewManagersMap() {
|
||||
if (mViewManagers == null) {
|
||||
Map<String, ModuleSpec> viewManagers = new HashMap<>();
|
||||
appendMap(viewManagers, ReactDrawerLayoutManager.REACT_CLASS, ReactDrawerLayoutManager::new);
|
||||
appendMap(
|
||||
viewManagers,
|
||||
ReactHorizontalScrollViewManager.REACT_CLASS,
|
||||
ReactHorizontalScrollViewManager::new);
|
||||
appendMap(
|
||||
viewManagers,
|
||||
ReactHorizontalScrollContainerViewManager.REACT_CLASS,
|
||||
ReactHorizontalScrollContainerViewManager::new);
|
||||
appendMap(
|
||||
viewManagers, ReactProgressBarViewManager.REACT_CLASS, ReactProgressBarViewManager::new);
|
||||
appendMap(viewManagers, ReactSafeAreaViewManager.REACT_CLASS, ReactSafeAreaViewManager::new);
|
||||
appendMap(viewManagers, ReactScrollViewManager.REACT_CLASS, ReactScrollViewManager::new);
|
||||
appendMap(viewManagers, ReactSwitchManager.REACT_CLASS, ReactSwitchManager::new);
|
||||
appendMap(
|
||||
viewManagers, SwipeRefreshLayoutManager.REACT_CLASS, SwipeRefreshLayoutManager::new);
|
||||
appendMap(
|
||||
viewManagers,
|
||||
FrescoBasedReactTextInlineImageViewManager.REACT_CLASS,
|
||||
FrescoBasedReactTextInlineImageViewManager::new);
|
||||
appendMap(viewManagers, ReactImageManager.REACT_CLASS, ReactImageManager::new);
|
||||
appendMap(viewManagers, ReactModalHostManager.REACT_CLASS, ReactModalHostManager::new);
|
||||
appendMap(viewManagers, ReactRawTextManager.REACT_CLASS, ReactRawTextManager::new);
|
||||
appendMap(viewManagers, ReactTextInputManager.REACT_CLASS, ReactTextInputManager::new);
|
||||
appendMap(viewManagers, ReactTextViewManager.REACT_CLASS, ReactTextViewManager::new);
|
||||
appendMap(viewManagers, ReactViewManager.REACT_CLASS, ReactViewManager::new);
|
||||
appendMap(
|
||||
viewManagers, ReactVirtualTextViewManager.REACT_CLASS, ReactVirtualTextViewManager::new);
|
||||
appendMap(
|
||||
viewManagers,
|
||||
ReactUnimplementedViewManager.REACT_CLASS,
|
||||
ReactUnimplementedViewManager::new);
|
||||
mViewManagers = viewManagers;
|
||||
}
|
||||
return mViewManagers;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ModuleSpec> getViewManagers(ReactApplicationContext reactContext) {
|
||||
return new ArrayList<>(getViewManagersMap().values());
|
||||
}
|
||||
|
||||
@Override
|
||||
public Collection<String> getViewManagerNames(ReactApplicationContext reactContext) {
|
||||
return getViewManagersMap().keySet();
|
||||
}
|
||||
|
||||
@Override
|
||||
public @Nullable ViewManager createViewManager(
|
||||
ReactApplicationContext reactContext, String viewManagerName) {
|
||||
ModuleSpec spec = getViewManagersMap().get(viewManagerName);
|
||||
return spec != null ? (ViewManager) spec.getProvider().get() : null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ReactModuleInfoProvider getReactModuleInfoProvider() {
|
||||
if (!ClassFinder.canLoadClassesFromAnnotationProcessors()) {
|
||||
return fallbackForMissingClass();
|
||||
}
|
||||
try {
|
||||
Class<?> reactModuleInfoProviderClass =
|
||||
ClassFinder.findClass(
|
||||
"com.facebook.react.shell.MainReactPackage$$ReactModuleInfoProvider");
|
||||
return (ReactModuleInfoProvider) reactModuleInfoProviderClass.newInstance();
|
||||
} catch (ClassNotFoundException e) {
|
||||
return fallbackForMissingClass();
|
||||
} catch (InstantiationException e) {
|
||||
throw new RuntimeException(
|
||||
"No ReactModuleInfoProvider for"
|
||||
+ " com.facebook.react.shell.MainReactPackage$$ReactModuleInfoProvider",
|
||||
e);
|
||||
} catch (IllegalAccessException e) {
|
||||
throw new RuntimeException(
|
||||
"No ReactModuleInfoProvider for"
|
||||
+ " com.facebook.react.shell.MainReactPackage$$ReactModuleInfoProvider",
|
||||
e);
|
||||
}
|
||||
}
|
||||
|
||||
private ReactModuleInfoProvider fallbackForMissingClass() {
|
||||
// In the OSS case, the annotation processor does not run.
|
||||
// We fall back to creating this by hand
|
||||
Class<? extends NativeModule>[] moduleList =
|
||||
new Class[] {
|
||||
AccessibilityInfoModule.class,
|
||||
AppearanceModule.class,
|
||||
AppStateModule.class,
|
||||
BlobModule.class,
|
||||
DevLoadingModule.class,
|
||||
FileReaderModule.class,
|
||||
ClipboardModule.class,
|
||||
DialogModule.class,
|
||||
FrescoModule.class,
|
||||
I18nManagerModule.class,
|
||||
ImageLoaderModule.class,
|
||||
ImageStoreManager.class,
|
||||
IntentModule.class,
|
||||
NativeAnimatedModule.class,
|
||||
NetworkingModule.class,
|
||||
PermissionsModule.class,
|
||||
ReactDevToolsSettingsManagerModule.class,
|
||||
ReactDevToolsRuntimeSettingsModule.class,
|
||||
ShareModule.class,
|
||||
StatusBarModule.class,
|
||||
SoundManagerModule.class,
|
||||
ToastModule.class,
|
||||
VibrationModule.class,
|
||||
WebSocketModule.class
|
||||
};
|
||||
|
||||
final Map<String, ReactModuleInfo> reactModuleInfoMap = new HashMap<>();
|
||||
for (Class<? extends NativeModule> moduleClass : moduleList) {
|
||||
ReactModule reactModule = moduleClass.getAnnotation(ReactModule.class);
|
||||
if (reactModule != null) {
|
||||
reactModuleInfoMap.put(
|
||||
reactModule.name(),
|
||||
new ReactModuleInfo(
|
||||
reactModule.name(),
|
||||
moduleClass.getName(),
|
||||
reactModule.canOverrideExistingModule(),
|
||||
reactModule.needsEagerInit(),
|
||||
reactModule.isCxxModule(),
|
||||
ReactModuleInfo.classIsTurboModule(moduleClass)));
|
||||
}
|
||||
}
|
||||
return () -> reactModuleInfoMap;
|
||||
}
|
||||
}
|
||||
+272
@@ -0,0 +1,272 @@
|
||||
/*
|
||||
* 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.shell
|
||||
|
||||
import android.annotation.SuppressLint
|
||||
import com.facebook.react.BaseReactPackage
|
||||
import com.facebook.react.ViewManagerOnDemandReactPackage
|
||||
import com.facebook.react.animated.NativeAnimatedModule
|
||||
import com.facebook.react.bridge.ModuleSpec
|
||||
import com.facebook.react.bridge.NativeModule
|
||||
import com.facebook.react.bridge.ReactApplicationContext
|
||||
import com.facebook.react.common.ClassFinder
|
||||
import com.facebook.react.module.annotations.ReactModule
|
||||
import com.facebook.react.module.annotations.ReactModuleList
|
||||
import com.facebook.react.module.model.ReactModuleInfo
|
||||
import com.facebook.react.module.model.ReactModuleInfo.Companion.classIsTurboModule
|
||||
import com.facebook.react.module.model.ReactModuleInfoProvider
|
||||
import com.facebook.react.modules.accessibilityinfo.AccessibilityInfoModule
|
||||
import com.facebook.react.modules.appearance.AppearanceModule
|
||||
import com.facebook.react.modules.appstate.AppStateModule
|
||||
import com.facebook.react.modules.blob.BlobModule
|
||||
import com.facebook.react.modules.blob.FileReaderModule
|
||||
import com.facebook.react.modules.camera.ImageStoreManager
|
||||
import com.facebook.react.modules.clipboard.ClipboardModule
|
||||
import com.facebook.react.modules.devloading.DevLoadingModule
|
||||
import com.facebook.react.modules.devtoolsruntimesettings.ReactDevToolsRuntimeSettingsModule
|
||||
import com.facebook.react.modules.dialog.DialogModule
|
||||
import com.facebook.react.modules.fresco.FrescoModule
|
||||
import com.facebook.react.modules.i18nmanager.I18nManagerModule
|
||||
import com.facebook.react.modules.image.ImageLoaderModule
|
||||
import com.facebook.react.modules.intent.IntentModule
|
||||
import com.facebook.react.modules.network.NetworkingModule
|
||||
import com.facebook.react.modules.permissions.PermissionsModule
|
||||
import com.facebook.react.modules.reactdevtoolssettings.ReactDevToolsSettingsManagerModule
|
||||
import com.facebook.react.modules.share.ShareModule
|
||||
import com.facebook.react.modules.sound.SoundManagerModule
|
||||
import com.facebook.react.modules.statusbar.StatusBarModule
|
||||
import com.facebook.react.modules.toast.ToastModule
|
||||
import com.facebook.react.modules.vibration.VibrationModule
|
||||
import com.facebook.react.modules.websocket.WebSocketModule
|
||||
import com.facebook.react.uimanager.ViewManager
|
||||
import com.facebook.react.views.drawer.ReactDrawerLayoutManager
|
||||
import com.facebook.react.views.image.ReactImageManager
|
||||
import com.facebook.react.views.modal.ReactModalHostManager
|
||||
import com.facebook.react.views.progressbar.ReactProgressBarViewManager
|
||||
import com.facebook.react.views.safeareaview.ReactSafeAreaViewManager
|
||||
import com.facebook.react.views.scroll.ReactHorizontalScrollContainerViewManager
|
||||
import com.facebook.react.views.scroll.ReactHorizontalScrollViewManager
|
||||
import com.facebook.react.views.scroll.ReactScrollViewManager
|
||||
import com.facebook.react.views.swiperefresh.SwipeRefreshLayoutManager
|
||||
import com.facebook.react.views.switchview.ReactSwitchManager
|
||||
import com.facebook.react.views.text.ReactRawTextManager
|
||||
import com.facebook.react.views.text.ReactTextViewManager
|
||||
import com.facebook.react.views.text.ReactVirtualTextViewManager
|
||||
import com.facebook.react.views.text.frescosupport.FrescoBasedReactTextInlineImageViewManager
|
||||
import com.facebook.react.views.textinput.ReactTextInputManager
|
||||
import com.facebook.react.views.unimplementedview.ReactUnimplementedViewManager
|
||||
import com.facebook.react.views.view.ReactViewManager
|
||||
|
||||
/**
|
||||
* Package defining basic modules and view managers.
|
||||
*
|
||||
* @param config configuration for the Main package.
|
||||
*/
|
||||
@ReactModuleList(
|
||||
nativeModules =
|
||||
[
|
||||
AccessibilityInfoModule::class,
|
||||
AppearanceModule::class,
|
||||
AppStateModule::class,
|
||||
BlobModule::class,
|
||||
DevLoadingModule::class,
|
||||
FileReaderModule::class,
|
||||
ClipboardModule::class,
|
||||
DialogModule::class,
|
||||
FrescoModule::class,
|
||||
I18nManagerModule::class,
|
||||
ImageLoaderModule::class,
|
||||
ImageStoreManager::class,
|
||||
IntentModule::class,
|
||||
NativeAnimatedModule::class,
|
||||
NetworkingModule::class,
|
||||
PermissionsModule::class,
|
||||
ReactDevToolsSettingsManagerModule::class,
|
||||
ReactDevToolsRuntimeSettingsModule::class,
|
||||
ShareModule::class,
|
||||
SoundManagerModule::class,
|
||||
StatusBarModule::class,
|
||||
ToastModule::class,
|
||||
VibrationModule::class,
|
||||
WebSocketModule::class,
|
||||
])
|
||||
public class MainReactPackage
|
||||
@JvmOverloads
|
||||
constructor(private val config: MainPackageConfig? = null) :
|
||||
BaseReactPackage(), ViewManagerOnDemandReactPackage {
|
||||
|
||||
override fun getModule(name: String, context: ReactApplicationContext): NativeModule? =
|
||||
when (name) {
|
||||
AccessibilityInfoModule.NAME -> AccessibilityInfoModule(context)
|
||||
AppearanceModule.NAME -> AppearanceModule(context)
|
||||
AppStateModule.NAME -> AppStateModule(context)
|
||||
BlobModule.NAME -> BlobModule(context)
|
||||
DevLoadingModule.NAME -> DevLoadingModule(context)
|
||||
FileReaderModule.NAME -> FileReaderModule(context)
|
||||
ClipboardModule.NAME -> ClipboardModule(context)
|
||||
DialogModule.NAME -> DialogModule(context)
|
||||
FrescoModule.NAME -> FrescoModule(context, true, config?.frescoConfig)
|
||||
I18nManagerModule.NAME -> I18nManagerModule(context)
|
||||
ImageLoaderModule.NAME -> ImageLoaderModule(context)
|
||||
ImageStoreManager.NAME -> ImageStoreManager(context)
|
||||
IntentModule.NAME -> IntentModule(context)
|
||||
NativeAnimatedModule.NAME -> NativeAnimatedModule(context)
|
||||
NetworkingModule.NAME -> NetworkingModule(context)
|
||||
PermissionsModule.NAME -> PermissionsModule(context)
|
||||
ShareModule.NAME -> ShareModule(context)
|
||||
StatusBarModule.NAME -> StatusBarModule(context)
|
||||
SoundManagerModule.NAME -> SoundManagerModule(context)
|
||||
ToastModule.NAME -> ToastModule(context)
|
||||
VibrationModule.NAME -> VibrationModule(context)
|
||||
WebSocketModule.NAME -> WebSocketModule(context)
|
||||
ReactDevToolsSettingsManagerModule.NAME -> ReactDevToolsSettingsManagerModule(context)
|
||||
ReactDevToolsRuntimeSettingsModule.NAME -> ReactDevToolsRuntimeSettingsModule(context)
|
||||
else -> null
|
||||
}
|
||||
|
||||
override fun createViewManagers(reactContext: ReactApplicationContext): List<ViewManager<*, *>> =
|
||||
listOf(
|
||||
ReactDrawerLayoutManager(),
|
||||
ReactHorizontalScrollViewManager(),
|
||||
ReactHorizontalScrollContainerViewManager(),
|
||||
ReactProgressBarViewManager(),
|
||||
ReactScrollViewManager(),
|
||||
ReactSwitchManager(),
|
||||
ReactSafeAreaViewManager(),
|
||||
SwipeRefreshLayoutManager(),
|
||||
// Native equivalents
|
||||
FrescoBasedReactTextInlineImageViewManager(),
|
||||
ReactImageManager(),
|
||||
ReactModalHostManager(),
|
||||
ReactRawTextManager(),
|
||||
ReactTextInputManager(),
|
||||
ReactTextViewManager(),
|
||||
ReactViewManager(),
|
||||
ReactVirtualTextViewManager(),
|
||||
ReactUnimplementedViewManager())
|
||||
|
||||
/**
|
||||
* A map of view managers that should be registered with
|
||||
* [com.facebook.react.uimanager.UIManagerModule]
|
||||
*/
|
||||
@SuppressLint("VisibleForTests")
|
||||
public val viewManagersMap: Map<String, ModuleSpec> =
|
||||
mapOf(
|
||||
ReactDrawerLayoutManager.REACT_CLASS to
|
||||
ModuleSpec.viewManagerSpec { ReactDrawerLayoutManager() },
|
||||
ReactHorizontalScrollViewManager.REACT_CLASS to
|
||||
ModuleSpec.viewManagerSpec { ReactHorizontalScrollViewManager() },
|
||||
ReactHorizontalScrollContainerViewManager.REACT_CLASS to
|
||||
ModuleSpec.viewManagerSpec { ReactHorizontalScrollContainerViewManager() },
|
||||
ReactProgressBarViewManager.REACT_CLASS to
|
||||
ModuleSpec.viewManagerSpec { ReactProgressBarViewManager() },
|
||||
ReactSafeAreaViewManager.REACT_CLASS to
|
||||
ModuleSpec.viewManagerSpec { ReactSafeAreaViewManager() },
|
||||
ReactScrollViewManager.REACT_CLASS to
|
||||
ModuleSpec.viewManagerSpec { ReactScrollViewManager() },
|
||||
ReactSwitchManager.REACT_CLASS to ModuleSpec.viewManagerSpec { ReactSwitchManager() },
|
||||
SwipeRefreshLayoutManager.REACT_CLASS to
|
||||
ModuleSpec.viewManagerSpec { SwipeRefreshLayoutManager() },
|
||||
FrescoBasedReactTextInlineImageViewManager.REACT_CLASS to
|
||||
ModuleSpec.viewManagerSpec { FrescoBasedReactTextInlineImageViewManager() },
|
||||
ReactImageManager.REACT_CLASS to ModuleSpec.viewManagerSpec { ReactImageManager() },
|
||||
ReactModalHostManager.REACT_CLASS to
|
||||
ModuleSpec.viewManagerSpec { ReactModalHostManager() },
|
||||
ReactRawTextManager.REACT_CLASS to ModuleSpec.viewManagerSpec { ReactRawTextManager() },
|
||||
ReactTextInputManager.REACT_CLASS to
|
||||
ModuleSpec.viewManagerSpec { ReactTextInputManager() },
|
||||
ReactTextViewManager.REACT_CLASS to ModuleSpec.viewManagerSpec { ReactTextViewManager() },
|
||||
ReactViewManager.REACT_CLASS to ModuleSpec.viewManagerSpec { ReactViewManager() },
|
||||
ReactVirtualTextViewManager.REACT_CLASS to
|
||||
ModuleSpec.viewManagerSpec { ReactVirtualTextViewManager() },
|
||||
ReactUnimplementedViewManager.REACT_CLASS to
|
||||
ModuleSpec.viewManagerSpec { ReactUnimplementedViewManager() })
|
||||
|
||||
public override fun getViewManagers(reactContext: ReactApplicationContext): List<ModuleSpec> =
|
||||
viewManagersMap.values.toList()
|
||||
|
||||
override fun getViewManagerNames(reactContext: ReactApplicationContext): Collection<String> =
|
||||
viewManagersMap.keys
|
||||
|
||||
override fun createViewManager(
|
||||
reactContext: ReactApplicationContext,
|
||||
viewManagerName: String
|
||||
): ViewManager<*, *>? {
|
||||
val spec = viewManagersMap[viewManagerName]
|
||||
return spec?.provider?.get() as? ViewManager<*, *>
|
||||
}
|
||||
|
||||
override fun getReactModuleInfoProvider(): ReactModuleInfoProvider {
|
||||
if (!ClassFinder.canLoadClassesFromAnnotationProcessors()) {
|
||||
return fallbackForMissingClass()
|
||||
}
|
||||
try {
|
||||
val reactModuleInfoProviderClass =
|
||||
ClassFinder.findClass(
|
||||
"com.facebook.react.shell.MainReactPackage$\$ReactModuleInfoProvider")
|
||||
@Suppress("DEPRECATION")
|
||||
return reactModuleInfoProviderClass?.newInstance() as? ReactModuleInfoProvider
|
||||
?: fallbackForMissingClass()
|
||||
} catch (e: ClassNotFoundException) {
|
||||
return fallbackForMissingClass()
|
||||
} catch (e: InstantiationException) {
|
||||
throw RuntimeException(
|
||||
"No ReactModuleInfoProvider for MainReactPackage$\$ReactModuleInfoProvider", e)
|
||||
} catch (e: IllegalAccessException) {
|
||||
throw RuntimeException(
|
||||
"No ReactModuleInfoProvider for MainReactPackage$\$ReactModuleInfoProvider", e)
|
||||
}
|
||||
}
|
||||
|
||||
private fun fallbackForMissingClass(): ReactModuleInfoProvider {
|
||||
// In the OSS case, the annotation processor does not run.
|
||||
// We fall back to creating this by hand
|
||||
val moduleList: Array<Class<*>> =
|
||||
arrayOf(
|
||||
AccessibilityInfoModule::class.java,
|
||||
AppearanceModule::class.java,
|
||||
AppStateModule::class.java,
|
||||
BlobModule::class.java,
|
||||
DevLoadingModule::class.java,
|
||||
FileReaderModule::class.java,
|
||||
ClipboardModule::class.java,
|
||||
DialogModule::class.java,
|
||||
FrescoModule::class.java,
|
||||
I18nManagerModule::class.java,
|
||||
ImageLoaderModule::class.java,
|
||||
ImageStoreManager::class.java,
|
||||
IntentModule::class.java,
|
||||
NativeAnimatedModule::class.java,
|
||||
NetworkingModule::class.java,
|
||||
PermissionsModule::class.java,
|
||||
ReactDevToolsSettingsManagerModule::class.java,
|
||||
ReactDevToolsRuntimeSettingsModule::class.java,
|
||||
ShareModule::class.java,
|
||||
StatusBarModule::class.java,
|
||||
SoundManagerModule::class.java,
|
||||
ToastModule::class.java,
|
||||
VibrationModule::class.java,
|
||||
WebSocketModule::class.java)
|
||||
|
||||
val moduleMap =
|
||||
moduleList
|
||||
.filter { it.isAnnotationPresent(ReactModule::class.java) }
|
||||
.associate { moduleClass ->
|
||||
val reactModule = checkNotNull(moduleClass.getAnnotation(ReactModule::class.java))
|
||||
reactModule.name to
|
||||
ReactModuleInfo(
|
||||
reactModule.name,
|
||||
moduleClass.name,
|
||||
reactModule.canOverrideExistingModule,
|
||||
reactModule.needsEagerInit,
|
||||
reactModule.isCxxModule,
|
||||
classIsTurboModule(moduleClass))
|
||||
}
|
||||
return ReactModuleInfoProvider { moduleMap }
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user