diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2021-04-23 12:31:20 +0000 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2021-04-23 14:30:48 +0000 |
| commit | 33c2a175237f68153670e652cd89849ba97b6a85 (patch) | |
| tree | 78d1405139890a9b7bc26f8ee723c5c9de52a0e4 | |
| parent | 25b42f53fef77502e1beb9bebfa574873f5f77a1 (diff) | |
| download | mullvadvpn-33c2a175237f68153670e652cd89849ba97b6a85.tar.xz mullvadvpn-33c2a175237f68153670e652cd89849ba97b6a85.zip | |
Use new error enum. in `VoucherSubmissionResult`
3 files changed, 13 insertions, 30 deletions
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 319bf18a79..b78957d5c0 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/model/VoucherSubmissionResult.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/model/VoucherSubmissionResult.kt @@ -8,14 +8,5 @@ sealed class VoucherSubmissionResult : Parcelable { data class Ok(val submission: VoucherSubmission) : VoucherSubmissionResult() @Parcelize - object InvalidVoucher : VoucherSubmissionResult() - - @Parcelize - object VoucherAlreadyUsed : VoucherSubmissionResult() - - @Parcelize - object RpcError : VoucherSubmissionResult() - - @Parcelize - object OtherError : VoucherSubmissionResult() + 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 9661d4ad4b..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 @@ -136,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) } } @@ -154,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 diff --git a/mullvad-jni/src/lib.rs b/mullvad-jni/src/lib.rs index bd23edb769..32d89a84cf 100644 --- a/mullvad-jni/src/lib.rs +++ b/mullvad-jni/src/lib.rs @@ -94,10 +94,7 @@ impl From<Result<AccountData, daemon_interface::Error>> for GetAccountDataResult #[jnix(package = "net.mullvad.mullvadvpn.model")] pub enum VoucherSubmissionResult { Ok(VoucherSubmission), - InvalidVoucher, - VoucherAlreadyUsed, - RpcError, - OtherError, + Error(VoucherSubmissionError), } #[derive(IntoJava)] @@ -113,15 +110,7 @@ impl From<Result<VoucherSubmission, daemon_interface::Error>> for VoucherSubmiss fn from(result: Result<VoucherSubmission, daemon_interface::Error>) -> Self { match result { Ok(submission) => VoucherSubmissionResult::Ok(submission), - Err(daemon_interface::Error::RpcError(RestError::ApiError(_, code))) => { - match code.as_str() { - mullvad_rpc::INVALID_VOUCHER => VoucherSubmissionResult::InvalidVoucher, - mullvad_rpc::VOUCHER_USED => VoucherSubmissionResult::VoucherAlreadyUsed, - _ => VoucherSubmissionResult::RpcError, - } - } - Err(daemon_interface::Error::RpcError(_)) => VoucherSubmissionResult::RpcError, - _ => VoucherSubmissionResult::OtherError, + Err(error) => VoucherSubmissionResult::Error(error.into()), } } } @@ -933,7 +922,7 @@ pub extern "system" fn Java_net_mullvad_mullvadvpn_service_MullvadDaemon_submitV VoucherSubmissionResult::from(raw_result) } else { - VoucherSubmissionResult::OtherError + VoucherSubmissionResult::Error(VoucherSubmissionError::OtherError) }; result.into_java(&env).forget() |
