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.TaskManagerModule 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 BarCodeScannerPackage(), 89 ConstantsPackage(), 90 ContactsPackage(), 91 FaceDetectorPackage(), 92 FileSystemPackage(), 93 ImageLoaderPackage(), 94 KeepAwakePackage(), 95 LocationPackage(), 96 NavigationBarPackage(), 97 NotificationsPackage(), 98 SensorsPackage(), 99 SplashScreenPackage(), 100 SystemUIPackage(), 101 TaskManagerPackage(), 102 UpdatesPackage(), 103 ) 104 105 /** 106 * Returns all available packages. 107 */ packagesnull108 fun packages(): List<Package> { 109 return EXPO_MODULES_PACKAGES 110 } 111 112 /** 113 * Returns packages filtered based on the app's manifest. 114 * For now, filtering is not applied but it is on the todo list. 115 */ packagesnull116 fun packages(manifest: Manifest?): List<Package> { 117 return EXPO_MODULES_PACKAGES 118 } 119 getModulesListnull120 override fun getModulesList(): List<Class<out Module>> = listOf( 121 AVModule::class.java, 122 ApplicationModule::class.java, 123 // Sensors 124 AccelerometerModule::class.java, 125 BarometerModule::class.java, 126 GyroscopeModule::class.java, 127 LightSensorModule::class.java, 128 DeviceMotionModule::class.java, 129 MagnetometerModule::class.java, 130 MagnetometerUncalibratedModule::class.java, 131 PedometerModule::class.java, 132 // End of Sensors 133 // Notifications 134 BadgeModule::class.java, 135 PushTokenModule::class.java, 136 NotificationPermissionsModule::class.java, 137 NotificationChannelManagerModule::class.java, 138 NotificationChannelGroupManagerModule::class.java, 139 ExpoBackgroundNotificationTasksModule::class.java, 140 // End of Notifications 141 BatteryModule::class.java, 142 BackgroundFetchModule::class.java, 143 BarCodeScannerModule::class.java, 144 BlurModule::class.java, 145 CalendarModule::class.java, 146 CameraViewModule::class.java, 147 CellularModule::class.java, 148 ClipboardModule::class.java, 149 CryptoModule::class.java, 150 ConstantsModule::class.java, 151 DeviceModule::class.java, 152 DocumentPickerModule::class.java, 153 EASClientModule::class.java, 154 FileSystemModule::class.java, 155 PrintModule::class.java, 156 GLViewModule::class.java, 157 GLObjectManagerModule::class.java, 158 HapticsModule::class.java, 159 ImagePickerModule::class.java, 160 ImageManipulatorModule::class.java, 161 ExpoImageModule::class.java, 162 IntentLauncherModule::class.java, 163 KeepAwakeModule::class.java, 164 LinearGradientModule::class.java, 165 LocalAuthenticationModule::class.java, 166 LocalizationModule::class.java, 167 MailComposerModule::class.java, 168 MediaLibraryModule::class.java, 169 NavigationBarModule::class.java, 170 NetworkModule::class.java, 171 RandomModule::class.java, 172 ScreenCaptureModule::class.java, 173 ScreenOrientationModule::class.java, 174 // SecureStoreModule is not added here, instead it is added in ExpoModuleRegistryAdapter.kt, 175 // because it needs access to scopedContext for Expo Go support 176 SMSModule::class.java, 177 SharingModule::class.java, 178 SpeechModule::class.java, 179 SplashScreenModule::class.java, 180 StoreReviewModule::class.java, 181 SQLiteModule::class.java, 182 SystemUIModule::class.java, 183 TaskManagerModule::class.java, 184 VideoThumbnailsModule::class.java, 185 VideoViewModule::class.java, 186 WebBrowserModule::class.java, 187 BrightnessModule::class.java, 188 ) 189 } 190