@@ -5,6 +5,7 @@ import android.os.Bundle
5
5
import androidx.activity.ComponentActivity
6
6
import androidx.activity.compose.setContent
7
7
import androidx.activity.result.contract.ActivityResultContracts
8
+ import androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen
8
9
import androidx.core.view.WindowCompat
9
10
import androidx.lifecycle.Lifecycle
10
11
import androidx.lifecycle.lifecycleScope
@@ -17,6 +18,7 @@ import net.mullvad.mullvadvpn.lib.common.util.SdkUtils.requestNotificationPermis
17
18
import net.mullvad.mullvadvpn.lib.intent.IntentProvider
18
19
import net.mullvad.mullvadvpn.lib.theme.AppTheme
19
20
import net.mullvad.mullvadvpn.repository.PrivacyDisclaimerRepository
21
+ import net.mullvad.mullvadvpn.repository.SplashCompleteRepository
20
22
import net.mullvad.mullvadvpn.ui.serviceconnection.ServiceConnectionManager
21
23
import net.mullvad.mullvadvpn.viewmodel.NoDaemonViewModel
22
24
import org.koin.android.ext.android.getKoin
@@ -31,6 +33,8 @@ class MainActivity : ComponentActivity() {
31
33
32
34
private lateinit var privacyDisclaimerRepository: PrivacyDisclaimerRepository
33
35
private lateinit var serviceConnectionManager: ServiceConnectionManager
36
+ private lateinit var splashCompleteRepository: SplashCompleteRepository
37
+ private var isReadyNextDraw: Boolean = false
34
38
private lateinit var noDaemonViewModel: NoDaemonViewModel
35
39
private lateinit var intentProvider: IntentProvider
36
40
@@ -45,16 +49,21 @@ class MainActivity : ComponentActivity() {
45
49
serviceConnectionManager = get()
46
50
noDaemonViewModel = get()
47
51
intentProvider = get()
52
+ splashCompleteRepository = get()
48
53
}
49
54
lifecycle.addObserver(noDaemonViewModel)
50
55
56
+ installSplashScreen().setKeepOnScreenCondition {
57
+ val isReady = isReadyNextDraw
58
+ isReadyNextDraw = splashCompleteRepository.isSplashComplete()
59
+ ! isReady
60
+ }
51
61
super .onCreate(savedInstanceState)
52
62
53
63
// Needs to be before set content since we want to access the intent in compose
54
64
if (savedInstanceState == null ) {
55
65
intentProvider.setStartIntent(intent)
56
66
}
57
-
58
67
setContent { AppTheme { MullvadApp () } }
59
68
60
69
// This is to protect against tapjacking attacks
0 commit comments