diff options
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 +} |
