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