summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2019-06-12 14:51:05 +0000
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2019-06-17 13:45:08 +0000
commit9372edb30fd3a9ad7cfa8918288e3b753da10f3a (patch)
tree3e29e9b1c20e1029504bbac997aa96478567d382
parent5c1ba26c379bf811dd7b22615cd8b0d80023c5a7 (diff)
downloadmullvadvpn-9372edb30fd3a9ad7cfa8918288e3b753da10f3a.tar.xz
mullvadvpn-9372edb30fd3a9ad7cfa8918288e3b753da10f3a.zip
Refetch settings when logging in
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/LoginFragment.kt24
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() {