summaryrefslogtreecommitdiffhomepage
path: root/android
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2020-05-22 20:06:28 +0000
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2020-05-28 18:41:35 +0000
commitdce9e3a477eb9705b9ae214ba84a0f573266de31 (patch)
tree87014a0315e21604c8ae7d8e9336a5d801ffd2e8 /android
parentd59c331f5c99f0badbcacdd468e4493cbffb1906 (diff)
downloadmullvadvpn-dce9e3a477eb9705b9ae214ba84a0f573266de31.tar.xz
mullvadvpn-dce9e3a477eb9705b9ae214ba84a0f573266de31.zip
Disable buttons when app has no connectivity
Diffstat (limited to 'android')
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ui/AccountFragment.kt30
1 files changed, 26 insertions, 4 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/AccountFragment.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/AccountFragment.kt
index 60c7491a3e..f7606ea737 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/AccountFragment.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/AccountFragment.kt
@@ -7,6 +7,7 @@ import android.view.View
import android.view.ViewGroup
import java.text.DateFormat
import net.mullvad.mullvadvpn.R
+import net.mullvad.mullvadvpn.model.TunnelState
import net.mullvad.mullvadvpn.ui.widget.Button
import net.mullvad.mullvadvpn.ui.widget.CopyableInformationView
import net.mullvad.mullvadvpn.ui.widget.InformationView
@@ -31,8 +32,17 @@ class AccountFragment : ServiceDependentFragment(OnNoService.GoBack) {
}
}
+ private var hasConnectivity = true
+ set(value) {
+ field = value
+ buyCreditButton.setEnabled(value)
+ redeemVoucherButton.setEnabled(value)
+ }
+
private lateinit var accountExpiryView: InformationView
private lateinit var accountNumberView: CopyableInformationView
+ private lateinit var buyCreditButton: Button
+ private lateinit var redeemVoucherButton: Button
override fun onSafelyCreateView(
inflater: LayoutInflater,
@@ -45,12 +55,16 @@ class AccountFragment : ServiceDependentFragment(OnNoService.GoBack) {
parentActivity.onBackPressed()
}
- view.findViewById<UrlButton>(R.id.buy_credit).prepare(daemon, jobTracker) {
- checkForAddedTime()
+ buyCreditButton = view.findViewById<UrlButton>(R.id.buy_credit).apply {
+ prepare(daemon, jobTracker) {
+ checkForAddedTime()
+ }
}
- view.findViewById<Button>(R.id.redeem_voucher).setOnClickAction("redeem", jobTracker) {
- showRedeemVoucherDialog()
+ redeemVoucherButton = view.findViewById<Button>(R.id.redeem_voucher).apply {
+ setOnClickAction("redeem", jobTracker) {
+ showRedeemVoucherDialog()
+ }
}
view.findViewById<Button>(R.id.logout).setOnClickAction("logout", jobTracker) {
@@ -80,6 +94,14 @@ class AccountFragment : ServiceDependentFragment(OnNoService.GoBack) {
}
}
+ connectionProxy.onUiStateChange.subscribe(this) { uiState ->
+ jobTracker.newUiJob("updateHasConnectivity") {
+ hasConnectivity = uiState is TunnelState.Connected ||
+ uiState is TunnelState.Disconnected ||
+ (uiState is TunnelState.Error && !uiState.errorState.isBlocking)
+ }
+ }
+
oldAccountExpiry?.let { expiry ->
accountCache.invalidateAccountExpiry(expiry)
}