summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2021-04-23 12:31:20 +0000
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2021-04-23 14:30:48 +0000
commit33c2a175237f68153670e652cd89849ba97b6a85 (patch)
tree78d1405139890a9b7bc26f8ee723c5c9de52a0e4
parent25b42f53fef77502e1beb9bebfa574873f5f77a1 (diff)
downloadmullvadvpn-33c2a175237f68153670e652cd89849ba97b6a85.tar.xz
mullvadvpn-33c2a175237f68153670e652cd89849ba97b6a85.zip
Use new error enum. in `VoucherSubmissionResult`
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/model/VoucherSubmissionResult.kt11
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ui/RedeemVoucherDialogFragment.kt15
-rw-r--r--mullvad-jni/src/lib.rs17
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()