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.errorrecovery.ErrorRecoveryPackage
24 import expo.modules.facebook.FacebookPackage
25 import expo.modules.facedetector.FaceDetectorPackage
26 import expo.modules.filesystem.FileSystemPackage
27 import expo.modules.firebase.analytics.FirebaseAnalyticsPackage
28 import expo.modules.firebase.core.FirebaseCorePackage
29 import expo.modules.font.FontLoaderPackage
30 import expo.modules.gl.GLPackage
31 import expo.modules.google.signin.GoogleSignInPackage
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.screencapture.ScreenCapturePackage
53 import expo.modules.screenorientation.ScreenOrientationPackage
54 import expo.modules.securestore.SecureStorePackage
55 import expo.modules.sensors.SensorsPackage
56 import expo.modules.sharing.SharingPackage
57 import expo.modules.sms.SMSPackage
58 import expo.modules.speech.SpeechPackage
59 import expo.modules.splashscreen.SplashScreenPackage
60 import expo.modules.sqlite.SQLitePackage
61 import expo.modules.storereview.StoreReviewPackage
62 import expo.modules.systemui.SystemUIPackage
63 import expo.modules.taskManager.TaskManagerPackage
64 import expo.modules.updates.UpdatesPackage
65 import expo.modules.videothumbnails.VideoThumbnailsPackage
66 import expo.modules.webbrowser.WebBrowserPackage
67 
68 object ExperiencePackagePicker : ModulesProvider {
69   private val EXPO_MODULES_PACKAGES = listOf(
70     AVPackage(),
71     AdMobPackage(),
72     AdsFacebookPackage(),
73     ApplicationPackage(),
74     AmplitudePackage(),
75     BatteryPackage(),
76     BackgroundFetchPackage(),
77     BarCodeScannerPackage(),
78     BrightnessPackage(),
79     CalendarPackage(),
80     CameraPackage(),
81     ConstantsPackage(),
82     ContactsPackage(),
83     CryptoPackage(),
84     DevicePackage(),
85     DocumentPickerPackage(),
86     ErrorRecoveryPackage(),
87     FacebookPackage(),
88     FaceDetectorPackage(),
89     FileSystemPackage(),
90     FirebaseCorePackage(),
91     FirebaseAnalyticsPackage(),
92     FontLoaderPackage(),
93     GLPackage(),
94     GoogleSignInPackage(),
95     HapticsPackage(),
96     ImageLoaderPackage(),
97     ImageManipulatorPackage(),
98     ImagePickerPackage(),
99     IntentLauncherPackage(),
100     KeepAwakePackage(),
101     LocalAuthenticationPackage(),
102     LocalizationPackage(),
103     LocationPackage(),
104     MailComposerPackage(),
105     MediaLibraryPackage(),
106     NavigationBarPackage(),
107     NetworkPackage(),
108     NotificationsPackage(),
109     PermissionsPackage(),
110     PrintPackage(),
111     SMSPackage(),
112     StoreReviewPackage(),
113     SQLitePackage(),
114     ScreenCapturePackage(),
115     ScreenOrientationPackage(),
116     SecureStorePackage(),
117     SegmentPackage(),
118     SensorsPackage(),
119     SharingPackage(),
120     SpeechPackage(),
121     SplashScreenPackage(),
122     SystemUIPackage(),
123     TaskManagerPackage(),
124     UpdatesPackage(),
125     VideoThumbnailsPackage(),
126     WebBrowserPackage()
127   )
128 
129   /**
130    * Returns all available packages.
131    */
132   fun packages(): List<Package> {
133     return EXPO_MODULES_PACKAGES
134   }
135 
136   /**
137    * Returns packages filtered based on the app's manifest.
138    * For now, filtering is not applied but it is on the todo list.
139    */
140   fun packages(manifest: Manifest?): List<Package> {
141     return EXPO_MODULES_PACKAGES
142   }
143 
144   override fun getModulesList(): List<Class<out Module>> = listOf(
145     CellularModule::class.java,
146     ClipboardModule::class.java,
147     LinearGradientModule::class.java
148   )
149 }
150