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.ConstantsPackage
16 import expo.modules.contacts.ContactsPackage
17 import expo.modules.core.interfaces.Package
18 import expo.modules.crypto.CryptoModule
19 import expo.modules.device.DeviceModule
20 import expo.modules.documentpicker.DocumentPickerModule
21 import expo.modules.easclient.EASClientModule
22 import expo.modules.errorrecovery.ErrorRecoveryPackage
23 import expo.modules.facedetector.FaceDetectorPackage
24 import expo.modules.filesystem.FileSystemPackage
25 import expo.modules.firebase.analytics.FirebaseAnalyticsPackage
26 import expo.modules.firebase.core.FirebaseCorePackage
27 import expo.modules.font.FontLoaderPackage
28 import expo.modules.gl.GLPackage
29 import expo.modules.haptics.HapticsModule
30 import expo.modules.imageloader.ImageLoaderPackage
31 import expo.modules.imagemanipulator.ImageManipulatorPackage
32 import expo.modules.imagepicker.ImagePickerModule
33 import expo.modules.intentlauncher.IntentLauncherModule
34 import expo.modules.keepawake.KeepAwakePackage
35 import expo.modules.kotlin.ModulesProvider
36 import expo.modules.kotlin.modules.Module
37 import expo.modules.lineargradient.LinearGradientModule
38 import expo.modules.localauthentication.LocalAuthenticationPackage
39 import expo.modules.localization.LocalizationModule
40 import expo.modules.location.LocationPackage
41 import expo.modules.mailcomposer.MailComposerPackage
42 import expo.modules.manifests.core.Manifest
43 import expo.modules.medialibrary.MediaLibraryModule
44 import expo.modules.navigationbar.NavigationBarPackage
45 import expo.modules.network.NetworkModule
46 import expo.modules.notifications.NotificationsPackage
47 import expo.modules.permissions.PermissionsPackage
48 import expo.modules.print.PrintPackage
49 import expo.modules.random.RandomModule
50 import expo.modules.screencapture.ScreenCapturePackage
51 import expo.modules.screenorientation.ScreenOrientationPackage
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     BrightnessPackage(),
75     CalendarPackage(),
76     ConstantsPackage(),
77     ContactsPackage(),
78     ErrorRecoveryPackage(),
79     FaceDetectorPackage(),
80     FileSystemPackage(),
81     FirebaseCorePackage(),
82     FirebaseAnalyticsPackage(),
83     FontLoaderPackage(),
84     GLPackage(),
85     ImageLoaderPackage(),
86     ImageManipulatorPackage(),
87     KeepAwakePackage(),
88     LocalAuthenticationPackage(),
89     LocationPackage(),
90     MailComposerPackage(),
91     NavigationBarPackage(),
92     NotificationsPackage(),
93     PermissionsPackage(),
94     PrintPackage(),
95     SQLitePackage(),
96     ScreenCapturePackage(),
97     ScreenOrientationPackage(),
98     SecureStorePackage(),
99     SensorsPackage(),
100     SpeechPackage(),
101     SplashScreenPackage(),
102     SystemUIPackage(),
103     TaskManagerPackage(),
104     UpdatesPackage(),
105   )
106 
107   /**
108    * Returns all available packages.
109    */
110   fun packages(): List<Package> {
111     return EXPO_MODULES_PACKAGES
112   }
113 
114   /**
115    * Returns packages filtered based on the app's manifest.
116    * For now, filtering is not applied but it is on the todo list.
117    */
118   fun packages(manifest: Manifest?): List<Package> {
119     return EXPO_MODULES_PACKAGES
120   }
121 
122   override fun getModulesList(): List<Class<out Module>> = listOf(
123     BarCodeScannerModule::class.java,
124     CameraViewModule::class.java,
125     CellularModule::class.java,
126     ClipboardModule::class.java,
127     CryptoModule::class.java,
128     DeviceModule::class.java,
129     DocumentPickerModule::class.java,
130     EASClientModule::class.java,
131     HapticsModule::class.java,
132     ImagePickerModule::class.java,
133     IntentLauncherModule::class.java,
134     LinearGradientModule::class.java,
135     LocalizationModule::class.java,
136     MediaLibraryModule::class.java,
137     NetworkModule::class.java,
138     RandomModule::class.java,
139     SMSModule::class.java,
140     SharingModule::class.java,
141     StoreReviewModule::class.java,
142     SystemUIModule::class.java,
143     VideoThumbnailsModule::class.java,
144     VideoViewModule::class.java,
145     WebBrowserModule::class.java,
146   )
147 }
148