diff options
| author | Jonatan Rhodin <jonatan.rhodin@mullvad.net> | 2025-08-01 16:05:06 +0200 |
|---|---|---|
| committer | Jonatan Rhodin <jonatan.rhodin@mullvad.net> | 2025-08-01 16:05:06 +0200 |
| commit | a7b8f9e34cb4135dea66289ee2e5ffc1ec4d8382 (patch) | |
| tree | 39a4f5c014ec7906cf3beb031f1ce839fcfc7f7c /android | |
| parent | 5a8e054da09b27b541cf57722252feb63affdb96 (diff) | |
| parent | aed51df25e9ac8c5047bd5dfdcc7a5f5c83104d3 (diff) | |
| download | mullvadvpn-a7b8f9e34cb4135dea66289ee2e5ffc1ec4d8382.tar.xz mullvadvpn-a7b8f9e34cb4135dea66289ee2e5ffc1ec4d8382.zip | |
Merge branch 'app-crashes-when-using-split-tunneling-on-new-android-droid-2099'
Diffstat (limited to 'android')
| -rw-r--r-- | android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/SplitTunnelingCell.kt | 5 | ||||
| -rw-r--r-- | android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/util/Drawable.kt | 10 |
2 files changed, 7 insertions, 8 deletions
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/SplitTunnelingCell.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/SplitTunnelingCell.kt index 796ce53baa..05fa19e28f 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/SplitTunnelingCell.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/SplitTunnelingCell.kt @@ -33,7 +33,8 @@ import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import net.mullvad.mullvadvpn.R import net.mullvad.mullvadvpn.compose.component.SpacedColumn -import net.mullvad.mullvadvpn.compose.util.isBelowMaxSize +import net.mullvad.mullvadvpn.compose.util.hasValidSize +import net.mullvad.mullvadvpn.compose.util.isBelowMaxByteSize import net.mullvad.mullvadvpn.lib.theme.AppTheme import net.mullvad.mullvadvpn.lib.theme.Dimens import net.mullvad.mullvadvpn.lib.theme.color.AlphaDisabled @@ -81,7 +82,7 @@ fun SplitTunnelingCell( launch(Dispatchers.IO) { val drawable = onResolveIcon(packageName ?: "") icon = - if (drawable != null && drawable.isBelowMaxSize()) { + if (drawable != null && drawable.isBelowMaxByteSize() && drawable.hasValidSize()) { IconState.Icon(drawable = drawable) } else { IconState.NoIcon diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/util/Drawable.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/util/Drawable.kt index 3985590879..7d7e2605eb 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/util/Drawable.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/util/Drawable.kt @@ -5,9 +5,7 @@ import android.graphics.drawable.Drawable private const val MAX_BITMAP_SIZE_BYTES = 100 * 1024 * 1024 // 100MB -fun Drawable.isBelowMaxSize(): Boolean = - if (this is BitmapDrawable) { - bitmap.byteCount < MAX_BITMAP_SIZE_BYTES - } else { - true - } +fun Drawable.isBelowMaxByteSize(): Boolean = + if (this is BitmapDrawable) bitmap.byteCount < MAX_BITMAP_SIZE_BYTES else true + +fun Drawable.hasValidSize(): Boolean = intrinsicHeight > 0 && intrinsicWidth > 0 |
