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