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