Skip to content

Commit

Permalink
Merge branch 'master' into mainnet
Browse files Browse the repository at this point in the history
  • Loading branch information
dpad85 committed Jul 19, 2024
2 parents 4a4130f + 76d6a1f commit 3202fac
Show file tree
Hide file tree
Showing 28 changed files with 190 additions and 144 deletions.
4 changes: 2 additions & 2 deletions phoenix-android/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,8 @@ android {
applicationId = "fr.acinq.phoenix.mainnet"
minSdk = 26
targetSdk = 34
versionCode = 85
versionName = "2.3.4"
versionCode = 86
versionName = gitCommitHash()
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
resourceConfigurations.addAll(listOf("en", "fr", "de", "es", "b+es+419", "cs", "pt-rBR", "sk", "vi"))
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -361,6 +361,8 @@ private fun ScanErrorView(
is Scan.BadRequestReason.InvalidLnurl -> stringResource(R.string.scan_error_lnurl_invalid)
is Scan.BadRequestReason.UnsupportedLnurl -> stringResource(R.string.scan_error_lnurl_unsupported)
is Scan.BadRequestReason.UnknownFormat -> stringResource(R.string.scan_error_invalid_generic)
is Scan.BadRequestReason.Bip353NameNotFound -> stringResource(id = R.string.scan_error_bip353_name_not_found, reason.username, reason.domain)
is Scan.BadRequestReason.Bip353InvalidUri -> stringResource(id = R.string.scan_error_bip353_invalid_uri)
is Scan.BadRequestReason.Bip353InvalidOffer -> stringResource(id = R.string.scan_error_bip353_invalid_offer)
is Scan.BadRequestReason.Bip353NoDNSSEC -> stringResource(id = R.string.scan_error_bip353_dnssec)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -152,7 +152,7 @@ fun MutualCloseView(
modifier = Modifier.fillMaxWidth(),
enabled = address.isNotBlank() && model.channels.isNotEmpty(),
onClick = {
when (val validation = Parser.readBitcoinAddress(chain, address)) {
when (val validation = Parser.parseBip21Uri(chain, address)) {
is Either.Left -> {
val error = validation.value
addressErrorMessage = when (error) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,13 +17,10 @@
package fr.acinq.phoenix.android.settings

import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.padding
import androidx.compose.material.MaterialTheme
import androidx.compose.material.Slider
import androidx.compose.material.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.collectAsState
Expand All @@ -34,7 +31,6 @@ import androidx.compose.runtime.saveable.rememberSaveable
import androidx.compose.runtime.setValue
import androidx.compose.ui.Modifier
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.dp
import fr.acinq.phoenix.android.R
import fr.acinq.phoenix.android.components.*
Expand All @@ -48,6 +44,8 @@ import fr.acinq.phoenix.android.utils.datastore.SwapAddressFormat
import fr.acinq.phoenix.data.lnurl.LnurlAuth
import kotlinx.coroutines.launch
import java.text.NumberFormat
import kotlin.time.Duration.Companion.days
import kotlin.time.Duration.Companion.hours

@Composable
fun PaymentSettingsView(
Expand All @@ -58,7 +56,6 @@ fun PaymentSettingsView(
val userPrefs = userPrefs

var showDescriptionDialog by rememberSaveable { mutableStateOf(false) }
var showExpiryDialog by rememberSaveable { mutableStateOf(false) }

val invoiceDefaultDesc by userPrefs.getInvoiceDefaultDesc.collectAsState(initial = "")
val invoiceDefaultExpiry by userPrefs.getInvoiceDefaultExpiry.collectAsState(null)
Expand All @@ -77,18 +74,7 @@ fun PaymentSettingsView(
description = invoiceDefaultDesc.ifEmpty { stringResource(id = R.string.paymentsettings_defaultdesc_none) },
onClick = { showDescriptionDialog = true }
)
Setting(
title = stringResource(id = R.string.paymentsettings_expiry_title),
description = when (invoiceDefaultExpiry) {
null -> stringResource(id = R.string.utils_unknown)
1 * 604800L -> stringResource(id = R.string.paymentsettings_expiry_one_week)
2 * 604800L -> stringResource(id = R.string.paymentsettings_expiry_two_weeks)
3 * 604800L -> stringResource(id = R.string.paymentsettings_expiry_three_weeks)
else -> stringResource(id = R.string.paymentsettings_expiry_value, NumberFormat.getInstance().format(invoiceDefaultExpiry))
},
onClick = { showExpiryDialog = true }
)

Bolt11ExpiryPreference()
val swapAddressFormat = swapAddressFormatState.value
if (swapAddressFormat != null) {
val schemes = listOf(
Expand Down Expand Up @@ -192,70 +178,42 @@ fun PaymentSettingsView(
}
)
}

if (showExpiryDialog) {
invoiceDefaultExpiry?.let {
DefaultExpiryInvoiceDialog(
expiry = it,
onDismiss = { showExpiryDialog = false },
onConfirm = {
scope.launch { userPrefs.saveInvoiceDefaultExpiry(it.toLong()) }
showExpiryDialog = false
}
)
}
}
}

@Composable
private fun DefaultExpiryInvoiceDialog(
expiry: (Long),
onDismiss: () -> Unit,
onConfirm: (Float) -> Unit,
) {
var paymentExpiry by rememberSaveable { mutableStateOf(expiry.toFloat()) }

Dialog(
onDismiss = onDismiss,
title = stringResource(id = R.string.paymentsettings_expiry_dialog_title),
buttons = {
Button(onClick = onDismiss, text = stringResource(id = R.string.btn_cancel))
Button(
onClick = { onConfirm(paymentExpiry) },
text = stringResource(id = R.string.btn_ok)
)
}
) {
Column(Modifier.padding(horizontal = 24.dp)) {
Text(text = stringResource(id = R.string.paymentsettings_expiry_dialog_description))
Spacer(Modifier.height(16.dp))
Slider(
value = paymentExpiry,
onValueChange = { paymentExpiry = it },
valueRange = 604800f..1814400f,
steps = 1,
)
Row {
Text(
text = stringResource(id = R.string.paymentsettings_expiry_one_week),
style = MaterialTheme.typography.caption,
textAlign = TextAlign.Start,
modifier = Modifier.weight(1f)
)
Text(
text = stringResource(id = R.string.paymentsettings_expiry_two_weeks),
style = MaterialTheme.typography.caption,
textAlign = TextAlign.Center,
modifier = Modifier.weight(1f)
)
Text(
text = stringResource(id = R.string.paymentsettings_expiry_three_weeks),
style = MaterialTheme.typography.caption,
textAlign = TextAlign.End,
modifier = Modifier.weight(1f)
)
private fun Bolt11ExpiryPreference() {
val scope = rememberCoroutineScope()
val userPrefs = userPrefs
val preferences = listOf(
PreferenceItem(item = 1.hours.inWholeSeconds, title = stringResource(id = R.string.paymentsettings_expiry_one_hour)),
PreferenceItem(item = 1.days.inWholeSeconds, title = stringResource(id = R.string.paymentsettings_expiry_one_day)),
PreferenceItem(item = 7.days.inWholeSeconds, title = stringResource(id = R.string.paymentsettings_expiry_one_week)),
PreferenceItem(item = 14.days.inWholeSeconds, title = stringResource(id = R.string.paymentsettings_expiry_two_weeks)),
PreferenceItem(item = 21.days.inWholeSeconds, title = stringResource(id = R.string.paymentsettings_expiry_three_weeks)),
)
val expiry = userPrefs.getInvoiceDefaultExpiry.collectAsState(initial = null)
expiry.value?.let { expiry ->
ListPreferenceButton(
title = stringResource(id = R.string.paymentsettings_expiry_title),
subtitle = {
Text(text = when (expiry) {
1.hours.inWholeSeconds -> stringResource(id = R.string.paymentsettings_expiry_one_hour)
1.days.inWholeSeconds -> stringResource(id = R.string.paymentsettings_expiry_one_day)
7.days.inWholeSeconds -> stringResource(id = R.string.paymentsettings_expiry_one_week)
14.days.inWholeSeconds -> stringResource(id = R.string.paymentsettings_expiry_two_weeks)
21.days.inWholeSeconds -> stringResource(id = R.string.paymentsettings_expiry_three_weeks)
else -> stringResource(id = R.string.paymentsettings_expiry_value, NumberFormat.getInstance().format(expiry))
})
},
selectedItem = expiry,
preferences = preferences,
enabled = true,
onPreferenceSubmit = {
scope.launch {
userPrefs.saveInvoiceDefaultExpiry(it.item)
}
}
}
)
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ class SwapInRefundViewModel(
log.error("error when estimating swap-in refund fees: ", e)
state = SwapInRefundState.Done.Failed.Error(e)
}) {
when (val parseAddress = Parser.readBitcoinAddress(NodeParamsManager.chain, address)) {
when (val parseAddress = Parser.parseBip21Uri(NodeParamsManager.chain, address)) {
is Either.Left -> {
log.debug("invalid refund address=$address (${parseAddress.value}")
state = SwapInRefundState.Done.Failed.InvalidAddress(address, parseAddress.value)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -166,6 +166,8 @@
<string name="scan_error_lnurl_invalid">Error al procesar este enlace LNURL. Comprueba que sea válido.</string>
<string name="scan_error_lnurl_unsupported">Este tipo de LNURL aún no es compatible.</string>
<string name="scan_error_invalid_generic">Estos datos usan un formato desconocido por lo que no se pueden procesar.</string>
<string name="scan_error_bip353_name_not_found">El nombre \"%1$s\" no se encuentra en \"%2$s\".</string>
<string name="scan_error_bip353_invalid_uri">Esta dirección utiliza un recurso Bip21 no válido.</string>
<string name="scan_error_bip353_invalid_offer">Esta dirección utiliza una oferta Bolt12 no válida.</string>
<string name="scan_error_bip353_dnssec">Esta dirección está alojada en un DNS no seguro. DNSSEC debe estar habilitado.</string>

Expand Down
4 changes: 3 additions & 1 deletion phoenix-android/src/main/res/values-b+es+419/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -597,7 +597,9 @@
<string name="paymentsettings_expiry_title">Vencimiento de la factura</string>
<string name="paymentsettings_expiry_dialog_title">Vencimiento de la factura</string>
<string name="paymentsettings_expiry_dialog_description">Las facturas que crees caducan después de este plazo. El valor predeterminado es 1 semana.</string>
<string name="paymentsettings_expiry_one_week">1 semana</string>
<string name="paymentsettings_expiry_one_hour">1 hora</string>
<string name="paymentsettings_expiry_one_day">1 día</string>
<string name="paymentsettings_expiry_one_week">1 semana (por defecto)</string>
<string name="paymentsettings_expiry_two_weeks">2 semanas</string>
<string name="paymentsettings_expiry_three_weeks">3 semanas</string>
<string name="paymentsettings_expiry_value">%1$s segundos</string>
Expand Down
2 changes: 2 additions & 0 deletions phoenix-android/src/main/res/values-cs/important_strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -162,6 +162,8 @@
<string name="scan_error_lnurl_invalid">Tento LNURL odkaz se nepodařilo zpracovat. Ujistěte se, že je platný.</string>
<string name="scan_error_lnurl_unsupported">Tento typ LNURL zatím není podporován.</string>
<string name="scan_error_invalid_generic">Tato data používají neznámý formát a nelze je zpracovat.</string>
<string name="scan_error_bip353_name_not_found">Název \"%1$s\" nebyl nalezen na \"%2$s\".</string>
<string name="scan_error_bip353_invalid_uri">Tato adresa používá neplatný zdroj Bip21.</string>
<string name="scan_error_bip353_invalid_offer">Tato adresa používá neplatnou nabídku Bolt12.</string>
<string name="scan_error_bip353_dnssec">Tato adresa je hostována na nezabezpečeném DNS. DNSSEC musí být povolen.</string>

Expand Down
4 changes: 3 additions & 1 deletion phoenix-android/src/main/res/values-cs/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -604,7 +604,9 @@
<string name="paymentsettings_expiry_title">Platnost faktury</string>
<string name="paymentsettings_expiry_dialog_title">Platnost faktury</string>
<string name="paymentsettings_expiry_dialog_description">Vytvořené faktury jsou po této prodlevě neaktuální. Výchozí hodnota je 1 týden.</string>
<string name="paymentsettings_expiry_one_week">1 týden</string>
<string name="paymentsettings_expiry_one_hour">1 hodina</string>
<string name="paymentsettings_expiry_one_day">1 den</string>
<string name="paymentsettings_expiry_one_week">1 týden (výchozí)</string>
<string name="paymentsettings_expiry_two_weeks">2 týdny</string>
<string name="paymentsettings_expiry_three_weeks">3 týdny</string>
<string name="paymentsettings_expiry_value">%1$s sekund</string>
Expand Down
2 changes: 2 additions & 0 deletions phoenix-android/src/main/res/values-de/important_strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -165,6 +165,8 @@
<string name="scan_error_lnurl_invalid">Dieser LNURL-Link konnte nicht verarbeitet werden. Stellen Sie sicher, dass er gültig ist.</string>
<string name="scan_error_lnurl_unsupported">Dieser LNURL-Typ wird noch nicht unterstützt.</string>
<string name="scan_error_invalid_generic">Diese Daten haben ein unbekanntes Format und können nicht verarbeitet werden.</string>
<string name="scan_error_bip353_name_not_found">Name \"%1$s\" wird auf \"%2$s\" nicht gefunden.</string>
<string name="scan_error_bip353_invalid_uri">Diese Adresse verwendet eine ungültige Bip21 Ressource.</string>
<string name="scan_error_bip353_invalid_offer">Diese Adresse verwendet ein ungültiges Bolt12-Angebot.</string>
<string name="scan_error_bip353_dnssec">Diese Adresse wird über einen unsicheren DNS gehostet. DNSSEC muss aktiviert sein.</string>

Expand Down
4 changes: 3 additions & 1 deletion phoenix-android/src/main/res/values-de/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -612,7 +612,9 @@
<string name="paymentsettings_expiry_title">Verfallsfrist von Rechnungen</string>
<string name="paymentsettings_expiry_dialog_title">Verfallsfrist von Rechnungen</string>
<string name="paymentsettings_expiry_dialog_description">Rechnungen, die Sie erstellen, sind nach dieser Frist ungültig. Standardwert ist 1 Woche.</string>
<string name="paymentsettings_expiry_one_week">1 Woche</string>
<string name="paymentsettings_expiry_one_hour">1 Stunde</string>
<string name="paymentsettings_expiry_one_day">1 Tag</string>
<string name="paymentsettings_expiry_one_week">1 Woche (Standard)</string>
<string name="paymentsettings_expiry_two_weeks">2 Wochen</string>
<string name="paymentsettings_expiry_three_weeks">3 Wochen</string>
<string name="paymentsettings_expiry_value">%1$s Sekunden</string>
Expand Down
2 changes: 2 additions & 0 deletions phoenix-android/src/main/res/values-es/important_strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -169,6 +169,8 @@
<string name="scan_error_lnurl_invalid">No se ha podido procesar este enlace LNURL. Asegúrese de que es válido.</string>
<string name="scan_error_lnurl_unsupported">Este tipo de LNURL aún no se admite.</string>
<string name="scan_error_invalid_generic">Estos datos utilizan un formato desconocido y no pueden ser procesados.</string>
<string name="scan_error_bip353_name_not_found">El nombre \"%1$s\" no se encuentra en \"%2$s\".</string>
<string name="scan_error_bip353_invalid_uri">Esta dirección utiliza un recurso Bip21 no válido.</string>
<string name="scan_error_bip353_invalid_offer">Esta dirección utiliza una oferta Bolt12 no válida.</string>
<string name="scan_error_bip353_dnssec">Esta dirección está alojada en un DNS no seguro. DNSSEC debe estar habilitado.</string>

Expand Down
2 changes: 2 additions & 0 deletions phoenix-android/src/main/res/values-fr/important_strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -169,6 +169,8 @@
<string name="scan_error_lnurl_invalid">Ce lien LNURL n\'a pas pu être traité. Assurez-vous qu\'il soit valide.</string>
<string name="scan_error_lnurl_unsupported">Ce type de lien LNURL n\'est pas supporté.</string>
<string name="scan_error_invalid_generic">Ce contenu est mal formatté ou bien n\'est pas géré par Phoenix.</string>
<string name="scan_error_bip353_name_not_found">Le nom \"%1$s\" est introuvable sur \"%2$s\"</string>
<string name="scan_error_bip353_invalid_uri">Cette adresse utilise une ressource Bip21 non valide.</string>
<string name="scan_error_bip353_invalid_offer">Cette adresse utilise une offre Bolt12 invalide.</string>
<string name="scan_error_bip353_dnssec">Cette adresse est hébergée sur un DNS non sécurisé. DNSSEC doit être activé.</string>

Expand Down
10 changes: 6 additions & 4 deletions phoenix-android/src/main/res/values-fr/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -627,10 +627,12 @@
<string name="paymentsettings_expiry_title">Expiration des requêtes de paiement</string>
<string name="paymentsettings_expiry_dialog_title">Expiration des requêtes</string>
<string name="paymentsettings_expiry_dialog_description">Vos requêtes de paiements seront inactives une fois ce délai passé. Par défaut, 1 semaine.</string>
<string name="paymentsettings_expiry_one_week">1 week</string>
<string name="paymentsettings_expiry_two_weeks">2 weeks</string>
<string name="paymentsettings_expiry_three_weeks">3 weeks</string>
<string name="paymentsettings_expiry_value">%1$s seconds</string>
<string name="paymentsettings_expiry_one_hour">1 heure</string>
<string name="paymentsettings_expiry_one_day">1 jour</string>
<string name="paymentsettings_expiry_one_week">1 semaine (défaut)</string>
<string name="paymentsettings_expiry_two_weeks">2 semaines</string>
<string name="paymentsettings_expiry_three_weeks">3 semaines</string>
<string name="paymentsettings_expiry_value">%1$s secondes</string>

<string name="paymentsettings_lnurlauth_scheme_title">Schéma d\'authentification LNURL</string>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -167,6 +167,8 @@
<string name="scan_error_lnurl_invalid">Falha ao processar esse link LNURL. Verifique se ele é válido.</string>
<string name="scan_error_lnurl_unsupported">Este tipo de LNURL ainda não é suportado.</string>
<string name="scan_error_invalid_generic">Esses dados usam um formato desconhecido e não podem ser processados.</string>
<string name="scan_error_bip353_name_not_found">O nome \"%1$s\" não foi encontrado em \"%2$s\".</string>
<string name="scan_error_bip353_invalid_uri">Este endereço usa um recurso Bip21 inválido.</string>
<string name="scan_error_bip353_invalid_offer">Este endereço usa uma oferta Bolt12 inválida.</string>
<string name="scan_error_bip353_dnssec">Este endereço está hospedado em um DNS não seguro. O DNSSEC deve estar ativado.</string>

Expand Down
2 changes: 2 additions & 0 deletions phoenix-android/src/main/res/values-sk/important_strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -168,6 +168,8 @@
<string name="scan_error_lnurl_invalid">Tento LNURL odkaz sa nepodarilo spracovať. Uistite sa, že je platný.</string>
<string name="scan_error_lnurl_unsupported">Tento typ LNURL zatiaľ nie je podporovaný.</string>
<string name="scan_error_invalid_generic">Tieto údaje používajú neznámy formát a nemožno ich spracovať.</string>
<string name="scan_error_bip353_name_not_found">Názov \"%1$s\" sa nenašiel na \"%2$s\".</string>
<string name="scan_error_bip353_invalid_uri">Táto adresa používa neplatný zdroj Bip21.</string>
<string name="scan_error_bip353_invalid_offer">Táto adresa používa neplatnú ponuku Bolt12.</string>
<string name="scan_error_bip353_dnssec">Táto adresa je umiestnená na nezabezpečenom DNS. DNSSEC musí byť povolený.</string>

Expand Down
Loading

0 comments on commit 3202fac

Please sign in to comment.