1 package host.exp.exponent;
2 
3 import com.facebook.react.ReactPackage;
4 
5 import java.util.Arrays;
6 import java.util.List;
7 
8 import expo.core.interfaces.Package;
9 import expo.loaders.provider.interfaces.AppLoaderPackagesProviderInterface;
10 import expo.modules.ads.admob.AdMobPackage;
11 import expo.modules.ads.facebook.AdsFacebookPackage;
12 import expo.modules.analytics.amplitude.AmplitudePackage;
13 import expo.modules.analytics.segment.SegmentPackage;
14 import expo.modules.appauth.AppAuthPackage;
15 import expo.modules.av.AVPackage;
16 import expo.modules.backgroundfetch.BackgroundFetchPackage;
17 import expo.modules.barcodescanner.BarCodeScannerPackage;
18 import expo.modules.blurview.BlurViewPackage;
19 import expo.modules.brightness.BrightnessPackage;
20 import expo.modules.camera.CameraPackage;
21 import expo.modules.constants.ConstantsPackage;
22 import expo.modules.contacts.ContactsPackage;
23 import expo.modules.documentpicker.DocumentPickerPackage;
24 import expo.modules.facebook.FacebookPackage;
25 import expo.modules.facedetector.FaceDetectorPackage;
26 import expo.modules.filesystem.FileSystemPackage;
27 import expo.modules.font.FontLoaderPackage;
28 import expo.modules.gl.GLPackage;
29 import expo.modules.google.signin.GoogleSignInPackage;
30 import expo.modules.imagepicker.ImagePickerPackage;
31 import expo.modules.keepawake.KeepAwakePackage;
32 import expo.modules.lineargradient.LinearGradientPackage;
33 import expo.modules.localauthentication.LocalAuthenticationPackage;
34 import expo.modules.localization.LocalizationPackage;
35 import expo.modules.location.LocationPackage;
36 import expo.modules.mailcomposer.MailComposerPackage;
37 import expo.modules.medialibrary.MediaLibraryPackage;
38 import expo.modules.permissions.PermissionsPackage;
39 import expo.modules.print.PrintPackage;
40 import expo.modules.securestore.SecureStorePackage;
41 import expo.modules.sensors.SensorsPackage;
42 import expo.modules.sms.SMSPackage;
43 import expo.modules.speech.SpeechPackage;
44 import expo.modules.sqlite.SQLitePackage;
45 import expo.modules.taskManager.TaskManagerPackage;
46 import expo.modules.webbrowser.WebBrowserPackage;
47 import expolib_v1.okhttp3.OkHttpClient;
48 
49 // Needed for `react-native link`
50 // import com.facebook.react.ReactApplication;
51 
52 public class MainApplication extends ExpoApplication implements AppLoaderPackagesProviderInterface<ReactPackage> {
53 
54   @Override
55   public boolean isDebug() {
56     return BuildConfig.DEBUG;
57   }
58 
59   // Needed for `react-native link`
60   public List<ReactPackage> getPackages() {
61     return Arrays.<ReactPackage>asList(
62         // Add your own packages here!
63         // TODO: add native modules!
64 
65         // Needed for `react-native link`
66         // new MainReactPackage()
67     );
68   }
69 
70   public List<Package> getExpoPackages() {
71     return Arrays.<Package>asList(
72         new AVPackage(),
73         new AdMobPackage(),
74         new AdsFacebookPackage(),
75         new AppAuthPackage(),
76         new AmplitudePackage(),
77         new BackgroundFetchPackage(),
78         new BarCodeScannerPackage(),
79         new BlurViewPackage(),
80         new BrightnessPackage(),
81         new CameraPackage(),
82         new ConstantsPackage(),
83         new ContactsPackage(),
84         new DocumentPickerPackage(),
85         new FaceDetectorPackage(),
86         new FacebookPackage(),
87         new FileSystemPackage(),
88         new FontLoaderPackage(),
89         new GLPackage(),
90         new GoogleSignInPackage(),
91         new ImagePickerPackage(),
92         new KeepAwakePackage(),
93         new LinearGradientPackage(),
94         new LocalAuthenticationPackage(),
95         new LocalizationPackage(),
96         new LocationPackage(),
97         new MailComposerPackage(),
98         new MediaLibraryPackage(),
99         new PermissionsPackage(),
100         new PrintPackage(),
101         new SMSPackage(),
102         new SQLitePackage(),
103         new SecureStorePackage(),
104         new SegmentPackage(),
105         new SensorsPackage(),
106         new SpeechPackage(),
107         new TaskManagerPackage(),
108         new WebBrowserPackage()
109     );
110   }
111 
112   @Override
113   public String gcmSenderId() {
114     return getString(R.string.gcm_defaultSenderId);
115   }
116 
117   @Override
118   public boolean shouldUseInternetKernel() {
119     return BuildVariantConstants.USE_INTERNET_KERNEL;
120   }
121 
122   public static OkHttpClient.Builder okHttpClientBuilder(OkHttpClient.Builder builder) {
123     // Customize/override OkHttp client here
124     return builder;
125   }
126 }
127