summaryrefslogtreecommitdiffhomepage
path: root/android/src
diff options
context:
space:
mode:
Diffstat (limited to 'android/src')
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ui/RedeemVoucherDialogFragment.kt18
-rw-r--r--android/src/main/res/values/strings.xml3
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>