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.ClipboardPackage
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     ClipboardPackage(),
84     ConstantsPackage(),
85     ContactsPackage(),
86     CryptoPackage(),
87     DevicePackage(),
88     DocumentPickerPackage(),
89     ErrorRecoveryPackage(),
90     FacebookPackage(),
91     FaceDetectorPackage(),
92     FileSystemPackage(),
93     FirebaseCorePackage(),
94     FirebaseAnalyticsPackage(),
95     FontLoaderPackage(),
96     GLPackage(),
97     GoogleSignInPackage(),
98     HapticsPackage(),
99     ImageLoaderPackage(),
100     ImageManipulatorPackage(),
101     ImagePickerPackage(),
102     IntentLauncherPackage(),
103     KeepAwakePackage(),
104     LocalAuthenticationPackage(),
105     LocalizationPackage(),
106     LocationPackage(),
107     MailComposerPackage(),
108     MediaLibraryPackage(),
109     NavigationBarPackage(),
110     NetworkPackage(),
111     NotificationsPackage(),
112     PermissionsPackage(),
113     PrintPackage(),
114     SMSPackage(),
115     StoreReviewPackage(),
116     SQLitePackage(),
117     ScreenCapturePackage(),
118     ScreenOrientationPackage(),
119     SecureStorePackage(),
120     SegmentPackage(),
121     SensorsPackage(),
122     SharingPackage(),
123     SpeechPackage(),
124     SplashScreenPackage(),
125     SystemUIPackage(),
126     TaskManagerPackage(),
127     UpdatesPackage(),
128     VideoThumbnailsPackage(),
129     WebBrowserPackage()
130   )
131 
132   /**
133    * Returns all available packages.
134    */
135   fun packages(): List<Package> {
136     return EXPO_MODULES_PACKAGES
137   }
138 
139   /**
140    * Returns packages filtered based on the app's manifest.
141    * For now, filtering is not applied but it is on the todo list.
142    */
143   fun packages(manifest: Manifest?): List<Package> {
144     return EXPO_MODULES_PACKAGES
145   }
146 
147   override fun getModulesList(): List<Class<out Module>> = listOf(
148     CellularModule::class.java,
149     LinearGradientModule::class.java
150   )
151 }
152