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