// // ReactNativeMobileMessagingPackage.kt // MobileMessagingReactNative // // Copyright (c) 2016-2025 Infobip Limited // Licensed under the Apache License, Version 2.0 // package org.infobip.reactlibrary.mobilemessaging; import com.facebook.react.BaseReactPackage import com.facebook.react.bridge.NativeModule import com.facebook.react.bridge.ReactApplicationContext import com.facebook.react.module.model.ReactModuleInfo import com.facebook.react.module.model.ReactModuleInfoProvider import com.facebook.react.uimanager.ViewManager import java.util.HashMap class ReactNativeMobileMessagingPackage : BaseReactPackage() { companion object { private const val TAG = "ReactNativeMobileMessagingPackage" } override fun getModule(name: String, reactContext: ReactApplicationContext): NativeModule? { RNMMLogger.i(TAG, "getModule...") return when (name) { MobileMessagingModule.NAME -> MobileMessagingModule(reactContext) RNMMChatModule.NAME -> RNMMChatModule(reactContext) RNMMWebRTCUIModule.NAME -> RNMMWebRTCUIModule(reactContext) RNMMChatViewManager.NAME -> RNMMChatViewManager(reactContext) else -> null } } override fun getReactModuleInfoProvider(): ReactModuleInfoProvider { RNMMLogger.i("ReactNativeMobileMessagingPackage", "getReactModuleInfoProvider...") return ReactModuleInfoProvider { val reactModuleInfos: MutableMap = HashMap() val isTurboModule = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED reactModuleInfos.put( MobileMessagingModule.NAME, ReactModuleInfo( MobileMessagingModule.NAME, MobileMessagingModule.NAME, false, // canOverrideExistingModule false, // needsEagerInit false, // isCxxModule isTurboModule // isTurboModule ) ) reactModuleInfos.put( RNMMChatModule.NAME, ReactModuleInfo( RNMMChatModule.NAME, RNMMChatModule.NAME, false, // canOverrideExistingModule false, // needsEagerInit false, // isCxxModule isTurboModule // isTurboModule ) ) reactModuleInfos.put( RNMMWebRTCUIModule.NAME, ReactModuleInfo( RNMMWebRTCUIModule.NAME, RNMMWebRTCUIModule.NAME, false, // canOverrideExistingModule false, // needsEagerInit false, // isCxxModule isTurboModule // isTurboModule ) ) reactModuleInfos.put( RNMMChatViewManager.NAME, ReactModuleInfo( RNMMChatViewManager.NAME, RNMMChatViewManager.NAME, false, // canOverrideExistingModule false, // needsEagerInit false, // isCxxModule isTurboModule // isTurboModule ) ) RNMMLogger.i(TAG, "ReactModuleInfos: " + reactModuleInfos.toString()) reactModuleInfos } } override fun createViewManagers(reactContext: ReactApplicationContext): List> { RNMMLogger.i(TAG, "createViewManagers...") return listOf(RNMMChatViewManager(reactContext)) } }