diff options
| author | Albin <albin@mullvad.net> | 2022-07-01 09:29:52 +0200 |
|---|---|---|
| committer | Albin <albin@mullvad.net> | 2022-07-07 14:57:05 +0200 |
| commit | 821514f75c95fe22ff16a81b5ae19f18567bd8ab (patch) | |
| tree | 64829bd6101fc803ddf3f82b775b66e16f9d0981 /android/app/src | |
| parent | ac15ef4e14d97b3e9f8ec1ac237d544d4264f550 (diff) | |
| download | mullvadvpn-821514f75c95fe22ff16a81b5ae19f18567bd8ab.tar.xz mullvadvpn-821514f75c95fe22ff16a81b5ae19f18567bd8ab.zip | |
Fix welcome view not showing
Diffstat (limited to 'android/app/src')
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 + } } |
