summaryrefslogtreecommitdiffhomepage
path: root/android/app/src
diff options
context:
space:
mode:
authorAlbin <albin@mullvad.net>2022-07-01 09:29:52 +0200
committerAlbin <albin@mullvad.net>2022-07-07 14:57:05 +0200
commit821514f75c95fe22ff16a81b5ae19f18567bd8ab (patch)
tree64829bd6101fc803ddf3f82b775b66e16f9d0981 /android/app/src
parentac15ef4e14d97b3e9f8ec1ac237d544d4264f550 (diff)
downloadmullvadvpn-821514f75c95fe22ff16a81b5ae19f18567bd8ab.tar.xz
mullvadvpn-821514f75c95fe22ff16a81b5ae19f18567bd8ab.zip
Fix welcome view not showing
Diffstat (limited to 'android/app/src')
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/LoginFragment.kt18
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/MainActivity.kt22
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/AccountRepository.kt5
3 files changed, 24 insertions, 21 deletions
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/LoginFragment.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/LoginFragment.kt
index 843edf2577..aa146f2984 100644
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/LoginFragment.kt
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/LoginFragment.kt
@@ -8,7 +8,6 @@ import android.view.ViewGroup
import android.widget.ScrollView
import android.widget.TextView
import androidx.core.content.ContextCompat
-import androidx.fragment.app.Fragment
import androidx.lifecycle.Lifecycle
import androidx.lifecycle.lifecycleScope
import androidx.lifecycle.repeatOnLifecycle
@@ -128,17 +127,11 @@ class LoginFragment :
}
is LoginViewModel.LoginUiState.Success -> {
- openFragment(
- if (uiState.isOutOfTime) {
- OutOfTimeFragment()
- } else {
- ConnectFragment()
- }
- )
+ // MainActivity responsible for transition to connect/out-of-time view.
}
is LoginViewModel.LoginUiState.AccountCreated -> {
- openFragment(WelcomeFragment())
+ // MainActivity responsible for transition to welcome view.
}
is LoginViewModel.LoginUiState.CreatingAccount -> {
@@ -171,13 +164,6 @@ class LoginFragment :
}
}
- private fun openFragment(fragment: Fragment) {
- parentFragmentManager.beginTransaction().apply {
- replace(R.id.main_fragment, fragment)
- commit()
- }
- }
-
private fun openDeviceListFragment(accountToken: String) {
val deviceFragment = DeviceListFragment().apply {
arguments = Bundle().apply { putString(ACCOUNT_TOKEN_ARGUMENT_KEY, accountToken) }
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 c5efb3e984..f1831f0a88 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
@@ -24,6 +24,7 @@ import net.mullvad.mullvadvpn.dataproxy.MullvadProblemReport
import net.mullvad.mullvadvpn.di.uiModule
import net.mullvad.mullvadvpn.model.DeviceState
import net.mullvad.mullvadvpn.ui.fragments.DeviceRevokedFragment
+import net.mullvad.mullvadvpn.ui.serviceconnection.AccountRepository
import net.mullvad.mullvadvpn.ui.serviceconnection.DeviceRepository
import net.mullvad.mullvadvpn.ui.serviceconnection.ServiceConnectionManager
import org.koin.android.ext.android.getKoin
@@ -42,15 +43,17 @@ open class MainActivity : FragmentActivity() {
var backButtonHandler: (() -> Boolean)? = null
- private lateinit var serviceConnectionManager: ServiceConnectionManager
+ private lateinit var accountRepository: AccountRepository
private lateinit var deviceRepository: DeviceRepository
+ private lateinit var serviceConnectionManager: ServiceConnectionManager
override fun onCreate(savedInstanceState: Bundle?) {
loadKoinModules(uiModule)
getKoin().apply {
- serviceConnectionManager = get()
+ accountRepository = get()
deviceRepository = get()
+ serviceConnectionManager = get()
}
requestedOrientation = if (deviceIsTv) {
@@ -165,7 +168,9 @@ open class MainActivity : FragmentActivity() {
is DeviceState.Unknown -> openLaunchView()
is DeviceState.LoggedOut -> openLoginView()
is DeviceState.Revoked -> openRevokedView()
- is DeviceState.LoggedIn -> openConnectView()
+ is DeviceState.LoggedIn -> {
+ openLoggedInView(newState.accountAndDevice.account_token)
+ }
}
currentState = newState
}
@@ -195,9 +200,16 @@ open class MainActivity : FragmentActivity() {
}
}
- private fun openConnectView() {
+ private fun openLoggedInView(accountToken: String) {
+ val isNewAccount = accountToken == accountRepository.cachedCreatedAccount.value
+
+ val fragment = when {
+ isNewAccount -> WelcomeFragment()
+ else -> ConnectFragment()
+ }
+
supportFragmentManager.beginTransaction().apply {
- replace(R.id.main_fragment, ConnectFragment())
+ replace(R.id.main_fragment, fragment)
commit()
}
}
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/AccountRepository.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/AccountRepository.kt
index 32b36352ad..4d79bfd356 100644
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/AccountRepository.kt
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/serviceconnection/AccountRepository.kt
@@ -86,6 +86,7 @@ class AccountRepository(
}
fun logout() {
+ clearCreatedAccountCache()
dataSource?.logout()
}
@@ -100,4 +101,8 @@ class AccountRepository(
fun clearAccountHistory() {
dataSource?.clearAccountHistory()
}
+
+ private fun clearCreatedAccountCache() {
+ _cachedCreatedAccount.value = null
+ }
}