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