diff options
| author | Albin <albin@mullvad.net> | 2023-11-17 15:00:00 +0100 |
|---|---|---|
| committer | Albin <albin@mullvad.net> | 2023-11-17 15:00:00 +0100 |
| commit | e45003f1197b7c34c9c3b99f36d52319140af4fb (patch) | |
| tree | f5c90eda4490b7af27e21a0a8b69e1a0f76b9dd3 /android | |
| parent | 8620efdb28c6863b40408862211ee690004526e5 (diff) | |
| parent | 679cb9144355c3fbd05f5af3341e9c8eeb2d2c42 (diff) | |
| download | mullvadvpn-e45003f1197b7c34c9c3b99f36d52319140af4fb.tar.xz mullvadvpn-e45003f1197b7c34c9c3b99f36d52319140af4fb.zip | |
Merge branch 'crash-when-getting-firewall-policy-error-droid-505'
Diffstat (limited to 'android')
5 files changed, 56 insertions, 13 deletions
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/notificationbanner/NotificationBanner.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/notificationbanner/NotificationBanner.kt index 6078e4b392..2bcda3ea35 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/notificationbanner/NotificationBanner.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/notificationbanner/NotificationBanner.kt @@ -37,6 +37,7 @@ import net.mullvad.mullvadvpn.ui.VersionInfo import net.mullvad.mullvadvpn.ui.notification.StatusLevel import net.mullvad.talpid.tunnel.ErrorState import net.mullvad.talpid.tunnel.ErrorStateCause +import net.mullvad.talpid.tunnel.FirewallPolicyError import org.joda.time.DateTime @Preview @@ -61,7 +62,13 @@ private fun PreviewNotificationBanner() { InAppNotification.TunnelStateBlocked, InAppNotification.NewDevice("Courageous Turtle"), InAppNotification.TunnelStateError( - error = ErrorState(ErrorStateCause.SetFirewallPolicyError, true) + error = + ErrorState( + ErrorStateCause.SetFirewallPolicyError( + FirewallPolicyError.Generic + ), + true + ) ) ) .map { it.toNotificationData({}, {}, {}) } diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/notificationbanner/NotificationData.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/notificationbanner/NotificationData.kt index 3fbf0ad095..16efa6c88b 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/notificationbanner/NotificationData.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/notificationbanner/NotificationData.kt @@ -113,8 +113,19 @@ private fun errorMessageBannerData(error: ErrorState) = error.getErrorNotificationResources(LocalContext.current).run { NotificationData( title = stringResource(id = titleResourceId), - message = optionalMessageArgument?.let { stringResource(id = messageResourceId, it) } - ?: stringResource(id = messageResourceId), + message = + HtmlCompat.fromHtml( + optionalMessageArgument?.let { stringResource(id = messageResourceId, it) } + ?: stringResource(id = messageResourceId), + HtmlCompat.FROM_HTML_MODE_COMPACT + ) + .toAnnotatedString( + boldSpanStyle = + SpanStyle( + color = MaterialTheme.colorScheme.onBackground, + fontWeight = FontWeight.ExtraBold + ) + ), statusLevel = StatusLevel.Error, action = null ) diff --git a/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/model/TunnelState.kt b/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/model/TunnelState.kt index 364c8861ce..26f776b223 100644 --- a/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/model/TunnelState.kt +++ b/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/model/TunnelState.kt @@ -6,6 +6,7 @@ import net.mullvad.talpid.net.TunnelEndpoint import net.mullvad.talpid.tunnel.ActionAfterDisconnect import net.mullvad.talpid.tunnel.ErrorState import net.mullvad.talpid.tunnel.ErrorStateCause +import net.mullvad.talpid.tunnel.FirewallPolicyError sealed class TunnelState : Parcelable { @Parcelize object Disconnected : TunnelState(), Parcelable @@ -73,9 +74,20 @@ sealed class TunnelState : Parcelable { DISCONNECTING -> Disconnecting(ActionAfterDisconnect.Nothing) BLOCKING -> Error(ErrorState(ErrorStateCause.StartTunnelError, true)) ERROR -> { - Error(ErrorState(ErrorStateCause.SetFirewallPolicyError, false)) + Error( + ErrorState( + ErrorStateCause.SetFirewallPolicyError(FirewallPolicyError.Generic), + false + ) + ) } - else -> Error(ErrorState(ErrorStateCause.SetFirewallPolicyError, false)) + else -> + Error( + ErrorState( + ErrorStateCause.SetFirewallPolicyError(FirewallPolicyError.Generic), + false + ) + ) } } } diff --git a/android/lib/talpid/src/main/kotlin/net/mullvad/talpid/tunnel/ErrorStateCause.kt b/android/lib/talpid/src/main/kotlin/net/mullvad/talpid/tunnel/ErrorStateCause.kt index 5096e5c693..fc35e4e23e 100644 --- a/android/lib/talpid/src/main/kotlin/net/mullvad/talpid/tunnel/ErrorStateCause.kt +++ b/android/lib/talpid/src/main/kotlin/net/mullvad/talpid/tunnel/ErrorStateCause.kt @@ -14,19 +14,23 @@ sealed class ErrorStateCause : Parcelable { } } - @Parcelize object Ipv6Unavailable : ErrorStateCause() + @Parcelize data object Ipv6Unavailable : ErrorStateCause() - @Parcelize object SetFirewallPolicyError : ErrorStateCause() + @Parcelize + data class SetFirewallPolicyError(val firewallPolicyError: FirewallPolicyError) : + ErrorStateCause() - @Parcelize object SetDnsError : ErrorStateCause() + @Parcelize data object SetDnsError : ErrorStateCause() - @Parcelize class InvalidDnsServers(val addresses: ArrayList<InetAddress>) : ErrorStateCause() + @Parcelize + data class InvalidDnsServers(val addresses: ArrayList<InetAddress>) : ErrorStateCause() - @Parcelize object StartTunnelError : ErrorStateCause() + @Parcelize data object StartTunnelError : ErrorStateCause() - @Parcelize class TunnelParameterError(val error: ParameterGenerationError) : ErrorStateCause() + @Parcelize + data class TunnelParameterError(val error: ParameterGenerationError) : ErrorStateCause() - @Parcelize object IsOffline : ErrorStateCause() + @Parcelize data object IsOffline : ErrorStateCause() - @Parcelize object VpnPermissionDenied : ErrorStateCause() + @Parcelize data object VpnPermissionDenied : ErrorStateCause() } diff --git a/android/lib/talpid/src/main/kotlin/net/mullvad/talpid/tunnel/FirewallPolicyError.kt b/android/lib/talpid/src/main/kotlin/net/mullvad/talpid/tunnel/FirewallPolicyError.kt new file mode 100644 index 0000000000..c6f19e71af --- /dev/null +++ b/android/lib/talpid/src/main/kotlin/net/mullvad/talpid/tunnel/FirewallPolicyError.kt @@ -0,0 +1,9 @@ +package net.mullvad.talpid.tunnel + +import android.os.Parcelable +import kotlinx.parcelize.Parcelize + +@Parcelize +enum class FirewallPolicyError : Parcelable { + Generic +} |
