From 6bd42b61cc2a32e364880bd2db14aef12244be5e Mon Sep 17 00:00:00 2001 From: rasputin Date: Mon, 8 Jun 2026 17:07:20 +0200 Subject: [PATCH] feat: make PaymentRecord immutable and add keys to HistoryScreen --- .../main/java/com/bitcointxoko/gudariwallet/api/Models.kt | 5 +++++ .../bitcointxoko/gudariwallet/ui/history/HistoryScreen.kt | 5 +++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/bitcointxoko/gudariwallet/api/Models.kt b/app/src/main/java/com/bitcointxoko/gudariwallet/api/Models.kt index 7395a95..27d7921 100644 --- a/app/src/main/java/com/bitcointxoko/gudariwallet/api/Models.kt +++ b/app/src/main/java/com/bitcointxoko/gudariwallet/api/Models.kt @@ -1,5 +1,6 @@ package com.bitcointxoko.gudariwallet.api +import androidx.compose.runtime.Immutable import com.google.gson.TypeAdapter import com.google.gson.annotations.JsonAdapter import com.google.gson.annotations.SerializedName @@ -156,6 +157,7 @@ data class LnurlpLink( // ── Payment history ─────────────────────────────────────────────────────────── +@Immutable data class PaymentRecord( @SerializedName("payment_hash") val paymentHash: String, @SerializedName("checking_id") val checkingId: String, @@ -204,6 +206,8 @@ data class PaymentRecord( } } +@Immutable + data class PaymentExtra( @SerializedName("tag") val tag: String?, @JsonAdapter(FlexibleStringAdapter::class) @@ -214,6 +218,7 @@ data class PaymentExtra( @SerializedName("expires_at") val expiresAt: String? ) +@Immutable data class SuccessAction( @SerializedName("tag") val tag: String?, @SerializedName("message") val message: String?, diff --git a/app/src/main/java/com/bitcointxoko/gudariwallet/ui/history/HistoryScreen.kt b/app/src/main/java/com/bitcointxoko/gudariwallet/ui/history/HistoryScreen.kt index 97b7f1c..4f98e43 100644 --- a/app/src/main/java/com/bitcointxoko/gudariwallet/ui/history/HistoryScreen.kt +++ b/app/src/main/java/com/bitcointxoko/gudariwallet/ui/history/HistoryScreen.kt @@ -226,7 +226,8 @@ fun HistoryScreen( ) { items( items = s.payments, - key = { it.paymentHash } + key = { it.paymentHash }, + contentType = { "payment" } ) { payment -> PaymentRow( payment = payment, @@ -240,7 +241,7 @@ fun HistoryScreen( ) } if (s.canLoadMore) { - item { + item(contentType = "loader") { Box( modifier = Modifier .fillMaxWidth()