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