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.gl.GLViewModule
31 import expo.modules.haptics.HapticsModule
32 import expo.modules.image.ExpoImageModule
33 import expo.modules.imageloader.ImageLoaderPackage
34 import expo.modules.imagemanipulator.ImageManipulatorModule
35 import expo.modules.imagepicker.ImagePickerModule
36 import expo.modules.intentlauncher.IntentLauncherModule
37 import expo.modules.keepawake.KeepAwakePackage
38 import expo.modules.kotlin.ModulesProvider
39 import expo.modules.kotlin.modules.Module
40 import expo.modules.lineargradient.LinearGradientModule
41 import expo.modules.localauthentication.LocalAuthenticationPackage
42 import expo.modules.localization.LocalizationModule
43 import expo.modules.location.LocationPackage
44 import expo.modules.mailcomposer.MailComposerPackage
45 import expo.modules.manifests.core.Manifest
46 import expo.modules.medialibrary.MediaLibraryModule
47 import expo.modules.navigationbar.NavigationBarPackage
48 import expo.modules.network.NetworkModule
49 import expo.modules.notifications.NotificationsPackage
50 import expo.modules.permissions.PermissionsPackage
51 import expo.modules.print.PrintPackage
52 import expo.modules.random.RandomModule
53 import expo.modules.screencapture.ScreenCapturePackage
54 import expo.modules.screenorientation.ScreenOrientationPackage
55 import expo.modules.securestore.SecureStorePackage
56 import expo.modules.sensors.SensorsPackage
57 import expo.modules.sharing.SharingModule
58 import expo.modules.sms.SMSModule
59 import expo.modules.speech.SpeechPackage
60 import expo.modules.splashscreen.SplashScreenPackage
61 import expo.modules.sqlite.SQLitePackage
62 import expo.modules.storereview.StoreReviewModule
63 import expo.modules.systemui.SystemUIModule
64 import expo.modules.systemui.SystemUIPackage
65 import expo.modules.taskManager.TaskManagerPackage
66 import expo.modules.updates.UpdatesPackage
67 import expo.modules.videothumbnails.VideoThumbnailsModule
68 import expo.modules.webbrowser.WebBrowserModule
69 
70 object ExperiencePackagePicker : ModulesProvider {
71   private val EXPO_MODULES_PACKAGES = listOf(
72     AVPackage(),
73     ApplicationPackage(),
74     BatteryPackage(),
75     BackgroundFetchPackage(),
76     BarCodeScannerPackage(),
77     BrightnessPackage(),
78     CalendarPackage(),
79     ConstantsPackage(),
80     ContactsPackage(),
81     ErrorRecoveryPackage(),
82     FaceDetectorPackage(),
83     FileSystemPackage(),
84     FirebaseCorePackage(),
85     FirebaseAnalyticsPackage(),
86     FontLoaderPackage(),
87     GLPackage(),
88     ImageLoaderPackage(),
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     GLViewModule::class.java,
135     HapticsModule::class.java,
136     ImagePickerModule::class.java,
137     ImageManipulatorModule::class.java,
138     ExpoImageModule::class.java,
139     IntentLauncherModule::class.java,
140     LinearGradientModule::class.java,
141     LocalizationModule::class.java,
142     MediaLibraryModule::class.java,
143     NetworkModule::class.java,
144     RandomModule::class.java,
145     SMSModule::class.java,
146     SharingModule::class.java,
147     StoreReviewModule::class.java,
148     SystemUIModule::class.java,
149     VideoThumbnailsModule::class.java,
150     VideoViewModule::class.java,
151     WebBrowserModule::class.java,
152   )
153 }
154