18513c0b1SŁukasz Kosmaty package com.testrunner; 28513c0b1SŁukasz Kosmaty 38513c0b1SŁukasz Kosmaty import android.app.Application; 48513c0b1SŁukasz Kosmaty import android.content.res.Configuration; 58513c0b1SŁukasz Kosmaty 68513c0b1SŁukasz Kosmaty import androidx.annotation.NonNull; 78513c0b1SŁukasz Kosmaty import androidx.annotation.Nullable; 88513c0b1SŁukasz Kosmaty 98513c0b1SŁukasz Kosmaty import com.facebook.react.PackageList; 108513c0b1SŁukasz Kosmaty import com.facebook.react.ReactApplication; 118513c0b1SŁukasz Kosmaty import com.facebook.react.ReactNativeHost; 128513c0b1SŁukasz Kosmaty import com.facebook.react.ReactPackage; 138513c0b1SŁukasz Kosmaty import com.facebook.soloader.SoLoader; 148513c0b1SŁukasz Kosmaty 15052376e8Sandy import expo.interfaces.devmenu.DevMenuPreferencesInterface; 16c61511aaSŁukasz Kosmaty import expo.modules.ApplicationLifecycleDispatcher; 17c61511aaSŁukasz Kosmaty import expo.modules.ReactNativeHostWrapper; 188513c0b1SŁukasz Kosmaty import expo.modules.devlauncher.DevLauncherController; 19052376e8Sandy import expo.modules.devmenu.DevMenuDefaultPreferences; 208513c0b1SŁukasz Kosmaty import expo.modules.devmenu.DevMenuManager; 218513c0b1SŁukasz Kosmaty import expo.modules.devmenu.tests.DevMenuTestInterceptor; 228513c0b1SŁukasz Kosmaty 238513c0b1SŁukasz Kosmaty import java.util.List; 248513c0b1SŁukasz Kosmaty 258513c0b1SŁukasz Kosmaty public class MainApplication extends Application implements ReactApplication { 268513c0b1SŁukasz Kosmaty private final ReactNativeHost mReactNativeHost = new ReactNativeHostWrapper( 278513c0b1SŁukasz Kosmaty this, 288513c0b1SŁukasz Kosmaty new ReactNativeHost(this) { 298513c0b1SŁukasz Kosmaty @Override 308513c0b1SŁukasz Kosmaty public boolean getUseDeveloperSupport() { 318513c0b1SŁukasz Kosmaty return BuildConfig.DEBUG; 328513c0b1SŁukasz Kosmaty } 338513c0b1SŁukasz Kosmaty 348513c0b1SŁukasz Kosmaty @Override 358513c0b1SŁukasz Kosmaty protected List<ReactPackage> getPackages() { 368513c0b1SŁukasz Kosmaty return new PackageList(this).getPackages(); 378513c0b1SŁukasz Kosmaty } 388513c0b1SŁukasz Kosmaty 398513c0b1SŁukasz Kosmaty @Override 408513c0b1SŁukasz Kosmaty protected String getJSMainModuleName() { 41*036e9444SEvan Bacon return ".expo/.virtual-metro-entry"; 428513c0b1SŁukasz Kosmaty } 438513c0b1SŁukasz Kosmaty }); 448513c0b1SŁukasz Kosmaty 458513c0b1SŁukasz Kosmaty @Override getReactNativeHost()468513c0b1SŁukasz Kosmaty public ReactNativeHost getReactNativeHost() { 478513c0b1SŁukasz Kosmaty return mReactNativeHost; 488513c0b1SŁukasz Kosmaty } 498513c0b1SŁukasz Kosmaty 508513c0b1SŁukasz Kosmaty @Override onCreate()518513c0b1SŁukasz Kosmaty public void onCreate() { 528513c0b1SŁukasz Kosmaty super.onCreate(); 538513c0b1SŁukasz Kosmaty SoLoader.init(this, /* native exopackage */ false); 548513c0b1SŁukasz Kosmaty 558513c0b1SŁukasz Kosmaty DevMenuManager.INSTANCE.setTestInterceptor(new DevMenuTestInterceptor() { 568513c0b1SŁukasz Kosmaty @Nullable 578513c0b1SŁukasz Kosmaty @Override 58052376e8Sandy public DevMenuPreferencesInterface overrideSettings() { 59052376e8Sandy return new DevMenuDefaultPreferences() { 608513c0b1SŁukasz Kosmaty @Override 618513c0b1SŁukasz Kosmaty public boolean getShowsAtLaunch() { 628513c0b1SŁukasz Kosmaty return false; 638513c0b1SŁukasz Kosmaty } 648513c0b1SŁukasz Kosmaty 658513c0b1SŁukasz Kosmaty @Override 668513c0b1SŁukasz Kosmaty public boolean isOnboardingFinished() { 678513c0b1SŁukasz Kosmaty return true; 688513c0b1SŁukasz Kosmaty } 698513c0b1SŁukasz Kosmaty }; 708513c0b1SŁukasz Kosmaty } 718513c0b1SŁukasz Kosmaty }); 728513c0b1SŁukasz Kosmaty 738513c0b1SŁukasz Kosmaty DevLauncherController.initialize(this, mReactNativeHost); 748513c0b1SŁukasz Kosmaty 758513c0b1SŁukasz Kosmaty 768513c0b1SŁukasz Kosmaty ApplicationLifecycleDispatcher.onApplicationCreate(this); 778513c0b1SŁukasz Kosmaty } 788513c0b1SŁukasz Kosmaty 798513c0b1SŁukasz Kosmaty @Override onConfigurationChanged(@onNull Configuration newConfig)808513c0b1SŁukasz Kosmaty public void onConfigurationChanged(@NonNull Configuration newConfig) { 818513c0b1SŁukasz Kosmaty super.onConfigurationChanged(newConfig); 828513c0b1SŁukasz Kosmaty ApplicationLifecycleDispatcher.onConfigurationChanged(this, newConfig); 838513c0b1SŁukasz Kosmaty } 848513c0b1SŁukasz Kosmaty } 85