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.CryptoPackage
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.google.signin.GoogleSignInPackage
33 import expo.modules.haptics.HapticsPackage
34 import expo.modules.imageloader.ImageLoaderPackage
35 import expo.modules.imagemanipulator.ImageManipulatorPackage
36 import expo.modules.imagepicker.ImagePickerPackage
37 import expo.modules.intentlauncher.IntentLauncherPackage
38 import expo.modules.keepawake.KeepAwakePackage
39 import expo.modules.kotlin.ModulesProvider
40 import expo.modules.kotlin.modules.Module
41 import expo.modules.lineargradient.LinearGradientModule
42 import expo.modules.localauthentication.LocalAuthenticationPackage
43 import expo.modules.localization.LocalizationPackage
44 import expo.modules.location.LocationPackage
45 import expo.modules.mailcomposer.MailComposerPackage
46 import expo.modules.manifests.core.Manifest
47 import expo.modules.medialibrary.MediaLibraryPackage
48 import expo.modules.navigationbar.NavigationBarPackage
49 import expo.modules.network.NetworkPackage
50 import expo.modules.notifications.NotificationsPackage
51 import expo.modules.permissions.PermissionsPackage
52 import expo.modules.print.PrintPackage
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.WebBrowserPackage
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     CryptoPackage(),
85     DevicePackage(),
86     DocumentPickerPackage(),
87     ErrorRecoveryPackage(),
88     FacebookPackage(),
89     FaceDetectorPackage(),
90     FileSystemPackage(),
91     FirebaseCorePackage(),
92     FirebaseAnalyticsPackage(),
93     FontLoaderPackage(),
94     GLPackage(),
95     GoogleSignInPackage(),
96     HapticsPackage(),
97     ImageLoaderPackage(),
98     ImageManipulatorPackage(),
99     ImagePickerPackage(),
100     IntentLauncherPackage(),
101     KeepAwakePackage(),
102     LocalAuthenticationPackage(),
103     LocalizationPackage(),
104     LocationPackage(),
105     MailComposerPackage(),
106     MediaLibraryPackage(),
107     NavigationBarPackage(),
108     NetworkPackage(),
109     NotificationsPackage(),
110     PermissionsPackage(),
111     PrintPackage(),
112     SMSPackage(),
113     StoreReviewPackage(),
114     SQLitePackage(),
115     ScreenCapturePackage(),
116     ScreenOrientationPackage(),
117     SecureStorePackage(),
118     SegmentPackage(),
119     SensorsPackage(),
120     SharingPackage(),
121     SpeechPackage(),
122     SplashScreenPackage(),
123     SystemUIPackage(),
124     TaskManagerPackage(),
125     UpdatesPackage(),
126     VideoThumbnailsPackage(),
127     WebBrowserPackage()
128   )
129 
130   /**
131    * Returns all available packages.
132    */
133   fun packages(): List<Package> {
134     return EXPO_MODULES_PACKAGES
135   }
136 
137   /**
138    * Returns packages filtered based on the app's manifest.
139    * For now, filtering is not applied but it is on the todo list.
140    */
141   fun packages(manifest: Manifest?): List<Package> {
142     return EXPO_MODULES_PACKAGES
143   }
144 
145   override fun getModulesList(): List<Class<out Module>> = listOf(
146     CellularModule::class.java,
147     ClipboardModule::class.java,
148     EASClientModule::class.java,
149     LinearGradientModule::class.java,
150   )
151 }
152