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