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.ImagePickerModule
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.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.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     IntentLauncherPackage(),
98     KeepAwakePackage(),
99     LocalAuthenticationPackage(),
100     LocationPackage(),
101     MailComposerPackage(),
102     MediaLibraryPackage(),
103     NavigationBarPackage(),
104     NetworkPackage(),
105     NotificationsPackage(),
106     PermissionsPackage(),
107     PrintPackage(),
108     SMSPackage(),
109     StoreReviewPackage(),
110     SQLitePackage(),
111     ScreenCapturePackage(),
112     ScreenOrientationPackage(),
113     SecureStorePackage(),
114     SegmentPackage(),
115     SensorsPackage(),
116     SharingPackage(),
117     SpeechPackage(),
118     SplashScreenPackage(),
119     SystemUIPackage(),
120     TaskManagerPackage(),
121     UpdatesPackage(),
122     VideoThumbnailsPackage(),
123   )
124 
125   /**
126    * Returns all available packages.
127    */
128   fun packages(): List<Package> {
129     return EXPO_MODULES_PACKAGES
130   }
131 
132   /**
133    * Returns packages filtered based on the app's manifest.
134    * For now, filtering is not applied but it is on the todo list.
135    */
136   fun packages(manifest: Manifest?): List<Package> {
137     return EXPO_MODULES_PACKAGES
138   }
139 
140   override fun getModulesList(): List<Class<out Module>> = listOf(
141     CellularModule::class.java,
142     ClipboardModule::class.java,
143     CryptoModule::class.java,
144     EASClientModule::class.java,
145     ImagePickerModule::class.java,
146     LinearGradientModule::class.java,
147     LocalizationModule::class.java,
148     RandomModule::class.java,
149     WebBrowserModule::class.java,
150   )
151 }
152