Trying to save from crashes on the signer

This commit is contained in:
Vitor Pamplona
2023-11-22 17:04:57 -05:00
parent 3666a0b980
commit 954330064d
@@ -166,37 +166,41 @@ class ExternalSignerLauncher(
} }
fun getDataFromResolver(signerType: SignerType, data: Array<out String>, columnName: String = "signature"): String? { fun getDataFromResolver(signerType: SignerType, data: Array<out String>, columnName: String = "signature"): String? {
return contentResolver?.let { it() }?.let { return getDataFromResolver(signerType, data, columnName, contentResolver)
getDataFromResolver(signerType, data, columnName, it)
}
} }
fun getDataFromResolver(signerType: SignerType, data: Array<out String>, columnName: String = "signature", contentResolver: ContentResolver): String? { fun getDataFromResolver(signerType: SignerType, data: Array<out String>, columnName: String = "signature", contentResolver: (() -> ContentResolver)? = null): String? {
val localData = if (signerType !== SignerType.GET_PUBLIC_KEY) { val localData = if (signerType !== SignerType.GET_PUBLIC_KEY) {
data.toList().plus(npub).toTypedArray() data.toList().plus(npub).toTypedArray()
} else { } else {
data data
} }
contentResolver.query( try {
Uri.parse("content://${signerPackageName}.$signerType"), contentResolver?.let { it() }?.query(
localData, Uri.parse("content://${signerPackageName}.$signerType"),
null, localData,
null, null,
null null,
).use { null
if (it == null) { ).use {
return null if (it == null) {
}
if (it.moveToFirst()) {
val index = it.getColumnIndex(columnName)
if (index < 0) {
Log.d("getDataFromResolver", "column '$columnName' not found")
return null return null
} }
return it.getString(index) if (it.moveToFirst()) {
val index = it.getColumnIndex(columnName)
if (index < 0) {
Log.d("getDataFromResolver", "column '$columnName' not found")
return null
}
return it.getString(index)
}
} }
} catch (e: Exception) {
Log.e("ExternalSignerLauncher", "Failed to query the Signer app in the background")
return null
} }
return null return null
} }