1 package versioned.host.exp.exponent 2 3 import expo.modules.application.ApplicationPackage 4 import expo.modules.av.AVModule 5 import expo.modules.av.AVPackage 6 import expo.modules.av.video.VideoViewModule 7 import expo.modules.backgroundfetch.BackgroundFetchModule 8 import expo.modules.barcodescanner.BarCodeScannerModule 9 import expo.modules.barcodescanner.BarCodeScannerPackage 10 import expo.modules.battery.BatteryModule 11 import expo.modules.blur.BlurModule 12 import expo.modules.brightness.BrightnessModule 13 import expo.modules.calendar.CalendarModule 14 import expo.modules.camera.CameraViewModule 15 import expo.modules.cellular.CellularModule 16 import expo.modules.clipboard.ClipboardModule 17 import expo.modules.constants.ConstantsModule 18 import expo.modules.constants.ConstantsPackage 19 import expo.modules.contacts.ContactsPackage 20 import expo.modules.core.interfaces.Package 21 import expo.modules.crypto.CryptoModule 22 import expo.modules.device.DeviceModule 23 import expo.modules.documentpicker.DocumentPickerModule 24 import expo.modules.easclient.EASClientModule 25 import expo.modules.facedetector.FaceDetectorPackage 26 import expo.modules.filesystem.FileSystemModule 27 import expo.modules.filesystem.FileSystemPackage 28 import expo.modules.gl.GLObjectManagerModule 29 import expo.modules.gl.GLViewModule 30 import expo.modules.haptics.HapticsModule 31 import expo.modules.image.ExpoImageModule 32 import expo.modules.imageloader.ImageLoaderPackage 33 import expo.modules.imagemanipulator.ImageManipulatorModule 34 import expo.modules.imagepicker.ImagePickerModule 35 import expo.modules.intentlauncher.IntentLauncherModule 36 import expo.modules.keepawake.KeepAwakeModule 37 import expo.modules.keepawake.KeepAwakePackage 38 import expo.modules.kotlin.ModulesProvider 39 import expo.modules.kotlin.modules.Module 40 import expo.modules.lineargradient.LinearGradientModule 41 import expo.modules.localauthentication.LocalAuthenticationModule 42 import expo.modules.localization.LocalizationModule 43 import expo.modules.location.LocationPackage 44 import expo.modules.mailcomposer.MailComposerModule 45 import expo.modules.manifests.core.Manifest 46 import expo.modules.medialibrary.MediaLibraryModule 47 import expo.modules.navigationbar.NavigationBarPackage 48 import expo.modules.network.NetworkModule 49 import expo.modules.notifications.NotificationsPackage 50 import expo.modules.permissions.PermissionsPackage 51 import expo.modules.print.PrintModule 52 import expo.modules.random.RandomModule 53 import expo.modules.screencapture.ScreenCaptureModule 54 import expo.modules.screenorientation.ScreenOrientationModule 55 import expo.modules.sensors.SensorsPackage 56 import expo.modules.sensors.modules.AccelerometerModule 57 import expo.modules.sensors.modules.BarometerModule 58 import expo.modules.sensors.modules.DeviceMotionModule 59 import expo.modules.sensors.modules.GyroscopeModule 60 import expo.modules.sensors.modules.LightSensorModule 61 import expo.modules.sensors.modules.MagnetometerModule 62 import expo.modules.sensors.modules.MagnetometerUncalibratedModule 63 import expo.modules.sensors.modules.PedometerModule 64 import expo.modules.sharing.SharingModule 65 import expo.modules.sms.SMSModule 66 import expo.modules.speech.SpeechModule 67 import expo.modules.splashscreen.SplashScreenModule 68 import expo.modules.splashscreen.SplashScreenPackage 69 import expo.modules.sqlite.SQLiteModule 70 import expo.modules.storereview.StoreReviewModule 71 import expo.modules.systemui.SystemUIModule 72 import expo.modules.systemui.SystemUIPackage 73 import expo.modules.taskManager.TaskManagerPackage 74 import expo.modules.updates.UpdatesPackage 75 import expo.modules.videothumbnails.VideoThumbnailsModule 76 import expo.modules.webbrowser.WebBrowserModule 77 78 object ExperiencePackagePicker : ModulesProvider { 79 private val EXPO_MODULES_PACKAGES = listOf( 80 AVPackage(), 81 ApplicationPackage(), 82 BarCodeScannerPackage(), 83 ConstantsPackage(), 84 ContactsPackage(), 85 FaceDetectorPackage(), 86 FileSystemPackage(), 87 ImageLoaderPackage(), 88 KeepAwakePackage(), 89 LocationPackage(), 90 NavigationBarPackage(), 91 NotificationsPackage(), 92 PermissionsPackage(), 93 SensorsPackage(), 94 SplashScreenPackage(), 95 SystemUIPackage(), 96 TaskManagerPackage(), 97 UpdatesPackage(), 98 ) 99 100 /** 101 * Returns all available packages. 102 */ 103 fun packages(): List<Package> { 104 return EXPO_MODULES_PACKAGES 105 } 106 107 /** 108 * Returns packages filtered based on the app's manifest. 109 * For now, filtering is not applied but it is on the todo list. 110 */ 111 fun packages(manifest: Manifest?): List<Package> { 112 return EXPO_MODULES_PACKAGES 113 } 114 115 override fun getModulesList(): List<Class<out Module>> = listOf( 116 AVModule::class.java, 117 // Sensors 118 AccelerometerModule::class.java, 119 BarometerModule::class.java, 120 GyroscopeModule::class.java, 121 LightSensorModule::class.java, 122 DeviceMotionModule::class.java, 123 MagnetometerModule::class.java, 124 MagnetometerUncalibratedModule::class.java, 125 PedometerModule::class.java, 126 // End of Sensors 127 BatteryModule::class.java, 128 BackgroundFetchModule::class.java, 129 BarCodeScannerModule::class.java, 130 BlurModule::class.java, 131 CalendarModule::class.java, 132 CameraViewModule::class.java, 133 CellularModule::class.java, 134 ClipboardModule::class.java, 135 CryptoModule::class.java, 136 ConstantsModule::class.java, 137 DeviceModule::class.java, 138 DocumentPickerModule::class.java, 139 EASClientModule::class.java, 140 FileSystemModule::class.java, 141 PrintModule::class.java, 142 GLViewModule::class.java, 143 GLObjectManagerModule::class.java, 144 HapticsModule::class.java, 145 ImagePickerModule::class.java, 146 ImageManipulatorModule::class.java, 147 ExpoImageModule::class.java, 148 IntentLauncherModule::class.java, 149 KeepAwakeModule::class.java, 150 LinearGradientModule::class.java, 151 LocalAuthenticationModule::class.java, 152 LocalizationModule::class.java, 153 MailComposerModule::class.java, 154 MediaLibraryModule::class.java, 155 NetworkModule::class.java, 156 RandomModule::class.java, 157 ScreenCaptureModule::class.java, 158 ScreenOrientationModule::class.java, 159 // SecureStoreModule is not added here, instead it is added in ExpoModuleRegistryAdapter.kt, 160 // because it needs access to scopedContext for Expo Go support 161 SMSModule::class.java, 162 SharingModule::class.java, 163 SpeechModule::class.java, 164 SplashScreenModule::class.java, 165 StoreReviewModule::class.java, 166 SQLiteModule::class.java, 167 SystemUIModule::class.java, 168 VideoThumbnailsModule::class.java, 169 VideoViewModule::class.java, 170 WebBrowserModule::class.java, 171 BrightnessModule::class.java, 172 ) 173 } 174