diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2021-04-23 11:41:11 -0300 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2021-04-23 11:41:11 -0300 |
| commit | 86abfe8762fd071bfad3466152d78c5fbfb7df84 (patch) | |
| tree | 78d1405139890a9b7bc26f8ee723c5c9de52a0e4 /android | |
| parent | 62f2238d999440c7fa5fbdc1f46bef19e1129346 (diff) | |
| parent | 33c2a175237f68153670e652cd89849ba97b6a85 (diff) | |
| download | mullvadvpn-86abfe8762fd071bfad3466152d78c5fbfb7df84.tar.xz mullvadvpn-86abfe8762fd071bfad3466152d78c5fbfb7df84.zip | |
Merge branch 'improve-voucher-submission-result'
Diffstat (limited to 'android')
3 files changed, 24 insertions, 20 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/model/VoucherSubmissionError.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/model/VoucherSubmissionError.kt new file mode 100644 index 0000000000..1cf778400a --- /dev/null +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/model/VoucherSubmissionError.kt @@ -0,0 +1,12 @@ +package net.mullvad.mullvadvpn.model + +import android.os.Parcelable +import kotlinx.parcelize.Parcelize + +@Parcelize +enum class VoucherSubmissionError : Parcelable { + InvalidVoucher, + VoucherAlreadyUsed, + RpcError, + OtherError, +} diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/model/VoucherSubmissionResult.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/model/VoucherSubmissionResult.kt index 7403d66014..b78957d5c0 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/model/VoucherSubmissionResult.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/model/VoucherSubmissionResult.kt @@ -5,17 +5,8 @@ import kotlinx.parcelize.Parcelize sealed class VoucherSubmissionResult : Parcelable { @Parcelize - class Ok(val submission: VoucherSubmission) : VoucherSubmissionResult(), Parcelable + data class Ok(val submission: VoucherSubmission) : VoucherSubmissionResult() @Parcelize - object InvalidVoucher : VoucherSubmissionResult(), Parcelable - - @Parcelize - object VoucherAlreadyUsed : VoucherSubmissionResult(), Parcelable - - @Parcelize - object RpcError : VoucherSubmissionResult(), Parcelable - - @Parcelize - object OtherError : VoucherSubmissionResult(), Parcelable + data class Error(val error: VoucherSubmissionError) : VoucherSubmissionResult() } 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 41cb29498b..a25ac6a1d8 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/RedeemVoucherDialogFragment.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/RedeemVoucherDialogFragment.kt @@ -14,6 +14,7 @@ import android.widget.EditText import android.widget.TextView import androidx.fragment.app.DialogFragment import net.mullvad.mullvadvpn.R +import net.mullvad.mullvadvpn.model.VoucherSubmissionError import net.mullvad.mullvadvpn.model.VoucherSubmissionResult import net.mullvad.mullvadvpn.ui.serviceconnection.AccountCache import net.mullvad.mullvadvpn.ui.serviceconnection.VoucherRedeemer @@ -126,9 +127,7 @@ class RedeemVoucherDialogFragment : DialogFragment() { } private fun updateRedeemButton() { - redeemButton?.apply { - setEnabled(voucherInputIsValid && voucherRedeemer != null) - } + redeemButton?.setEnabled(voucherInputIsValid && voucherRedeemer != null) } private suspend fun submitVoucher() { @@ -138,11 +137,7 @@ class RedeemVoucherDialogFragment : DialogFragment() { when (result) { is VoucherSubmissionResult.Ok -> handleAddedTime(result.submission.timeAdded) - is VoucherSubmissionResult.InvalidVoucher -> showError(R.string.invalid_voucher) - is VoucherSubmissionResult.VoucherAlreadyUsed -> { - showError(R.string.voucher_already_used) - } - else -> showError(R.string.error_occurred) + is VoucherSubmissionResult.Error -> showError(result.error) } } @@ -156,7 +151,13 @@ class RedeemVoucherDialogFragment : DialogFragment() { } } - private fun showError(message: Int) { + private fun showError(error: VoucherSubmissionError) { + val message = when (error) { + VoucherSubmissionError.InvalidVoucher -> R.string.invalid_voucher + VoucherSubmissionError.VoucherAlreadyUsed -> R.string.voucher_already_used + else -> R.string.error_occurred + } + errorMessage.apply { setText(message) visibility = View.VISIBLE |
