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.BrightnessModule
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.print.PrintModule
24 import expo.modules.facedetector.FaceDetectorPackage
25 import expo.modules.filesystem.FileSystemModule
26 import expo.modules.filesystem.FileSystemPackage
27 import expo.modules.font.FontLoaderPackage
28 import expo.modules.gl.GLPackage
29 import expo.modules.gl.GLViewModule
30 import expo.modules.haptics.HapticsModule
31 import expo.modules.image.ExpoImageModule
32 import expo.modules.imageloader.ImageLoaderPackage
33 import expo.modules.imagemanipulator.ImageManipulatorModule
34 import expo.modules.imagepicker.ImagePickerModule
35 import expo.modules.intentlauncher.IntentLauncherModule
36 import expo.modules.keepawake.KeepAwakePackage
37 import expo.modules.kotlin.ModulesProvider
38 import expo.modules.kotlin.modules.Module
39 import expo.modules.lineargradient.LinearGradientModule
40 import expo.modules.localauthentication.LocalAuthenticationPackage
41 import expo.modules.localization.LocalizationModule
42 import expo.modules.location.LocationPackage
43 import expo.modules.mailcomposer.MailComposerModule
44 import expo.modules.manifests.core.Manifest
45 import expo.modules.medialibrary.MediaLibraryModule
46 import expo.modules.navigationbar.NavigationBarPackage
47 import expo.modules.network.NetworkModule
48 import expo.modules.notifications.NotificationsPackage
49 import expo.modules.permissions.PermissionsPackage
50 import expo.modules.random.RandomModule
51 import expo.modules.screencapture.ScreenCaptureModule
52 import expo.modules.screenorientation.ScreenOrientationModule
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.SplashScreenModule
59 import expo.modules.splashscreen.SplashScreenPackage
60 import expo.modules.sqlite.SQLiteModule
61 import expo.modules.storereview.StoreReviewModule
62 import expo.modules.systemui.SystemUIModule
63 import expo.modules.systemui.SystemUIPackage
64 import expo.modules.taskManager.TaskManagerPackage
65 import expo.modules.updates.UpdatesPackage
66 import expo.modules.videothumbnails.VideoThumbnailsModule
67 import expo.modules.webbrowser.WebBrowserModule
68 
69 object ExperiencePackagePicker : ModulesProvider {
70   private val EXPO_MODULES_PACKAGES = listOf(
71     AVPackage(),
72     ApplicationPackage(),
73     BatteryPackage(),
74     BackgroundFetchPackage(),
75     BarCodeScannerPackage(),
76     CalendarPackage(),
77     ConstantsPackage(),
78     ContactsPackage(),
79     FaceDetectorPackage(),
80     FileSystemPackage(),
81     FontLoaderPackage(),
82     GLPackage(),
83     ImageLoaderPackage(),
84     KeepAwakePackage(),
85     LocalAuthenticationPackage(),
86     LocationPackage(),
87     NavigationBarPackage(),
88     NotificationsPackage(),
89     PermissionsPackage(),
90     SecureStorePackage(),
91     SensorsPackage(),
92     SpeechPackage(),
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     CameraViewModule::class.java,
117     CellularModule::class.java,
118     ClipboardModule::class.java,
119     CryptoModule::class.java,
120     ConstantsModule::class.java,
121     DeviceModule::class.java,
122     DocumentPickerModule::class.java,
123     EASClientModule::class.java,
124     FileSystemModule::class.java,
125     PrintModule::class.java,
126     GLViewModule::class.java,
127     HapticsModule::class.java,
128     ImagePickerModule::class.java,
129     ImageManipulatorModule::class.java,
130     ExpoImageModule::class.java,
131     IntentLauncherModule::class.java,
132     LinearGradientModule::class.java,
133     LocalizationModule::class.java,
134     MailComposerModule::class.java,
135     MediaLibraryModule::class.java,
136     NetworkModule::class.java,
137     RandomModule::class.java,
138     ScreenCaptureModule::class.java,
139     ScreenOrientationModule::class.java,
140     SMSModule::class.java,
141     SharingModule::class.java,
142     SplashScreenModule::class.java,
143     StoreReviewModule::class.java,
144     SQLiteModule::class.java,
145     SystemUIModule::class.java,
146     VideoThumbnailsModule::class.java,
147     VideoViewModule::class.java,
148     WebBrowserModule::class.java,
149     BrightnessModule::class.java,
150   )
151 }
152