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