1 package com.testrunner; 2 3 import android.app.Application; 4 import android.content.res.Configuration; 5 6 import androidx.annotation.NonNull; 7 import androidx.annotation.Nullable; 8 9 import com.facebook.react.PackageList; 10 import com.facebook.react.ReactApplication; 11 import com.facebook.react.ReactNativeHost; 12 import com.facebook.react.ReactPackage; 13 import com.facebook.soloader.SoLoader; 14 15 import expo.interfaces.devmenu.DevMenuPreferencesInterface; 16 import expo.modules.ApplicationLifecycleDispatcher; 17 import expo.modules.ReactNativeHostWrapper; 18 import expo.modules.devlauncher.DevLauncherController; 19 import expo.modules.devmenu.DevMenuDefaultPreferences; 20 import expo.modules.devmenu.DevMenuManager; 21 import expo.modules.devmenu.tests.DevMenuTestInterceptor; 22 23 import java.util.List; 24 25 public class MainApplication extends Application implements ReactApplication { 26 private final ReactNativeHost mReactNativeHost = new ReactNativeHostWrapper( 27 this, 28 new ReactNativeHost(this) { 29 @Override 30 public boolean getUseDeveloperSupport() { 31 return BuildConfig.DEBUG; 32 } 33 34 @Override 35 protected List<ReactPackage> getPackages() { 36 return new PackageList(this).getPackages(); 37 } 38 39 @Override 40 protected String getJSMainModuleName() { 41 return ".expo/.virtual-metro-entry"; 42 } 43 }); 44 45 @Override 46 public ReactNativeHost getReactNativeHost() { 47 return mReactNativeHost; 48 } 49 50 @Override 51 public void onCreate() { 52 super.onCreate(); 53 SoLoader.init(this, /* native exopackage */ false); 54 55 DevMenuManager.INSTANCE.setTestInterceptor(new DevMenuTestInterceptor() { 56 @Nullable 57 @Override 58 public DevMenuPreferencesInterface overrideSettings() { 59 return new DevMenuDefaultPreferences() { 60 @Override 61 public boolean getShowsAtLaunch() { 62 return false; 63 } 64 65 @Override 66 public boolean isOnboardingFinished() { 67 return true; 68 } 69 }; 70 } 71 }); 72 73 DevLauncherController.initialize(this, mReactNativeHost); 74 75 76 ApplicationLifecycleDispatcher.onApplicationCreate(this); 77 } 78 79 @Override 80 public void onConfigurationChanged(@NonNull Configuration newConfig) { 81 super.onConfigurationChanged(newConfig); 82 ApplicationLifecycleDispatcher.onConfigurationChanged(this, newConfig); 83 } 84 } 85