diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2020-05-06 22:48:06 +0000 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2020-05-11 13:15:51 +0000 |
| commit | 2ffffd89dde97c342b0da516ab1340b3505a42dc (patch) | |
| tree | 0b4c19c2ee948db63687818be3e54dae2bf24a4b /android | |
| parent | 16ea9551668ec09d0ab527231058c7a62d5267e8 (diff) | |
| download | mullvadvpn-2ffffd89dde97c342b0da516ab1340b3505a42dc.tar.xz mullvadvpn-2ffffd89dde97c342b0da516ab1340b3505a42dc.zip | |
Handle voucher submission errors
Diffstat (limited to 'android')
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/ui/RedeemVoucherDialogFragment.kt | 18 | ||||
| -rw-r--r-- | android/src/main/res/values/strings.xml | 3 |
2 files changed, 21 insertions, 0 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/RedeemVoucherDialogFragment.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/RedeemVoucherDialogFragment.kt index dde5da6e82..7dde157903 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/RedeemVoucherDialogFragment.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/RedeemVoucherDialogFragment.kt @@ -12,6 +12,7 @@ import android.view.View import android.view.ViewGroup import android.view.ViewGroup.LayoutParams import android.widget.EditText +import android.widget.TextView import net.mullvad.mullvadvpn.R import net.mullvad.mullvadvpn.model.VoucherSubmissionResult import net.mullvad.mullvadvpn.service.MullvadDaemon @@ -25,6 +26,7 @@ class RedeemVoucherDialogFragment : DialogFragment() { private val jobTracker = JobTracker() private lateinit var parentActivity: MainActivity + private lateinit var errorMessage: TextView private lateinit var voucherInput: EditText private var redeemButton: Button? = null @@ -79,6 +81,8 @@ class RedeemVoucherDialogFragment : DialogFragment() { } } + errorMessage = view.findViewById(R.id.error) + view.findViewById<Button>(R.id.cancel).setOnClickAction("action", jobTracker) { activity?.onBackPressed() } @@ -121,6 +125,8 @@ class RedeemVoucherDialogFragment : DialogFragment() { } private suspend fun submitVoucher() { + errorMessage.visibility = View.INVISIBLE + val result = jobTracker.runOnBackground { daemon?.submitVoucher(voucherInput.text.toString()) } @@ -131,6 +137,18 @@ class RedeemVoucherDialogFragment : DialogFragment() { dismiss() } } + is VoucherSubmissionResult.InvalidVoucher -> showError(R.string.invalid_voucher) + is VoucherSubmissionResult.VoucherAlreadyUsed -> { + showError(R.string.voucher_already_used) + } + else -> showError(R.string.error_occurred) + } + } + + private fun showError(message: Int) { + errorMessage.apply { + setText(message) + visibility = View.VISIBLE } } diff --git a/android/src/main/res/values/strings.xml b/android/src/main/res/values/strings.xml index 20309f34d4..7170968806 100644 --- a/android/src/main/res/values/strings.xml +++ b/android/src/main/res/values/strings.xml @@ -33,6 +33,9 @@ <string name="enter_voucher_code">Enter voucher code</string> <string name="voucher_hint">XXXX-XXXX-XXXX-XXXX</string> <string name="redeem">Redeem</string> + <string name="invalid_voucher">Voucher code is invalid.</string> + <string name="voucher_already_used">Voucher code has already been used.</string> + <string name="error_occurred">An error occurred.</string> <string name="settings">Settings</string> <string name="settings_account">Account</string> <string name="less_than_a_day_left">less than a day left</string> |
