summaryrefslogtreecommitdiffhomepage
path: root/android/src
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2020-09-22 07:27:57 -0300
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2020-09-22 07:27:57 -0300
commitbb1e50525c97f7e597860a6ecfc6d2af82f35dc4 (patch)
tree8e2cd9e54dc5935435cbf2475af39b48a7c1985d /android/src
parente8d6ab89a0d366af194ce252f9f4588d2014611c (diff)
parent5667956f2b03d966a3c9bab8c284e7b2ba836216 (diff)
downloadmullvadvpn-bb1e50525c97f7e597860a6ecfc6d2af82f35dc4.tar.xz
mullvadvpn-bb1e50525c97f7e597860a6ecfc6d2af82f35dc4.zip
Merge branch 'account-history-in-account-cache'
Diffstat (limited to 'android/src')
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/service/AccountCache.kt9
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ui/LoginFragment.kt16
2 files changed, 15 insertions, 10 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/service/AccountCache.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/service/AccountCache.kt
index ac7965de96..6154956610 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/service/AccountCache.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/service/AccountCache.kt
@@ -22,6 +22,7 @@ class AccountCache(val daemon: MullvadDaemon, val settingsListener: SettingsList
val onAccountNumberChange = EventNotifier<String?>(null)
val onAccountExpiryChange = EventNotifier<DateTime?>(null)
+ val onAccountHistoryChange = EventNotifier<ArrayList<String>>(ArrayList())
var newlyCreatedAccount = false
private set
@@ -30,6 +31,7 @@ class AccountCache(val daemon: MullvadDaemon, val settingsListener: SettingsList
private var accountNumber by onAccountNumberChange.notifiable()
private var accountExpiry by onAccountExpiryChange.notifiable()
+ private var accountHistory by onAccountHistoryChange.notifiable()
private var createdAccountExpiry: DateTime? = null
private var oldAccountExpiry: DateTime? = null
@@ -93,6 +95,12 @@ class AccountCache(val daemon: MullvadDaemon, val settingsListener: SettingsList
jobTracker.cancelAllJobs()
}
+ private fun fetchAccountHistory() {
+ jobTracker.newBackgroundJob("fetchHistory") {
+ accountHistory = daemon.getAccountHistory()
+ }
+ }
+
private fun markAccountAsNotNew() {
newlyCreatedAccount = false
createdAccountExpiry = null
@@ -104,6 +112,7 @@ class AccountCache(val daemon: MullvadDaemon, val settingsListener: SettingsList
accountNumber = newAccountNumber
fetchAccountExpiry()
+ fetchAccountHistory()
}
}
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/LoginFragment.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/LoginFragment.kt
index 85f2da5e61..e19909a0cf 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/LoginFragment.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/LoginFragment.kt
@@ -59,7 +59,6 @@ class LoginFragment : ServiceDependentFragment(OnNoService.GoToLaunchScreen) {
accountLogin.clearFocus()
}
- fetchHistory()
scrollToShow(accountLogin)
return view
@@ -74,11 +73,16 @@ class LoginFragment : ServiceDependentFragment(OnNoService.GoToLaunchScreen) {
}
}
- fetchHistory()
+ accountCache.onAccountHistoryChange.subscribe(this) { history ->
+ jobTracker.newUiJob("updateHistory") {
+ accountLogin.accountHistory = history
+ }
+ }
}
override fun onSafelyStop() {
jobTracker.cancelJob("advanceToNextScreen")
+ accountCache.onAccountHistoryChange.unsubscribe(this)
}
private fun scrollToShow(view: View) {
@@ -125,14 +129,6 @@ class LoginFragment : ServiceDependentFragment(OnNoService.GoToLaunchScreen) {
performLogin(accountToken)
}
- private fun fetchHistory() {
- jobTracker.newUiJob("fetchHistory") {
- accountLogin.accountHistory = jobTracker.runOnBackground() {
- daemon.getAccountHistory()
- }
- }
- }
-
private fun performLogin(accountToken: String) {
jobTracker.newUiJob("login") {
val loginResult = jobTracker.runOnBackground {