diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2019-06-12 14:51:05 +0000 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2019-06-17 13:45:08 +0000 |
| commit | 9372edb30fd3a9ad7cfa8918288e3b753da10f3a (patch) | |
| tree | 3e29e9b1c20e1029504bbac997aa96478567d382 /android | |
| parent | 5c1ba26c379bf811dd7b22615cd8b0d80023c5a7 (diff) | |
| download | mullvadvpn-9372edb30fd3a9ad7cfa8918288e3b753da10f3a.tar.xz mullvadvpn-9372edb30fd3a9ad7cfa8918288e3b753da10f3a.zip | |
Refetch settings when logging in
Diffstat (limited to 'android')
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/LoginFragment.kt | 24 |
1 files changed, 19 insertions, 5 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/LoginFragment.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/LoginFragment.kt index dd5fd1a41c..80b000d643 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/LoginFragment.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/LoginFragment.kt @@ -1,12 +1,14 @@ package net.mullvad.mullvadvpn import kotlinx.coroutines.async +import kotlinx.coroutines.delay import kotlinx.coroutines.launch import kotlinx.coroutines.Deferred import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.GlobalScope import kotlinx.coroutines.Job +import android.content.Context import android.os.Bundle import android.os.Handler import android.support.v4.app.Fragment @@ -16,6 +18,8 @@ import android.view.ViewGroup import android.widget.TextView class LoginFragment : Fragment() { + private lateinit var parentActivity: MainActivity + private lateinit var title: TextView private lateinit var subtitle: TextView private lateinit var loggingInStatus: View @@ -25,6 +29,12 @@ class LoginFragment : Fragment() { private var loginJob: Deferred<Boolean>? = null + override fun onAttach(context: Context) { + super.onAttach(context) + + parentActivity = context as MainActivity + } + override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, @@ -38,7 +48,7 @@ class LoginFragment : Fragment() { loggedInStatus = view.findViewById(R.id.logged_in_status) loginFailStatus = view.findViewById(R.id.login_fail_status) - accountInput = AccountInput(view, context!!) + accountInput = AccountInput(view, parentActivity) accountInput.onLogin = { accountToken -> login(accountToken) } return view @@ -60,7 +70,6 @@ class LoginFragment : Fragment() { private fun performLogin(accountToken: String) = GlobalScope.launch(Dispatchers.Main) { loginJob?.cancel() loginJob = GlobalScope.async(Dispatchers.Default) { - val parentActivity = activity as MainActivity val daemon = parentActivity.asyncDaemon.await() val accountData = daemon.getAccountData(accountToken) @@ -79,7 +88,14 @@ class LoginFragment : Fragment() { } } - private fun loggedIn() { + private suspend fun loggedIn() { + showLoggedInMessage() + parentActivity.refetchSettings() + delay(1000) + openConnectScreen() + } + + private fun showLoggedInMessage() { title.setText(R.string.logged_in_title) subtitle.setText("") @@ -88,8 +104,6 @@ class LoginFragment : Fragment() { loggedInStatus.visibility = View.VISIBLE accountInput.state = LoginState.Success - - Handler().postDelayed(Runnable { openConnectScreen() }, 1000) } private fun openConnectScreen() { |
