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.appauth.AppAuthPackage
8 import expo.modules.application.ApplicationPackage
9 import expo.modules.av.AVPackage
10 import expo.modules.backgroundfetch.BackgroundFetchPackage
11 import expo.modules.barcodescanner.BarCodeScannerPackage
12 import expo.modules.battery.BatteryPackage
13 import expo.modules.brightness.BrightnessPackage
14 import expo.modules.calendar.CalendarPackage
15 import expo.modules.camera.CameraPackage
16 import expo.modules.cellular.CellularModule
17 import expo.modules.clipboard.ClipboardModule
18 import expo.modules.constants.ConstantsPackage
19 import expo.modules.contacts.ContactsPackage
20 import expo.modules.core.interfaces.Package
21 import expo.modules.crypto.CryptoPackage
22 import expo.modules.device.DevicePackage
23 import expo.modules.documentpicker.DocumentPickerPackage
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     AppAuthPackage(),
75     ApplicationPackage(),
76     AmplitudePackage(),
77     BatteryPackage(),
78     BackgroundFetchPackage(),
79     BarCodeScannerPackage(),
80     BrightnessPackage(),
81     CalendarPackage(),
82     CameraPackage(),
83     ConstantsPackage(),
84     ContactsPackage(),
85     CryptoPackage(),
86     DevicePackage(),
87     DocumentPickerPackage(),
88     ErrorRecoveryPackage(),
89     FacebookPackage(),
90     FaceDetectorPackage(),
91     FileSystemPackage(),
92     FirebaseCorePackage(),
93     FirebaseAnalyticsPackage(),
94     FontLoaderPackage(),
95     GLPackage(),
96     GoogleSignInPackage(),
97     HapticsPackage(),
98     ImageLoaderPackage(),
99     ImageManipulatorPackage(),
100     ImagePickerPackage(),
101     IntentLauncherPackage(),
102     KeepAwakePackage(),
103     LocalAuthenticationPackage(),
104     LocalizationPackage(),
105     LocationPackage(),
106     MailComposerPackage(),
107     MediaLibraryPackage(),
108     NavigationBarPackage(),
109     NetworkPackage(),
110     NotificationsPackage(),
111     PermissionsPackage(),
112     PrintPackage(),
113     SMSPackage(),
114     StoreReviewPackage(),
115     SQLitePackage(),
116     ScreenCapturePackage(),
117     ScreenOrientationPackage(),
118     SecureStorePackage(),
119     SegmentPackage(),
120     SensorsPackage(),
121     SharingPackage(),
122     SpeechPackage(),
123     SplashScreenPackage(),
124     SystemUIPackage(),
125     TaskManagerPackage(),
126     UpdatesPackage(),
127     VideoThumbnailsPackage(),
128     WebBrowserPackage()
129   )
130 
131   /**
132    * Returns all available packages.
133    */
134   fun packages(): List<Package> {
135     return EXPO_MODULES_PACKAGES
136   }
137 
138   /**
139    * Returns packages filtered based on the app's manifest.
140    * For now, filtering is not applied but it is on the todo list.
141    */
142   fun packages(manifest: Manifest?): List<Package> {
143     return EXPO_MODULES_PACKAGES
144   }
145 
146   override fun getModulesList(): List<Class<out Module>> = listOf(
147     CellularModule::class.java,
148     ClipboardModule::class.java,
149     LinearGradientModule::class.java
150   )
151 }
152