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.NavigationBarModule 48 import expo.modules.navigationbar.NavigationBarPackage 49 import expo.modules.network.NetworkModule 50 import expo.modules.notifications.NotificationsPackage 51 import expo.modules.notifications.badge.BadgeModule 52 import expo.modules.notifications.notifications.background.ExpoBackgroundNotificationTasksModule 53 import expo.modules.notifications.notifications.channels.NotificationChannelGroupManagerModule 54 import expo.modules.notifications.notifications.channels.NotificationChannelManagerModule 55 import expo.modules.notifications.permissions.NotificationPermissionsModule 56 import expo.modules.notifications.tokens.PushTokenModule 57 import expo.modules.permissions.PermissionsPackage 58 import expo.modules.print.PrintModule 59 import expo.modules.random.RandomModule 60 import expo.modules.screencapture.ScreenCaptureModule 61 import expo.modules.screenorientation.ScreenOrientationModule 62 import expo.modules.sensors.SensorsPackage 63 import expo.modules.sensors.modules.AccelerometerModule 64 import expo.modules.sensors.modules.BarometerModule 65 import expo.modules.sensors.modules.DeviceMotionModule 66 import expo.modules.sensors.modules.GyroscopeModule 67 import expo.modules.sensors.modules.LightSensorModule 68 import expo.modules.sensors.modules.MagnetometerModule 69 import expo.modules.sensors.modules.MagnetometerUncalibratedModule 70 import expo.modules.sensors.modules.PedometerModule 71 import expo.modules.sharing.SharingModule 72 import expo.modules.sms.SMSModule 73 import expo.modules.speech.SpeechModule 74 import expo.modules.splashscreen.SplashScreenModule 75 import expo.modules.splashscreen.SplashScreenPackage 76 import expo.modules.sqlite.SQLiteModule 77 import expo.modules.storereview.StoreReviewModule 78 import expo.modules.systemui.SystemUIModule 79 import expo.modules.systemui.SystemUIPackage 80 import expo.modules.taskManager.TaskManagerPackage 81 import expo.modules.updates.UpdatesPackage 82 import expo.modules.videothumbnails.VideoThumbnailsModule 83 import expo.modules.webbrowser.WebBrowserModule 84 85 object ExperiencePackagePicker : ModulesProvider { 86 private val EXPO_MODULES_PACKAGES = listOf( 87 AVPackage(), 88 ApplicationPackage(), 89 BarCodeScannerPackage(), 90 ConstantsPackage(), 91 ContactsPackage(), 92 FaceDetectorPackage(), 93 FileSystemPackage(), 94 ImageLoaderPackage(), 95 KeepAwakePackage(), 96 LocationPackage(), 97 NavigationBarPackage(), 98 NotificationsPackage(), 99 PermissionsPackage(), 100 SensorsPackage(), 101 SplashScreenPackage(), 102 SystemUIPackage(), 103 TaskManagerPackage(), 104 UpdatesPackage(), 105 ) 106 107 /** 108 * Returns all available packages. 109 */ 110 fun packages(): List<Package> { 111 return EXPO_MODULES_PACKAGES 112 } 113 114 /** 115 * Returns packages filtered based on the app's manifest. 116 * For now, filtering is not applied but it is on the todo list. 117 */ 118 fun packages(manifest: Manifest?): List<Package> { 119 return EXPO_MODULES_PACKAGES 120 } 121 122 override fun getModulesList(): List<Class<out Module>> = listOf( 123 AVModule::class.java, 124 // Sensors 125 AccelerometerModule::class.java, 126 BarometerModule::class.java, 127 GyroscopeModule::class.java, 128 LightSensorModule::class.java, 129 DeviceMotionModule::class.java, 130 MagnetometerModule::class.java, 131 MagnetometerUncalibratedModule::class.java, 132 PedometerModule::class.java, 133 // End of Sensors 134 // Notifications 135 BadgeModule::class.java, 136 PushTokenModule::class.java, 137 NotificationPermissionsModule::class.java, 138 NotificationChannelManagerModule::class.java, 139 NotificationChannelGroupManagerModule::class.java, 140 ExpoBackgroundNotificationTasksModule::class.java, 141 // End of Notifications 142 BatteryModule::class.java, 143 BackgroundFetchModule::class.java, 144 BarCodeScannerModule::class.java, 145 BlurModule::class.java, 146 CalendarModule::class.java, 147 CameraViewModule::class.java, 148 CellularModule::class.java, 149 ClipboardModule::class.java, 150 CryptoModule::class.java, 151 ConstantsModule::class.java, 152 DeviceModule::class.java, 153 DocumentPickerModule::class.java, 154 EASClientModule::class.java, 155 FileSystemModule::class.java, 156 PrintModule::class.java, 157 GLViewModule::class.java, 158 GLObjectManagerModule::class.java, 159 HapticsModule::class.java, 160 ImagePickerModule::class.java, 161 ImageManipulatorModule::class.java, 162 ExpoImageModule::class.java, 163 IntentLauncherModule::class.java, 164 KeepAwakeModule::class.java, 165 LinearGradientModule::class.java, 166 LocalAuthenticationModule::class.java, 167 LocalizationModule::class.java, 168 MailComposerModule::class.java, 169 MediaLibraryModule::class.java, 170 NavigationBarModule::class.java, 171 NetworkModule::class.java, 172 RandomModule::class.java, 173 ScreenCaptureModule::class.java, 174 ScreenOrientationModule::class.java, 175 // SecureStoreModule is not added here, instead it is added in ExpoModuleRegistryAdapter.kt, 176 // because it needs access to scopedContext for Expo Go support 177 SMSModule::class.java, 178 SharingModule::class.java, 179 SpeechModule::class.java, 180 SplashScreenModule::class.java, 181 StoreReviewModule::class.java, 182 SQLiteModule::class.java, 183 SystemUIModule::class.java, 184 VideoThumbnailsModule::class.java, 185 VideoViewModule::class.java, 186 WebBrowserModule::class.java, 187 BrightnessModule::class.java, 188 ) 189 } 190