mirror of
https://github.com/greenart7c3/Amber.git
synced 2026-09-14 00:35:08 +00:00
Add error handling to bunker permission parsing
Wrap the bunker permission parsing logic in a `try-catch` block and use `mapNotNull` to prevent crashes when encountering malformed permission strings. Parsing errors are now logged via `AmberLog` and the invalid permissions are skipped.
This commit is contained in:
+12
-6
@@ -27,6 +27,7 @@ import androidx.compose.ui.unit.Dp
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.compose.ui.unit.sp
|
||||
import com.greenart7c3.nostrsigner.Amber
|
||||
import com.greenart7c3.nostrsigner.AmberLog
|
||||
import com.greenart7c3.nostrsigner.LocalPreferences
|
||||
import com.greenart7c3.nostrsigner.R
|
||||
import com.greenart7c3.nostrsigner.database.ApplicationWithPermissions
|
||||
@@ -237,12 +238,17 @@ fun BunkerSingleEventHomeScreen(
|
||||
shouldCloseApp = applicationEntity?.application?.closeApplication ?: bunkerRequest.closeApplication,
|
||||
account = account,
|
||||
bunkerRequest = bunkerRequest,
|
||||
permissions = bunkerRequest.request.permissions?.split(",")?.map {
|
||||
val split = it.split(":")
|
||||
if (split.size > 1) {
|
||||
Permission(split[0].trim(), split[1].toInt())
|
||||
} else {
|
||||
Permission(split[0].trim(), null)
|
||||
permissions = bunkerRequest.request.permissions?.split(",")?.mapNotNull {
|
||||
try {
|
||||
val split = it.split(":")
|
||||
if (split.size > 1) {
|
||||
Permission(split[0].trim(), split[1].toInt())
|
||||
} else {
|
||||
Permission(split[0].trim(), null)
|
||||
}
|
||||
} catch (e: Exception) {
|
||||
AmberLog.e(Amber.TAG, "Error parsing permission", e)
|
||||
null
|
||||
}
|
||||
}?.toImmutableList(),
|
||||
onAccept = { permissions, signPolicy, closeApplication, rememberType, deleteAfter, acc ->
|
||||
|
||||
Reference in New Issue
Block a user