summaryrefslogtreecommitdiffhomepage
path: root/android/src/main/kotlin
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2020-05-06 22:48:06 +0000
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2020-05-11 13:15:51 +0000
commit2ffffd89dde97c342b0da516ab1340b3505a42dc (patch)
tree0b4c19c2ee948db63687818be3e54dae2bf24a4b /android/src/main/kotlin
parent16ea9551668ec09d0ab527231058c7a62d5267e8 (diff)
downloadmullvadvpn-2ffffd89dde97c342b0da516ab1340b3505a42dc.tar.xz
mullvadvpn-2ffffd89dde97c342b0da516ab1340b3505a42dc.zip
Handle voucher submission errors
Diffstat (limited to 'android/src/main/kotlin')
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ui/RedeemVoucherDialogFragment.kt18
1 files changed, 18 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
}
}