From 341994e505412c6c1106f5124b57ee3a5bd04520 Mon Sep 17 00:00:00 2001 From: davotoula Date: Mon, 6 Oct 2025 12:50:13 +0200 Subject: [PATCH] The putOrRemove(key: String, event: Any?) signature loses type information. When JsonMapper.toJson() tries to serialize, it sees Any? and can't find the serializer for Nip47URI, causing: SerializationException: Serializer for class 'Any' is not found --- .../java/com/vitorpamplona/amethyst/LocalPreferences.kt | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/LocalPreferences.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/LocalPreferences.kt index 8a48aca82..1ba92a1df 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/LocalPreferences.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/LocalPreferences.kt @@ -325,7 +325,13 @@ object LocalPreferences { PrefKeys.DEFAULT_DISCOVERY_FOLLOW_LIST, settings.defaultDiscoveryFollowList.value, ) - putOrRemove(PrefKeys.ZAP_PAYMENT_REQUEST_SERVER, settings.zapPaymentRequest.value?.denormalize()) + + val nwcToBeSaved = settings.zapPaymentRequest.value?.denormalize() + if (nwcToBeSaved != null) { + putString(PrefKeys.ZAP_PAYMENT_REQUEST_SERVER, JsonMapper.toJson(nwcToBeSaved)) + } else { + remove(PrefKeys.ZAP_PAYMENT_REQUEST_SERVER) + } putOrRemove(PrefKeys.LATEST_CONTACT_LIST, settings.backupContactList)