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.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.MailComposerModule
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.random.RandomModule
50 import expo.modules.screencapture.ScreenCaptureModule
51 import expo.modules.screenorientation.ScreenOrientationModule
52 import expo.modules.securestore.SecureStorePackage
53 import expo.modules.sensors.SensorsPackage
54 import expo.modules.sharing.SharingModule
55 import expo.modules.sms.SMSModule
56 import expo.modules.speech.SpeechPackage
57 import expo.modules.splashscreen.SplashScreenPackage
58 import expo.modules.sqlite.SQLitePackage
59 import expo.modules.storereview.StoreReviewModule
60 import expo.modules.systemui.SystemUIModule
61 import expo.modules.systemui.SystemUIPackage
62 import expo.modules.taskManager.TaskManagerPackage
63 import expo.modules.updates.UpdatesPackage
64 import expo.modules.videothumbnails.VideoThumbnailsModule
65 import expo.modules.webbrowser.WebBrowserModule
66 
67 object ExperiencePackagePicker : ModulesProvider {
68   private val EXPO_MODULES_PACKAGES = listOf(
69     AVPackage(),
70     ApplicationPackage(),
71     BatteryPackage(),
72     BackgroundFetchPackage(),
73     BarCodeScannerPackage(),
74     CalendarPackage(),
75     ConstantsPackage(),
76     ContactsPackage(),
77     FaceDetectorPackage(),
78     FileSystemPackage(),
79     FontLoaderPackage(),
80     GLPackage(),
81     ImageLoaderPackage(),
82     KeepAwakePackage(),
83     LocalAuthenticationPackage(),
84     LocationPackage(),
85     NavigationBarPackage(),
86     NotificationsPackage(),
87     PermissionsPackage(),
88     SQLitePackage(),
89     SecureStorePackage(),
90     SensorsPackage(),
91     SpeechPackage(),
92     SplashScreenPackage(),
93     SystemUIPackage(),
94     TaskManagerPackage(),
95     UpdatesPackage(),
96   )
97 
98   /**
99    * Returns all available packages.
100    */
101   fun packages(): List<Package> {
102     return EXPO_MODULES_PACKAGES
103   }
104 
105   /**
106    * Returns packages filtered based on the app's manifest.
107    * For now, filtering is not applied but it is on the todo list.
108    */
109   fun packages(manifest: Manifest?): List<Package> {
110     return EXPO_MODULES_PACKAGES
111   }
112 
113   override fun getModulesList(): List<Class<out Module>> = listOf(
114     BarCodeScannerModule::class.java,
115     CameraViewModule::class.java,
116     CellularModule::class.java,
117     ClipboardModule::class.java,
118     CryptoModule::class.java,
119     ConstantsModule::class.java,
120     DeviceModule::class.java,
121     DocumentPickerModule::class.java,
122     EASClientModule::class.java,
123     PrintModule::class.java,
124     GLViewModule::class.java,
125     HapticsModule::class.java,
126     ImagePickerModule::class.java,
127     ImageManipulatorModule::class.java,
128     ExpoImageModule::class.java,
129     IntentLauncherModule::class.java,
130     LinearGradientModule::class.java,
131     LocalizationModule::class.java,
132     MailComposerModule::class.java,
133     MediaLibraryModule::class.java,
134     NetworkModule::class.java,
135     RandomModule::class.java,
136     ScreenCaptureModule::class.java,
137     ScreenOrientationModule::class.java,
138     SMSModule::class.java,
139     SharingModule::class.java,
140     StoreReviewModule::class.java,
141     SystemUIModule::class.java,
142     VideoThumbnailsModule::class.java,
143     VideoViewModule::class.java,
144     WebBrowserModule::class.java,
145     BrightnessModule::class.java,
146   )
147 }
148