/
ExperiencePackagePicker.kt
199 lines (194 loc) · 7.71 KB
/
ExperiencePackagePicker.kt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
package versioned.host.exp.exponent
import expo.modules.application.ApplicationModule
import expo.modules.asset.AssetModule
import expo.modules.av.AVModule
import expo.modules.av.AVPackage
import expo.modules.av.video.VideoViewModule
import expo.modules.backgroundfetch.BackgroundFetchModule
import expo.modules.barcodescanner.BarCodeScannerModule
import expo.modules.barcodescanner.BarCodeScannerPackage
import expo.modules.battery.BatteryModule
import expo.modules.blur.BlurModule
import expo.modules.brightness.BrightnessModule
import expo.modules.calendar.CalendarModule
import expo.modules.camera.CameraViewModule
import expo.modules.camera.next.CameraViewNextModule
import expo.modules.cellular.CellularModule
import expo.modules.clipboard.ClipboardModule
import expo.modules.constants.ConstantsModule
import expo.modules.constants.ConstantsPackage
import expo.modules.contacts.ContactsModule
import expo.modules.core.interfaces.Package
import expo.modules.crypto.CryptoModule
import expo.modules.device.DeviceModule
import expo.modules.documentpicker.DocumentPickerModule
import expo.modules.easclient.EASClientModule
import expo.modules.facedetector.FaceDetectorModule
import expo.modules.facedetector.FaceDetectorPackage
import expo.modules.filesystem.FileSystemModule
import expo.modules.filesystem.FileSystemPackage
import expo.modules.gl.GLObjectManagerModule
import expo.modules.gl.GLViewModule
import expo.modules.haptics.HapticsModule
import expo.modules.image.ExpoImageModule
import expo.modules.imageloader.ImageLoaderPackage
import expo.modules.imagemanipulator.ImageManipulatorModule
import expo.modules.imagepicker.ImagePickerModule
import expo.modules.intentlauncher.IntentLauncherModule
import expo.modules.keepawake.KeepAwakeModule
import expo.modules.keepawake.KeepAwakePackage
import expo.modules.kotlin.ModulesProvider
import expo.modules.kotlin.modules.Module
import expo.modules.lineargradient.LinearGradientModule
import expo.modules.localauthentication.LocalAuthenticationModule
import expo.modules.localization.LocalizationModule
import expo.modules.location.LocationModule
import expo.modules.mailcomposer.MailComposerModule
import expo.modules.manifests.core.Manifest
import expo.modules.medialibrary.MediaLibraryModule
import expo.modules.navigationbar.NavigationBarModule
import expo.modules.navigationbar.NavigationBarPackage
import expo.modules.network.NetworkModule
import expo.modules.notifications.NotificationsPackage
import expo.modules.notifications.badge.BadgeModule
import expo.modules.notifications.notifications.background.ExpoBackgroundNotificationTasksModule
import expo.modules.notifications.notifications.channels.NotificationChannelGroupManagerModule
import expo.modules.notifications.notifications.channels.NotificationChannelManagerModule
import expo.modules.notifications.permissions.NotificationPermissionsModule
import expo.modules.notifications.tokens.PushTokenModule
import expo.modules.print.PrintModule
import expo.modules.random.RandomModule
import expo.modules.screencapture.ScreenCaptureModule
import expo.modules.screenorientation.ScreenOrientationModule
import expo.modules.sensors.SensorsPackage
import expo.modules.sensors.modules.AccelerometerModule
import expo.modules.sensors.modules.BarometerModule
import expo.modules.sensors.modules.DeviceMotionModule
import expo.modules.sensors.modules.GyroscopeModule
import expo.modules.sensors.modules.LightSensorModule
import expo.modules.sensors.modules.MagnetometerModule
import expo.modules.sensors.modules.MagnetometerUncalibratedModule
import expo.modules.sensors.modules.PedometerModule
import expo.modules.sharing.SharingModule
import expo.modules.sms.SMSModule
import expo.modules.speech.SpeechModule
import expo.modules.splashscreen.SplashScreenModule
import expo.modules.splashscreen.SplashScreenPackage
import expo.modules.sqlite.SQLiteModule
import expo.modules.sqlite.SQLiteModuleNext
import expo.modules.storereview.StoreReviewModule
import expo.modules.systemui.SystemUIModule
import expo.modules.systemui.SystemUIPackage
import expo.modules.taskManager.TaskManagerModule
import expo.modules.taskManager.TaskManagerPackage
import expo.modules.trackingtransparency.TrackingTransparencyModule
import expo.modules.updates.UpdatesPackage
import expo.modules.videothumbnails.VideoThumbnailsModule
import expo.modules.webbrowser.WebBrowserModule
object ExperiencePackagePicker : ModulesProvider {
private val EXPO_MODULES_PACKAGES = listOf(
AVPackage(),
BarCodeScannerPackage(),
ConstantsPackage(),
FaceDetectorPackage(),
FileSystemPackage(),
ImageLoaderPackage(),
KeepAwakePackage(),
NavigationBarPackage(),
NotificationsPackage(),
SensorsPackage(),
SplashScreenPackage(),
SystemUIPackage(),
TaskManagerPackage(),
UpdatesPackage()
)
/**
* Returns all available packages.
*/
fun packages(): List<Package> {
return EXPO_MODULES_PACKAGES
}
/**
* Returns packages filtered based on the app's manifest.
* For now, filtering is not applied but it is on the todo list.
*/
fun packages(manifest: Manifest?): List<Package> {
return EXPO_MODULES_PACKAGES
}
override fun getModulesList(): List<Class<out Module>> = listOf(
AVModule::class.java,
ApplicationModule::class.java,
// Sensors
AccelerometerModule::class.java,
AssetModule::class.java,
BarometerModule::class.java,
GyroscopeModule::class.java,
LightSensorModule::class.java,
DeviceMotionModule::class.java,
MagnetometerModule::class.java,
MagnetometerUncalibratedModule::class.java,
PedometerModule::class.java,
// End of Sensors
// Notifications
BadgeModule::class.java,
PushTokenModule::class.java,
NotificationPermissionsModule::class.java,
NotificationChannelManagerModule::class.java,
NotificationChannelGroupManagerModule::class.java,
ExpoBackgroundNotificationTasksModule::class.java,
// End of Notifications
BatteryModule::class.java,
BackgroundFetchModule::class.java,
BarCodeScannerModule::class.java,
BlurModule::class.java,
CalendarModule::class.java,
CameraViewModule::class.java,
CameraViewNextModule::class.java,
CellularModule::class.java,
ClipboardModule::class.java,
CryptoModule::class.java,
ConstantsModule::class.java,
ContactsModule::class.java,
DeviceModule::class.java,
DocumentPickerModule::class.java,
EASClientModule::class.java,
FileSystemModule::class.java,
FaceDetectorModule::class.java,
PrintModule::class.java,
GLViewModule::class.java,
GLObjectManagerModule::class.java,
HapticsModule::class.java,
ImagePickerModule::class.java,
ImageManipulatorModule::class.java,
ExpoImageModule::class.java,
IntentLauncherModule::class.java,
KeepAwakeModule::class.java,
LinearGradientModule::class.java,
LocalAuthenticationModule::class.java,
LocalizationModule::class.java,
LocationModule::class.java,
MailComposerModule::class.java,
MediaLibraryModule::class.java,
NavigationBarModule::class.java,
NetworkModule::class.java,
RandomModule::class.java,
ScreenCaptureModule::class.java,
ScreenOrientationModule::class.java,
// SecureStoreModule is not added here, instead it is added in ExpoModuleRegistryAdapter.kt,
// because it needs access to scopedContext for Expo Go support
SMSModule::class.java,
SharingModule::class.java,
SpeechModule::class.java,
SplashScreenModule::class.java,
StoreReviewModule::class.java,
SQLiteModule::class.java,
SQLiteModuleNext::class.java,
SystemUIModule::class.java,
TaskManagerModule::class.java,
TrackingTransparencyModule::class.java,
VideoThumbnailsModule::class.java,
VideoViewModule::class.java,
WebBrowserModule::class.java,
BrightnessModule::class.java
)
}