xref: /MusicFree/android/app/src/main/java/fun/upup/musicfree/MainApplication.kt (revision 5589cdf32b2bb0f641e5ac7bf1f6152cd6b9b70e)
1 package `fun`.upup.musicfree
2 import android.content.res.Configuration
3 import expo.modules.ApplicationLifecycleDispatcher
4 import expo.modules.ReactNativeHostWrapper
5 
6 import android.app.Application
7 import com.facebook.react.PackageList
8 import com.facebook.react.ReactApplication
9 import com.facebook.react.ReactHost
10 import com.facebook.react.ReactNativeHost
11 import com.facebook.react.ReactPackage
12 import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.load
13 import com.facebook.react.defaults.DefaultReactHost.getDefaultReactHost
14 import com.facebook.react.defaults.DefaultReactNativeHost
15 import com.facebook.soloader.SoLoader
16 import `fun`.upup.musicfree.lyricUtil.LyricUtilPackage
17 import `fun`.upup.musicfree.mp3Util.Mp3UtilPackage
18 import `fun`.upup.musicfree.utils.UtilsPackage
19 
20 class MainApplication : Application(), ReactApplication {
21 
22   override val reactNativeHost: ReactNativeHost =
23       ReactNativeHostWrapper(this, object : DefaultReactNativeHost(this) {
24         override fun getPackages(): List<ReactPackage> =
25             PackageList(this).packages.apply {
26               // Packages that cannot be autolinked yet can be added manually here, for example:
27               // add(MyReactNativePackage())
28               add(UtilsPackage())
29               add(Mp3UtilPackage())
30               add(LyricUtilPackage())
31             }
32 
33         override fun getJSMainModuleName(): String = "index"
34 
35         override fun getUseDeveloperSupport(): Boolean = BuildConfig.DEBUG
36 
37         override val isNewArchEnabled: Boolean = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED
38         override val isHermesEnabled: Boolean = BuildConfig.IS_HERMES_ENABLED
39       })
40 
41   override val reactHost: ReactHost
42     get() = ReactNativeHostWrapper.createReactHost(applicationContext, reactNativeHost)
43 
44   override fun onCreate() {
45     super.onCreate()
46     SoLoader.init(this, false)
47     if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) {
48       // If you opted-in for the New Architecture, we load the native entry point for this app.
49       load()
50     }
51     ApplicationLifecycleDispatcher.onApplicationCreate(this)
52   }
53 
54   override fun onConfigurationChanged(newConfig: Configuration) {
55     super.onConfigurationChanged(newConfig)
56     ApplicationLifecycleDispatcher.onConfigurationChanged(this, newConfig)
57   }
58 }
59