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.SpeechPackage
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     SpeechPackage(),
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     BarCodeScannerModule::class.java,
117     BlurModule::class.java,
118     CameraViewModule::class.java,
119     CellularModule::class.java,
120     ClipboardModule::class.java,
121     CryptoModule::class.java,
122     ConstantsModule::class.java,
123     DeviceModule::class.java,
124     DocumentPickerModule::class.java,
125     EASClientModule::class.java,
126     FileSystemModule::class.java,
127     PrintModule::class.java,
128     GLViewModule::class.java,
129     HapticsModule::class.java,
130     ImagePickerModule::class.java,
131     ImageManipulatorModule::class.java,
132     ExpoImageModule::class.java,
133     IntentLauncherModule::class.java,
134     LinearGradientModule::class.java,
135     LocalizationModule::class.java,
136     MailComposerModule::class.java,
137     MediaLibraryModule::class.java,
138     NetworkModule::class.java,
139     RandomModule::class.java,
140     ScreenCaptureModule::class.java,
141     ScreenOrientationModule::class.java,
142     SMSModule::class.java,
143     SharingModule::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