1 package versioned.host.exp.exponent
2 
3 import expo.modules.ads.admob.AdMobPackage
4 import expo.modules.ads.facebook.AdsFacebookPackage
5 import expo.modules.analytics.amplitude.AmplitudePackage
6 import expo.modules.analytics.segment.SegmentPackage
7 import expo.modules.application.ApplicationPackage
8 import expo.modules.av.AVPackage
9 import expo.modules.backgroundfetch.BackgroundFetchPackage
10 import expo.modules.barcodescanner.BarCodeScannerPackage
11 import expo.modules.battery.BatteryPackage
12 import expo.modules.brightness.BrightnessPackage
13 import expo.modules.calendar.CalendarPackage
14 import expo.modules.camera.CameraPackage
15 import expo.modules.cellular.CellularModule
16 import expo.modules.clipboard.ClipboardModule
17 import expo.modules.constants.ConstantsPackage
18 import expo.modules.contacts.ContactsPackage
19 import expo.modules.core.interfaces.Package
20 import expo.modules.crypto.CryptoModule
21 import expo.modules.device.DevicePackage
22 import expo.modules.documentpicker.DocumentPickerPackage
23 import expo.modules.easclient.EASClientModule
24 import expo.modules.errorrecovery.ErrorRecoveryPackage
25 import expo.modules.facebook.FacebookPackage
26 import expo.modules.facedetector.FaceDetectorPackage
27 import expo.modules.filesystem.FileSystemPackage
28 import expo.modules.firebase.analytics.FirebaseAnalyticsPackage
29 import expo.modules.firebase.core.FirebaseCorePackage
30 import expo.modules.font.FontLoaderPackage
31 import expo.modules.gl.GLPackage
32 import expo.modules.haptics.HapticsPackage
33 import expo.modules.imageloader.ImageLoaderPackage
34 import expo.modules.imagemanipulator.ImageManipulatorPackage
35 import expo.modules.imagepicker.ImagePickerPackage
36 import expo.modules.intentlauncher.IntentLauncherPackage
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.LocalizationPackage
43 import expo.modules.location.LocationPackage
44 import expo.modules.mailcomposer.MailComposerPackage
45 import expo.modules.manifests.core.Manifest
46 import expo.modules.medialibrary.MediaLibraryPackage
47 import expo.modules.navigationbar.NavigationBarPackage
48 import expo.modules.network.NetworkPackage
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.SharingPackage
58 import expo.modules.sms.SMSPackage
59 import expo.modules.speech.SpeechPackage
60 import expo.modules.splashscreen.SplashScreenPackage
61 import expo.modules.sqlite.SQLitePackage
62 import expo.modules.storereview.StoreReviewPackage
63 import expo.modules.systemui.SystemUIPackage
64 import expo.modules.taskManager.TaskManagerPackage
65 import expo.modules.updates.UpdatesPackage
66 import expo.modules.videothumbnails.VideoThumbnailsPackage
67 import expo.modules.webbrowser.WebBrowserModule
68 
69 object ExperiencePackagePicker : ModulesProvider {
70   private val EXPO_MODULES_PACKAGES = listOf(
71     AVPackage(),
72     AdMobPackage(),
73     AdsFacebookPackage(),
74     ApplicationPackage(),
75     AmplitudePackage(),
76     BatteryPackage(),
77     BackgroundFetchPackage(),
78     BarCodeScannerPackage(),
79     BrightnessPackage(),
80     CalendarPackage(),
81     CameraPackage(),
82     ConstantsPackage(),
83     ContactsPackage(),
84     DevicePackage(),
85     DocumentPickerPackage(),
86     ErrorRecoveryPackage(),
87     FacebookPackage(),
88     FaceDetectorPackage(),
89     FileSystemPackage(),
90     FirebaseCorePackage(),
91     FirebaseAnalyticsPackage(),
92     FontLoaderPackage(),
93     GLPackage(),
94     HapticsPackage(),
95     ImageLoaderPackage(),
96     ImageManipulatorPackage(),
97     ImagePickerPackage(),
98     IntentLauncherPackage(),
99     KeepAwakePackage(),
100     LocalAuthenticationPackage(),
101     LocalizationPackage(),
102     LocationPackage(),
103     MailComposerPackage(),
104     MediaLibraryPackage(),
105     NavigationBarPackage(),
106     NetworkPackage(),
107     NotificationsPackage(),
108     PermissionsPackage(),
109     PrintPackage(),
110     SMSPackage(),
111     StoreReviewPackage(),
112     SQLitePackage(),
113     ScreenCapturePackage(),
114     ScreenOrientationPackage(),
115     SecureStorePackage(),
116     SegmentPackage(),
117     SensorsPackage(),
118     SharingPackage(),
119     SpeechPackage(),
120     SplashScreenPackage(),
121     SystemUIPackage(),
122     TaskManagerPackage(),
123     UpdatesPackage(),
124     VideoThumbnailsPackage(),
125   )
126 
127   /**
128    * Returns all available packages.
129    */
130   fun packages(): List<Package> {
131     return EXPO_MODULES_PACKAGES
132   }
133 
134   /**
135    * Returns packages filtered based on the app's manifest.
136    * For now, filtering is not applied but it is on the todo list.
137    */
138   fun packages(manifest: Manifest?): List<Package> {
139     return EXPO_MODULES_PACKAGES
140   }
141 
142   override fun getModulesList(): List<Class<out Module>> = listOf(
143     CellularModule::class.java,
144     ClipboardModule::class.java,
145     CryptoModule::class.java,
146     EASClientModule::class.java,
147     LinearGradientModule::class.java,
148     RandomModule::class.java,
149     WebBrowserModule::class.java,
150   )
151 }
152