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.firebase.analytics.FirebaseAnalyticsPackage
27 import expo.modules.firebase.core.FirebaseCorePackage
28 import expo.modules.font.FontLoaderPackage
29 import expo.modules.gl.GLPackage
30 import expo.modules.haptics.HapticsModule
31 import expo.modules.image.ExpoImageModule
32 import expo.modules.imageloader.ImageLoaderPackage
33 import expo.modules.imagemanipulator.ImageManipulatorPackage
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.MailComposerPackage
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.print.PrintPackage
51 import expo.modules.random.RandomModule
52 import expo.modules.screencapture.ScreenCapturePackage
53 import expo.modules.screenorientation.ScreenOrientationPackage
54 import expo.modules.securestore.SecureStorePackage
55 import expo.modules.sensors.SensorsPackage
56 import expo.modules.sharing.SharingModule
57 import expo.modules.sms.SMSModule
58 import expo.modules.speech.SpeechPackage
59 import expo.modules.splashscreen.SplashScreenPackage
60 import expo.modules.sqlite.SQLitePackage
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     BrightnessPackage(),
77     CalendarPackage(),
78     ConstantsPackage(),
79     ContactsPackage(),
80     ErrorRecoveryPackage(),
81     FaceDetectorPackage(),
82     FileSystemPackage(),
83     FirebaseCorePackage(),
84     FirebaseAnalyticsPackage(),
85     FontLoaderPackage(),
86     GLPackage(),
87     ImageLoaderPackage(),
88     ImageManipulatorPackage(),
89     KeepAwakePackage(),
90     LocalAuthenticationPackage(),
91     LocationPackage(),
92     MailComposerPackage(),
93     NavigationBarPackage(),
94     NotificationsPackage(),
95     PermissionsPackage(),
96     PrintPackage(),
97     SQLitePackage(),
98     ScreenCapturePackage(),
99     ScreenOrientationPackage(),
100     SecureStorePackage(),
101     SensorsPackage(),
102     SpeechPackage(),
103     SplashScreenPackage(),
104     SystemUIPackage(),
105     TaskManagerPackage(),
106     UpdatesPackage(),
107   )
108 
109   /**
110    * Returns all available packages.
111    */
112   fun packages(): List<Package> {
113     return EXPO_MODULES_PACKAGES
114   }
115 
116   /**
117    * Returns packages filtered based on the app's manifest.
118    * For now, filtering is not applied but it is on the todo list.
119    */
120   fun packages(manifest: Manifest?): List<Package> {
121     return EXPO_MODULES_PACKAGES
122   }
123 
124   override fun getModulesList(): List<Class<out Module>> = listOf(
125     BarCodeScannerModule::class.java,
126     CameraViewModule::class.java,
127     CellularModule::class.java,
128     ClipboardModule::class.java,
129     CryptoModule::class.java,
130     ConstantsModule::class.java,
131     DeviceModule::class.java,
132     DocumentPickerModule::class.java,
133     EASClientModule::class.java,
134     HapticsModule::class.java,
135     ImagePickerModule::class.java,
136     ExpoImageModule::class.java,
137     IntentLauncherModule::class.java,
138     LinearGradientModule::class.java,
139     LocalizationModule::class.java,
140     MediaLibraryModule::class.java,
141     NetworkModule::class.java,
142     RandomModule::class.java,
143     SMSModule::class.java,
144     SharingModule::class.java,
145     StoreReviewModule::class.java,
146     SystemUIModule::class.java,
147     VideoThumbnailsModule::class.java,
148     VideoViewModule::class.java,
149     WebBrowserModule::class.java,
150   )
151 }
152