From 5ef3c8f00ec06e156ab06c1c8605b2a5cefccae1 Mon Sep 17 00:00:00 2001 From: greenart7c3 Date: Fri, 11 Oct 2024 07:22:34 -0300 Subject: [PATCH] Check for the result field when using external signer --- .../quartz/signers/ExternalSignerLauncher.kt | 21 ++++++++++--------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/quartz/src/main/java/com/vitorpamplona/quartz/signers/ExternalSignerLauncher.kt b/quartz/src/main/java/com/vitorpamplona/quartz/signers/ExternalSignerLauncher.kt index 1fdbc6505..61209c1bc 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/signers/ExternalSignerLauncher.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/signers/ExternalSignerLauncher.kt @@ -58,6 +58,7 @@ class Permission( class Result( @JsonProperty("package") val `package`: String?, @JsonProperty("signature") val signature: String?, + @JsonProperty("result") val result: String?, @JsonProperty("id") val id: String?, ) { companion object { @@ -76,7 +77,8 @@ class Result( val jsonObject: JsonNode = jp.codec.readTree(jp) return Result( jsonObject.get("package").asText().intern(), - jsonObject.get("signature").asText().intern(), + jsonObject.get("signature")?.asText()?.intern(), + jsonObject.get("result")?.asText()?.intern(), jsonObject.get("id").asText().intern(), ) } @@ -120,7 +122,7 @@ class ExternalSignerLauncher( if (results != null) { val localResults: Array = Result.fromJsonArray(results) localResults.forEach { - val signature = it.signature ?: "" + val signature = it.result ?: it.signature ?: "" val packageName = it.`package`?.let { "-$it" } ?: "" val id = it.id ?: "" if (id.isNotBlank()) { @@ -130,7 +132,7 @@ class ExternalSignerLauncher( } } } else { - val signature = data.getStringExtra("signature") ?: "" + val signature = data.getStringExtra("result") ?: data.getStringExtra("signature") ?: "" val packageName = data.getStringExtra("package")?.let { "-$it" } ?: "" val id = data.getStringExtra("id") ?: "" if (id.isNotBlank()) { @@ -239,13 +241,11 @@ class ExternalSignerLauncher( fun openSigner( event: EventInterface, - columnName: String = "signature", onReady: (String) -> Unit, ) { getDataFromResolver( SignerType.SIGN_EVENT, arrayOf(event.toJson(), event.pubKey()), - columnName, ).fold( onFailure = { }, onSuccess = { @@ -267,13 +267,11 @@ class ExternalSignerLauncher( private fun getDataFromResolver( signerType: SignerType, data: Array, - columnName: String = "signature", - ): kotlin.Result = getDataFromResolver(signerType, data, columnName, contentResolver) + ): kotlin.Result = getDataFromResolver(signerType, data, contentResolver) private fun getDataFromResolver( signerType: SignerType, data: Array, - columnName: String = "signature", contentResolver: (() -> ContentResolver)? = null, ): kotlin.Result { val localData = @@ -301,9 +299,12 @@ class ExternalSignerLauncher( Log.d("getDataFromResolver", "Permission denied") return kotlin.Result.failure(Exception("Permission denied")) } - val index = it.getColumnIndex(columnName) + var index = it.getColumnIndex("result") if (index < 0) { - Log.d("getDataFromResolver", "column '$columnName' not found") + index = it.getColumnIndex("signature") + } + if (index < 0) { + Log.d("getDataFromResolver", "column 'signature' not found") return kotlin.Result.success(null) } return kotlin.Result.success(it.getString(index))