1// Copyright © 2018 650 Industries. All rights reserved. 2 3#import "EXScopedModuleRegistry.h" 4 5#import "EXScopedModuleRegistryAdapter.h" 6#import "EXSensorsManagerBinding.h" 7#import "EXConstantsBinding.h" 8#import "EXScopedFileSystemModule.h" 9#import "EXUnversioned.h" 10#import "EXScopedFilePermissionModule.h" 11#import "EXScopedSecureStore.h" 12#import "EXScopedAmplitude.h" 13#import "EXScopedPermissions.h" 14 15#import "EXScopedReactNativeAdapter.h" 16#import "EXModuleRegistryBinding.h" 17#import "EXExpoUserNotificationCenterProxy.h" 18 19@implementation EXScopedModuleRegistryAdapter 20 21- (UMModuleRegistry *)moduleRegistryForParams:(NSDictionary *)params forExperienceId:(NSString *)experienceId withKernelServices:(NSDictionary *)kernelServices 22{ 23 UMModuleRegistry *moduleRegistry = [self.moduleRegistryProvider moduleRegistry]; 24 25 EXConstantsBinding *constantsBinding = [[EXConstantsBinding alloc] initWithExperienceId:experienceId andParams:params]; 26 [moduleRegistry registerInternalModule:constantsBinding]; 27 28 EXScopedFileSystemModule *fileSystemModule = [[EXScopedFileSystemModule alloc] initWithExperienceId:experienceId andConstantsBinding:constantsBinding]; 29 [moduleRegistry registerExportedModule:fileSystemModule]; 30 31 EXSensorsManagerBinding *sensorsManagerBinding = [[EXSensorsManagerBinding alloc] initWithExperienceId:experienceId andKernelService:kernelServices[EX_UNVERSIONED(@"EXSensorManager")]]; 32 [moduleRegistry registerInternalModule:sensorsManagerBinding]; 33 34 EXScopedReactNativeAdapter *reactNativeAdapter = [[EXScopedReactNativeAdapter alloc] init]; 35 [moduleRegistry registerInternalModule:reactNativeAdapter]; 36 37 EXExpoUserNotificationCenterProxy *userNotificationCenter = [[EXExpoUserNotificationCenterProxy alloc] initWithUserNotificationCenter:kernelServices[EX_UNVERSIONED(@"EXUserNotificationCenter")]]; 38 [moduleRegistry registerInternalModule:userNotificationCenter]; 39 40 EXScopedFilePermissionModule *filePermissionModule = [[EXScopedFilePermissionModule alloc] init]; 41 [moduleRegistry registerInternalModule:filePermissionModule]; 42 43 EXScopedSecureStore *secureStoreModule = [[EXScopedSecureStore alloc] initWithExperienceId:experienceId]; 44 [moduleRegistry registerExportedModule:secureStoreModule]; 45 46 EXScopedAmplitude *amplitudeModule = [[EXScopedAmplitude alloc] initWithExperienceId:experienceId]; 47 [moduleRegistry registerExportedModule:amplitudeModule]; 48 49 EXScopedPermissions *permissionsModule = [[EXScopedPermissions alloc] initWithExperienceId:experienceId]; 50 [moduleRegistry registerExportedModule:permissionsModule]; 51 [moduleRegistry registerInternalModule:permissionsModule]; 52 53 return moduleRegistry; 54} 55 56- (NSArray<id<RCTBridgeModule>> *)extraModulesForModuleRegistry:(UMModuleRegistry *)moduleRegistry 57{ 58 return [[super extraModulesForModuleRegistry:moduleRegistry] arrayByAddingObject:[[EXModuleRegistryBinding alloc] initWithModuleRegistry:moduleRegistry]]; 59} 60 61@end 62