Skip to content

Commit

Permalink
(android) Fix editing contact from incoming offer screen
Browse files Browse the repository at this point in the history
  • Loading branch information
dpad85 committed Jul 2, 2024
1 parent 78a2942 commit 9adab28
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 19 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,6 @@ import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import fr.acinq.bitcoin.byteVector
import fr.acinq.lightning.wire.OfferTypes
import fr.acinq.phoenix.android.R
import fr.acinq.phoenix.android.Screen
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ import fr.acinq.phoenix.android.components.SplashClickableContent
import fr.acinq.phoenix.android.utils.mutedTextColor
import fr.acinq.phoenix.data.ContactInfo

private sealed class OfferContactState {
sealed class OfferContactState {
data object Init: OfferContactState()
data class Found(val contact: ContactInfo): OfferContactState()
data object NotFound: OfferContactState()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@ import androidx.compose.foundation.Image
import androidx.compose.foundation.layout.*
import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.shape.CircleShape
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.foundation.text.selection.SelectionContainer
import androidx.compose.foundation.verticalScroll
import androidx.compose.material.MaterialTheme
Expand Down Expand Up @@ -63,11 +62,11 @@ import fr.acinq.phoenix.android.business
import fr.acinq.phoenix.android.components.*
import fr.acinq.phoenix.android.components.contact.ContactCompactView
import fr.acinq.phoenix.android.components.contact.ContactOrOfferView
import fr.acinq.phoenix.android.components.contact.OfferContactState
import fr.acinq.phoenix.android.payments.cpfp.CpfpView
import fr.acinq.phoenix.android.utils.*
import fr.acinq.phoenix.android.utils.Converter.toPrettyString
import fr.acinq.phoenix.android.utils.Converter.toRelativeDateString
import fr.acinq.phoenix.data.ContactInfo
import fr.acinq.phoenix.data.LnurlPayMetadata
import fr.acinq.phoenix.data.WalletPaymentId
import fr.acinq.phoenix.data.WalletPaymentInfo
Expand Down Expand Up @@ -129,7 +128,7 @@ fun PaymentDetailsSplashView(
OfferPayerNote(payerNote = it)
Spacer(modifier = Modifier.height(8.dp))
}
OfferPayerContact(payerPubkey = meta.payerKey)
OfferSentBy(payerPubkey = meta.payerKey)
}

PaymentDescriptionView(data = data, onMetadataDescriptionUpdate = onMetadataDescriptionUpdate)
Expand Down Expand Up @@ -450,29 +449,28 @@ private fun OfferPayerNote(payerNote: String) {
}

@Composable
private fun OfferPayerContact(payerPubkey: PublicKey?) {
private fun OfferSentBy(payerPubkey: PublicKey?) {
val contactsManager = business.contactsManager
val contactForOffer = produceState<Either<Unit, ContactInfo>?>(initialValue = null, producer = {
value = payerPubkey?.let {
contactsManager.getContactForPayerPubkey(it)?.let {
Either.Right(it)
} ?: Either.Left(Unit)
} ?: Either.Left(Unit)
})
val contactState = remember { mutableStateOf<OfferContactState>(OfferContactState.Init) }
LaunchedEffect(Unit) {
contactState.value = payerPubkey?.let {
contactsManager.getContactForPayerPubkey(it)
}?.let { OfferContactState.Found(it) } ?: OfferContactState.NotFound
}

SplashLabelRow(label = stringResource(id = R.string.paymentdetails_offer_sender_label)) {
when (val contact = contactForOffer.value) {
null -> Text(text = stringResource(id = R.string.utils_loading_data))
is Either.Left -> {
when (val res = contactState.value) {
is OfferContactState.Init -> Text(text = stringResource(id = R.string.utils_loading_data))
is OfferContactState.NotFound -> {
Text(text = stringResource(id = R.string.paymentdetails_offer_sender_unknown))
Spacer(modifier = Modifier.height(4.dp))
Text(text = stringResource(id = R.string.paymentdetails_offer_sender_unknown_details), style = MaterialTheme.typography.subtitle2)
}
is Either.Right -> {
is OfferContactState.Found -> {
ContactCompactView(
contact = contact.value,
contact = res.contact,
currentOffer = null,
onContactChange = {},
onContactChange = { contactState.value = if (it == null) OfferContactState.NotFound else OfferContactState.Found(it) },
)
}
}
Expand Down

0 comments on commit 9adab28

Please sign in to comment.