1 package versioned.host.exp.exponent
2 
3 import expo.modules.application.ApplicationPackage
4 import expo.modules.av.AVPackage
5 import expo.modules.av.video.VideoViewModule
6 import expo.modules.backgroundfetch.BackgroundFetchPackage
7 import expo.modules.barcodescanner.BarCodeScannerModule
8 import expo.modules.barcodescanner.BarCodeScannerPackage
9 import expo.modules.battery.BatteryPackage
10 import expo.modules.blur.BlurModule
11 import expo.modules.brightness.BrightnessModule
12 import expo.modules.calendar.CalendarPackage
13 import expo.modules.camera.CameraViewModule
14 import expo.modules.cellular.CellularModule
15 import expo.modules.clipboard.ClipboardModule
16 import expo.modules.constants.ConstantsModule
17 import expo.modules.constants.ConstantsPackage
18 import expo.modules.contacts.ContactsPackage
19 import expo.modules.core.interfaces.Package
20 import expo.modules.crypto.CryptoModule
21 import expo.modules.device.DeviceModule
22 import expo.modules.documentpicker.DocumentPickerModule
23 import expo.modules.easclient.EASClientModule
24 import expo.modules.print.PrintModule
25 import expo.modules.facedetector.FaceDetectorPackage
26 import expo.modules.filesystem.FileSystemModule
27 import expo.modules.filesystem.FileSystemPackage
28 import expo.modules.font.FontLoaderPackage
29 import expo.modules.gl.GLPackage
30 import expo.modules.gl.GLViewModule
31 import expo.modules.haptics.HapticsModule
32 import expo.modules.image.ExpoImageModule
33 import expo.modules.imageloader.ImageLoaderPackage
34 import expo.modules.imagemanipulator.ImageManipulatorModule
35 import expo.modules.imagepicker.ImagePickerModule
36 import expo.modules.intentlauncher.IntentLauncherModule
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.LocalAuthenticationPackage
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.random.RandomModule
52 import expo.modules.screencapture.ScreenCaptureModule
53 import expo.modules.screenorientation.ScreenOrientationModule
54 import expo.modules.securestore.SecureStorePackage
55 import expo.modules.sensors.SensorsPackage
56 import expo.modules.sharing.SharingModule
57 import expo.modules.sms.SMSModule
58 import expo.modules.speech.SpeechModule
59 import expo.modules.splashscreen.SplashScreenModule
60 import expo.modules.splashscreen.SplashScreenPackage
61 import expo.modules.sqlite.SQLiteModule
62 import expo.modules.storereview.StoreReviewModule
63 import expo.modules.systemui.SystemUIModule
64 import expo.modules.systemui.SystemUIPackage
65 import expo.modules.taskManager.TaskManagerPackage
66 import expo.modules.updates.UpdatesPackage
67 import expo.modules.videothumbnails.VideoThumbnailsModule
68 import expo.modules.webbrowser.WebBrowserModule
69 
70 object ExperiencePackagePicker : ModulesProvider {
71   private val EXPO_MODULES_PACKAGES = listOf(
72     AVPackage(),
73     ApplicationPackage(),
74     BatteryPackage(),
75     BackgroundFetchPackage(),
76     BarCodeScannerPackage(),
77     CalendarPackage(),
78     ConstantsPackage(),
79     ContactsPackage(),
80     FaceDetectorPackage(),
81     FileSystemPackage(),
82     FontLoaderPackage(),
83     GLPackage(),
84     ImageLoaderPackage(),
85     KeepAwakePackage(),
86     LocalAuthenticationPackage(),
87     LocationPackage(),
88     NavigationBarPackage(),
89     NotificationsPackage(),
90     PermissionsPackage(),
91     SecureStorePackage(),
92     SensorsPackage(),
93     SplashScreenPackage(),
94     SystemUIPackage(),
95     TaskManagerPackage(),
96     UpdatesPackage(),
97   )
98 
99   /**
100    * Returns all available packages.
101    */
102   fun packages(): List<Package> {
103     return EXPO_MODULES_PACKAGES
104   }
105 
106   /**
107    * Returns packages filtered based on the app's manifest.
108    * For now, filtering is not applied but it is on the todo list.
109    */
110   fun packages(manifest: Manifest?): List<Package> {
111     return EXPO_MODULES_PACKAGES
112   }
113 
114   override fun getModulesList(): List<Class<out Module>> = listOf(
115     BarCodeScannerModule::class.java,
116     BlurModule::class.java,
117     CameraViewModule::class.java,
118     CellularModule::class.java,
119     ClipboardModule::class.java,
120     CryptoModule::class.java,
121     ConstantsModule::class.java,
122     DeviceModule::class.java,
123     DocumentPickerModule::class.java,
124     EASClientModule::class.java,
125     FileSystemModule::class.java,
126     PrintModule::class.java,
127     GLViewModule::class.java,
128     HapticsModule::class.java,
129     ImagePickerModule::class.java,
130     ImageManipulatorModule::class.java,
131     ExpoImageModule::class.java,
132     IntentLauncherModule::class.java,
133     LinearGradientModule::class.java,
134     LocalizationModule::class.java,
135     MailComposerModule::class.java,
136     MediaLibraryModule::class.java,
137     NetworkModule::class.java,
138     RandomModule::class.java,
139     ScreenCaptureModule::class.java,
140     ScreenOrientationModule::class.java,
141     SMSModule::class.java,
142     SharingModule::class.java,
143     SpeechModule::class.java,
144     SplashScreenModule::class.java,
145     StoreReviewModule::class.java,
146     SQLiteModule::class.java,
147     SystemUIModule::class.java,
148     VideoThumbnailsModule::class.java,
149     VideoViewModule::class.java,
150     WebBrowserModule::class.java,
151     BrightnessModule::class.java,
152   )
153 }
154