diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2020-05-22 20:06:28 +0000 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2020-05-28 18:41:35 +0000 |
| commit | dce9e3a477eb9705b9ae214ba84a0f573266de31 (patch) | |
| tree | 87014a0315e21604c8ae7d8e9336a5d801ffd2e8 /android/src/main | |
| parent | d59c331f5c99f0badbcacdd468e4493cbffb1906 (diff) | |
| download | mullvadvpn-dce9e3a477eb9705b9ae214ba84a0f573266de31.tar.xz mullvadvpn-dce9e3a477eb9705b9ae214ba84a0f573266de31.zip | |
Disable buttons when app has no connectivity
Diffstat (limited to 'android/src/main')
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/ui/AccountFragment.kt | 30 |
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) } |
