diff options
| author | Albin <albin@mullvad.net> | 2022-05-23 11:47:28 +0200 |
|---|---|---|
| committer | Albin <albin@mullvad.net> | 2022-05-23 11:47:28 +0200 |
| commit | c78fc6428876733d98d967659aabf1a345d4add0 (patch) | |
| tree | f8d4cef1fe2e6a261597802abf845cf0ad67cf5f /android/app/src | |
| parent | 9d2ceab94ce1e67140bfc4e34bf5ca9d980304d5 (diff) | |
| parent | 2e342f90bbdec43b56e9ea3a21d04716edbb4352 (diff) | |
| download | mullvadvpn-c78fc6428876733d98d967659aabf1a345d4add0.tar.xz mullvadvpn-c78fc6428876733d98d967659aabf1a345d4add0.zip | |
Merge branch 'fix-android-di-graphs'
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/di/UiModule.kt (renamed from android/app/src/main/kotlin/net/mullvad/mullvadvpn/di/AppModule.kt) | 2 | ||||
| -rw-r--r-- | android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/MainActivity.kt | 12 | ||||
| -rw-r--r-- | android/app/src/test/kotlin/net/mullvad/mullvadvpn/di/UiModuleTest.kt (renamed from android/app/src/test/kotlin/net/mullvad/mullvadvpn/di/AppModuleTest.kt) | 4 |
4 files changed, 18 insertions, 11 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/di/AppModule.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/di/UiModule.kt index 5d576f0f0c..17cfd3c922 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/di/AppModule.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/di/UiModule.kt @@ -14,7 +14,7 @@ import org.koin.core.qualifier.named import org.koin.dsl.module import org.koin.dsl.onClose -val appModule = module { +val uiModule = module { single<PackageManager> { androidContext().packageManager } single<String>(named(SELF_PACKAGE_NAME)) { androidContext().packageName } 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() diff --git a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/di/AppModuleTest.kt b/android/app/src/test/kotlin/net/mullvad/mullvadvpn/di/UiModuleTest.kt index c30a63fedf..92ffd792a0 100644 --- a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/di/AppModuleTest.kt +++ b/android/app/src/test/kotlin/net/mullvad/mullvadvpn/di/UiModuleTest.kt @@ -16,11 +16,11 @@ import org.koin.core.scope.Scope import org.koin.test.KoinTest import org.koin.test.KoinTestRule -class AppModuleTest : KoinTest { +class UiModuleTest : KoinTest { @get:Rule val koinTestRule = KoinTestRule.create { - modules(appModule) + modules(uiModule) } @After |
