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.DeviceModule
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.HapticsModule
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.NetworkModule
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.StoreReviewModule
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     DocumentPickerPackage(),
77     ErrorRecoveryPackage(),
78     FaceDetectorPackage(),
79     FileSystemPackage(),
80     FirebaseCorePackage(),
81     FirebaseAnalyticsPackage(),
82     FontLoaderPackage(),
83     GLPackage(),
84     ImageLoaderPackage(),
85     ImageManipulatorPackage(),
86     IntentLauncherPackage(),
87     KeepAwakePackage(),
88     LocalAuthenticationPackage(),
89     LocationPackage(),
90     MailComposerPackage(),
91     MediaLibraryPackage(),
92     NavigationBarPackage(),
93     NotificationsPackage(),
94     PermissionsPackage(),
95     PrintPackage(),
96     SMSPackage(),
97     SQLitePackage(),
98     ScreenCapturePackage(),
99     ScreenOrientationPackage(),
100     SecureStorePackage(),
101     SensorsPackage(),
102     SharingPackage(),
103     SpeechPackage(),
104     SplashScreenPackage(),
105     SystemUIPackage(),
106     TaskManagerPackage(),
107     UpdatesPackage(),
108     VideoThumbnailsPackage(),
109   )
110 
111   /**
112    * Returns all available packages.
113    */
114   fun packages(): List<Package> {
115     return EXPO_MODULES_PACKAGES
116   }
117 
118   /**
119    * Returns packages filtered based on the app's manifest.
120    * For now, filtering is not applied but it is on the todo list.
121    */
122   fun packages(manifest: Manifest?): List<Package> {
123     return EXPO_MODULES_PACKAGES
124   }
125 
126   override fun getModulesList(): List<Class<out Module>> = listOf(
127     CameraViewModule::class.java,
128     CellularModule::class.java,
129     ClipboardModule::class.java,
130     CryptoModule::class.java,
131     DeviceModule::class.java,
132     EASClientModule::class.java,
133     HapticsModule::class.java,
134     ImagePickerModule::class.java,
135     LinearGradientModule::class.java,
136     LocalizationModule::class.java,
137     NetworkModule::class.java,
138     RandomModule::class.java,
139     StoreReviewModule::class.java,
140     VideoViewModule::class.java,
141     WebBrowserModule::class.java,
142   )
143 }
144