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.BarCodeScannerPackage
8 import expo.modules.battery.BatteryPackage
9 import expo.modules.brightness.BrightnessPackage
10 import expo.modules.calendar.CalendarPackage
11 import expo.modules.camera.CameraModule
12 import expo.modules.camera.CameraViewModule
13 import expo.modules.cellular.CellularModule
14 import expo.modules.clipboard.ClipboardModule
15 import expo.modules.constants.ConstantsPackage
16 import expo.modules.contacts.ContactsPackage
17 import expo.modules.core.interfaces.Package
18 import expo.modules.crypto.CryptoModule
19 import expo.modules.device.DevicePackage
20 import expo.modules.documentpicker.DocumentPickerPackage
21 import expo.modules.easclient.EASClientModule
22 import expo.modules.errorrecovery.ErrorRecoveryPackage
23 import expo.modules.facedetector.FaceDetectorPackage
24 import expo.modules.filesystem.FileSystemPackage
25 import expo.modules.firebase.analytics.FirebaseAnalyticsPackage
26 import expo.modules.firebase.core.FirebaseCorePackage
27 import expo.modules.font.FontLoaderPackage
28 import expo.modules.gl.GLPackage
29 import expo.modules.haptics.HapticsPackage
30 import expo.modules.imageloader.ImageLoaderPackage
31 import expo.modules.imagemanipulator.ImageManipulatorPackage
32 import expo.modules.imagepicker.ImagePickerModule
33 import expo.modules.intentlauncher.IntentLauncherPackage
34 import expo.modules.keepawake.KeepAwakePackage
35 import expo.modules.kotlin.ModulesProvider
36 import expo.modules.kotlin.modules.Module
37 import expo.modules.lineargradient.LinearGradientModule
38 import expo.modules.localauthentication.LocalAuthenticationPackage
39 import expo.modules.localization.LocalizationModule
40 import expo.modules.location.LocationPackage
41 import expo.modules.mailcomposer.MailComposerPackage
42 import expo.modules.manifests.core.Manifest
43 import expo.modules.medialibrary.MediaLibraryPackage
44 import expo.modules.navigationbar.NavigationBarPackage
45 import expo.modules.network.NetworkPackage
46 import expo.modules.notifications.NotificationsPackage
47 import expo.modules.permissions.PermissionsPackage
48 import expo.modules.print.PrintPackage
49 import expo.modules.random.RandomModule
50 import expo.modules.screencapture.ScreenCapturePackage
51 import expo.modules.screenorientation.ScreenOrientationPackage
52 import expo.modules.securestore.SecureStorePackage
53 import expo.modules.sensors.SensorsPackage
54 import expo.modules.sharing.SharingPackage
55 import expo.modules.sms.SMSPackage
56 import expo.modules.speech.SpeechPackage
57 import expo.modules.splashscreen.SplashScreenPackage
58 import expo.modules.sqlite.SQLitePackage
59 import expo.modules.storereview.StoreReviewPackage
60 import expo.modules.systemui.SystemUIPackage
61 import expo.modules.taskManager.TaskManagerPackage
62 import expo.modules.updates.UpdatesPackage
63 import expo.modules.videothumbnails.VideoThumbnailsPackage
64 import expo.modules.webbrowser.WebBrowserModule
65 
66 object ExperiencePackagePicker : ModulesProvider {
67   private val EXPO_MODULES_PACKAGES = listOf(
68     AVPackage(),
69     ApplicationPackage(),
70     BatteryPackage(),
71     BackgroundFetchPackage(),
72     BarCodeScannerPackage(),
73     BrightnessPackage(),
74     CalendarPackage(),
75     ConstantsPackage(),
76     ContactsPackage(),
77     DevicePackage(),
78     DocumentPickerPackage(),
79     ErrorRecoveryPackage(),
80     FaceDetectorPackage(),
81     FileSystemPackage(),
82     FirebaseCorePackage(),
83     FirebaseAnalyticsPackage(),
84     FontLoaderPackage(),
85     GLPackage(),
86     HapticsPackage(),
87     ImageLoaderPackage(),
88     ImageManipulatorPackage(),
89     IntentLauncherPackage(),
90     KeepAwakePackage(),
91     LocalAuthenticationPackage(),
92     LocationPackage(),
93     MailComposerPackage(),
94     MediaLibraryPackage(),
95     NavigationBarPackage(),
96     NetworkPackage(),
97     NotificationsPackage(),
98     PermissionsPackage(),
99     PrintPackage(),
100     SMSPackage(),
101     StoreReviewPackage(),
102     SQLitePackage(),
103     ScreenCapturePackage(),
104     ScreenOrientationPackage(),
105     SecureStorePackage(),
106     SensorsPackage(),
107     SharingPackage(),
108     SpeechPackage(),
109     SplashScreenPackage(),
110     SystemUIPackage(),
111     TaskManagerPackage(),
112     UpdatesPackage(),
113     VideoThumbnailsPackage(),
114   )
115 
116   /**
117    * Returns all available packages.
118    */
119   fun packages(): List<Package> {
120     return EXPO_MODULES_PACKAGES
121   }
122 
123   /**
124    * Returns packages filtered based on the app's manifest.
125    * For now, filtering is not applied but it is on the todo list.
126    */
127   fun packages(manifest: Manifest?): List<Package> {
128     return EXPO_MODULES_PACKAGES
129   }
130 
131   override fun getModulesList(): List<Class<out Module>> = listOf(
132     CameraModule::class.java,
133     CameraViewModule::class.java,
134     CellularModule::class.java,
135     ClipboardModule::class.java,
136     CryptoModule::class.java,
137     EASClientModule::class.java,
138     ImagePickerModule::class.java,
139     LinearGradientModule::class.java,
140     LocalizationModule::class.java,
141     RandomModule::class.java,
142     VideoViewModule::class.java,
143     WebBrowserModule::class.java,
144   )
145 }
146