diff options
| author | Albin <albin@mullvad.net> | 2022-05-20 14:27:53 +0200 |
|---|---|---|
| committer | Albin <albin@mullvad.net> | 2022-05-20 14:38:07 +0200 |
| commit | b7e287b9a472b3f996bec6f8ca187a8e8b3d8dad (patch) | |
| tree | a25ccf7d8e21730784050511747ec87d3b621954 /android/app/src | |
| parent | 1080dabd122d9a67f5ef5260c7731639a0535646 (diff) | |
| download | mullvadvpn-b7e287b9a472b3f996bec6f8ca187a8e8b3d8dad.tar.xz mullvadvpn-b7e287b9a472b3f996bec6f8ca187a8e8b3d8dad.zip | |
Avoid loading the UI DI module in all processes
Loads the UI specific DI module only in the process/activity where it's
used. Before, the UI module and its dependencies would be loaded in the
service and tile processes as well.
Diffstat (limited to 'android/app/src')
| -rw-r--r-- | android/app/src/main/kotlin/net/mullvad/mullvadvpn/MullvadApplication.kt | 11 | ||||
| -rw-r--r-- | android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/MainActivity.kt | 12 |
2 files changed, 15 insertions, 8 deletions
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/MullvadApplication.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/MullvadApplication.kt index 0c3a0d8640..ae00e9e16d 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/MullvadApplication.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/MullvadApplication.kt @@ -1,20 +1,19 @@ package net.mullvad.mullvadvpn import android.app.Application -import net.mullvad.mullvadvpn.di.appModule import org.koin.android.ext.koin.androidContext import org.koin.core.context.startKoin +/** + * In Android, separate instances of the application class (MullvadApplication) will be instantiated + * for each process. That also means that a only common logic should be placed here. + */ class MullvadApplication : Application() { - override fun onCreate() { super.onCreate() - // start Koin! + // Used to create/start separate DI graphs for each process. Avoid non-common classes etc. startKoin { - // declare used Android context androidContext(this@MullvadApplication) - // declare modules - modules(appModule) } } } diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/MainActivity.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/MainActivity.kt index bda1055c76..16673ea65d 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/MainActivity.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/MainActivity.kt @@ -10,6 +10,7 @@ import android.net.VpnService import android.os.Bundle import android.os.IBinder import android.os.Messenger +import android.util.Log import android.view.WindowManager import androidx.fragment.app.Fragment import androidx.fragment.app.FragmentActivity @@ -18,11 +19,15 @@ import kotlin.properties.Delegates.observable import net.mullvad.mullvadvpn.BuildConfig import net.mullvad.mullvadvpn.R import net.mullvad.mullvadvpn.dataproxy.MullvadProblemReport +import net.mullvad.mullvadvpn.di.uiModule import net.mullvad.mullvadvpn.service.MullvadVpnService import net.mullvad.mullvadvpn.ui.serviceconnection.ServiceConnection import net.mullvad.talpid.util.EventNotifier +import org.koin.core.context.loadKoinModules +import org.koin.core.context.unloadKoinModules open class MainActivity : FragmentActivity() { + val problemReport = MullvadProblemReport() val serviceNotifier = EventNotifier<ServiceConnection?>(null) @@ -64,6 +69,8 @@ open class MainActivity : FragmentActivity() { var backButtonHandler: (() -> Boolean)? = null override fun onCreate(savedInstanceState: Bundle?) { + loadKoinModules(uiModule) + requestedOrientation = if (deviceIsTv) { ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE } else { @@ -85,7 +92,7 @@ open class MainActivity : FragmentActivity() { } override fun onStart() { - android.util.Log.d("mullvad", "Starting main activity") + Log.d("mullvad", "Starting main activity") super.onStart() val intent = Intent(this, MullvadVpnService::class.java) @@ -107,8 +114,9 @@ open class MainActivity : FragmentActivity() { } override fun onStop() { - android.util.Log.d("mullvad", "Stoping main activity") + Log.d("mullvad", "Stoping main activity") unbindService(serviceConnectionManager) + unloadKoinModules(uiModule) super.onStop() |
