diff options
| author | David Göransson <david.goransson@mullvad.net> | 2024-07-04 10:16:55 +0200 |
|---|---|---|
| committer | David Göransson <david.goransson@mullvad.net> | 2024-07-18 11:06:59 +0200 |
| commit | 3375aecd61e5ca830eab462b0e2688157afc1c41 (patch) | |
| tree | 26ac028b468944d5a757c9a73d670645b158e25a /android/app/src | |
| parent | 2368bb8748f80bb8c120cda7a141c4a9e52cb6ec (diff) | |
| download | mullvadvpn-3375aecd61e5ca830eab462b0e2688157afc1c41.tar.xz mullvadvpn-3375aecd61e5ca830eab462b0e2688157afc1c41.zip | |
Bind ServiceConnectionManager to Activity
Diffstat (limited to 'android/app/src')
| -rw-r--r-- | android/app/src/main/kotlin/net/mullvad/mullvadvpn/di/UiModule.kt | 5 | ||||
| -rw-r--r-- | android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/MainActivity.kt | 26 |
2 files changed, 15 insertions, 16 deletions
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/di/UiModule.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/di/UiModule.kt index 5ecf8ecbd9..371a30bdf1 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/di/UiModule.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/di/UiModule.kt @@ -24,6 +24,7 @@ import net.mullvad.mullvadvpn.repository.RelayOverridesRepository import net.mullvad.mullvadvpn.repository.SettingsRepository import net.mullvad.mullvadvpn.repository.SplashCompleteRepository import net.mullvad.mullvadvpn.repository.SplitTunnelingRepository +import net.mullvad.mullvadvpn.ui.MainActivity import net.mullvad.mullvadvpn.ui.serviceconnection.AppVersionInfoRepository import net.mullvad.mullvadvpn.ui.serviceconnection.ServiceConnectionManager import net.mullvad.mullvadvpn.usecase.AccountExpiryNotificationUseCase @@ -97,9 +98,9 @@ val uiModule = module { single<String>(named(SELF_PACKAGE_NAME)) { androidContext().packageName } viewModel { SplitTunnelingViewModel(get(), get(), Dispatchers.Default) } - single { ApplicationsProvider(get(), get(named(SELF_PACKAGE_NAME))) } - single { ServiceConnectionManager(androidContext()) } + single { ApplicationsProvider(get(), get(named(SELF_PACKAGE_NAME))) } + scope<MainActivity> { scoped { ServiceConnectionManager(androidContext()) } } single { InetAddressValidator.getInstance() } single { androidContext().resources } single { androidContext().assets } 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 8339a25f61..1d9de026af 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 @@ -21,22 +21,27 @@ import net.mullvad.mullvadvpn.repository.PrivacyDisclaimerRepository import net.mullvad.mullvadvpn.repository.SplashCompleteRepository import net.mullvad.mullvadvpn.ui.serviceconnection.ServiceConnectionManager import net.mullvad.mullvadvpn.viewmodel.NoDaemonViewModel -import org.koin.android.ext.android.getKoin +import org.koin.android.ext.android.inject +import org.koin.android.scope.AndroidScopeComponent +import org.koin.androidx.scope.activityScope import org.koin.core.context.loadKoinModules -class MainActivity : ComponentActivity() { +class MainActivity : ComponentActivity(), AndroidScopeComponent { + override val scope by activityScope() + private val requestNotificationPermissionLauncher = registerForActivityResult(ActivityResultContracts.RequestPermission()) { // NotificationManager.areNotificationsEnabled is used to check the state rather than // handling the callback value. } - private lateinit var privacyDisclaimerRepository: PrivacyDisclaimerRepository - private lateinit var serviceConnectionManager: ServiceConnectionManager - private lateinit var splashCompleteRepository: SplashCompleteRepository + private val intentProvider by inject<IntentProvider>() + private val noDaemonViewModel by inject<NoDaemonViewModel>() + private val privacyDisclaimerRepository by inject<PrivacyDisclaimerRepository>() + private val serviceConnectionManager by inject<ServiceConnectionManager>() + private val splashCompleteRepository by inject<SplashCompleteRepository>() + private var isReadyNextDraw: Boolean = false - private lateinit var noDaemonViewModel: NoDaemonViewModel - private lateinit var intentProvider: IntentProvider override fun onCreate(savedInstanceState: Bundle?) { loadKoinModules(listOf(uiModule, paymentModule)) @@ -44,13 +49,6 @@ class MainActivity : ComponentActivity() { // Tell the system that we will draw behind the status bar and navigation bar WindowCompat.setDecorFitsSystemWindows(window, false) - with(getKoin()) { - privacyDisclaimerRepository = get() - serviceConnectionManager = get() - noDaemonViewModel = get() - intentProvider = get() - splashCompleteRepository = get() - } lifecycle.addObserver(noDaemonViewModel) installSplashScreen().setKeepOnScreenCondition { |
