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