diff --git a/CHANGELOG.md b/CHANGELOG.md index a673a9c01..eb2b65070 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -24,6 +24,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Mnemonic warning text transitions on reveal #857 ### Changed +- Updated design of the success screen in the manual channel setup flow #883 - Unified send flow with payment method switcher, details toggle, Lightning support for BIP21 payments, and improved fee rate defaults #863 - Settings redesigned with tabbed navigation (General/Security/Advanced) with swipe support #857 - Icons added to all settings rows for faster scanning #857 diff --git a/app/src/main/java/to/bitkit/ui/components/Button.kt b/app/src/main/java/to/bitkit/ui/components/Button.kt index dc91fb4f8..6887ed3a3 100644 --- a/app/src/main/java/to/bitkit/ui/components/Button.kt +++ b/app/src/main/java/to/bitkit/ui/components/Button.kt @@ -9,7 +9,6 @@ import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.layout.Row -import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.requiredHeight @@ -83,6 +82,7 @@ enum class ButtonSize { Small -> 8.dp Large -> 6.dp } + fun secondaryBorder(enabled: Boolean): BorderStroke = when (this) { Large -> BorderStroke(2.dp, if (enabled) Colors.Gray4 else Color.Transparent) Small -> BorderStroke(1.dp, if (enabled) Colors.White16 else Color.Transparent) @@ -183,6 +183,7 @@ fun SecondaryButton( // and AFTER size modifiers (Haze needs to know dimensions) val buttonShape = MaterialTheme.shapes.extraLarge Box( + propagateMinConstraints = true, modifier = modifier .then(if (fullWidth) Modifier.fillMaxWidth() else Modifier) .requiredHeight(size.height) @@ -208,7 +209,6 @@ fun SecondaryButton( colors = AppButtonDefaults.secondaryColors.copy(contentColor = contentColor), contentPadding = contentPadding, border = border, - modifier = if (fullWidth) Modifier.fillMaxSize() else Modifier, ) { if (isLoading) { GradientCircularProgressIndicator( @@ -488,6 +488,25 @@ private fun SecondaryButtonPreview() { ) }, ) + Row( + modifier = Modifier.fillMaxWidth(), + horizontalArrangement = Arrangement.spacedBy(8.dp) + ) { + SecondaryButton( + text = "Secondary", + fullWidth = false, + hazeState = hazeState, + onClick = {}, + modifier = Modifier.weight(1f) + ) + SecondaryButton( + text = "Secondary", + fullWidth = false, + hazeState = hazeState, + onClick = {}, + modifier = Modifier.weight(1f) + ) + } SecondaryButton( text = "Secondary Small", size = ButtonSize.Small, @@ -588,6 +607,23 @@ private fun TertiaryButtonPreview() { }, onClick = {} ) + Row( + modifier = Modifier.fillMaxWidth(), + horizontalArrangement = Arrangement.spacedBy(8.dp) + ) { + TertiaryButton( + text = "Tertiary", + fullWidth = false, + onClick = {}, + modifier = Modifier.weight(1f) + ) + TertiaryButton( + text = "Tertiary", + fullWidth = false, + onClick = {}, + modifier = Modifier.weight(1f) + ) + } TertiaryButton( text = "Tertiary Small", size = ButtonSize.Small, diff --git a/app/src/main/java/to/bitkit/ui/screens/transfer/external/ExternalSuccessScreen.kt b/app/src/main/java/to/bitkit/ui/screens/transfer/external/ExternalSuccessScreen.kt index 413e5abe0..a80182084 100644 --- a/app/src/main/java/to/bitkit/ui/screens/transfer/external/ExternalSuccessScreen.kt +++ b/app/src/main/java/to/bitkit/ui/screens/transfer/external/ExternalSuccessScreen.kt @@ -17,10 +17,10 @@ fun ExternalSuccessScreen( onContinue: () -> Unit, ) { InfoScreenContent( - navTitle = stringResource(R.string.lightning__external__nav_title), + navTitle = stringResource(R.string.lightning__external_success__nav_title), title = stringResource(R.string.lightning__external_success__title).withAccent(accentColor = Colors.Purple), description = stringResource(R.string.lightning__external_success__text).withAccentBoldBright(), - image = painterResource(R.drawable.switch_box), + image = painterResource(R.drawable.lightning), buttonText = localizedRandom(R.string.common__ok_random), onButtonClick = onContinue, testTag = "ExternalSuccess", diff --git a/app/src/main/java/to/bitkit/ui/screens/wallets/SpendingWalletScreen.kt b/app/src/main/java/to/bitkit/ui/screens/wallets/SpendingWalletScreen.kt index 364abb8cf..48de07762 100644 --- a/app/src/main/java/to/bitkit/ui/screens/wallets/SpendingWalletScreen.kt +++ b/app/src/main/java/to/bitkit/ui/screens/wallets/SpendingWalletScreen.kt @@ -4,12 +4,10 @@ import androidx.compose.foundation.Image import androidx.compose.foundation.background import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.WindowInsets import androidx.compose.foundation.layout.WindowInsetsSides import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.offset import androidx.compose.foundation.layout.only import androidx.compose.foundation.layout.padding @@ -45,6 +43,7 @@ import to.bitkit.ui.components.EmptyStateView import to.bitkit.ui.components.IncomingTransfer import to.bitkit.ui.components.SecondaryButton import to.bitkit.ui.components.TabBar +import to.bitkit.ui.components.VerticalSpacer import to.bitkit.ui.scaffold.AppTopBar import to.bitkit.ui.scaffold.DrawerNavIcon import to.bitkit.ui.scaffold.ScreenColumn @@ -130,7 +129,7 @@ fun SpendingWalletScreen( } if (!showEmptyState) { - Spacer(modifier = Modifier.height(32.dp)) + VerticalSpacer(32.dp) if (canTransfer) { SecondaryButton( @@ -160,8 +159,7 @@ fun SpendingWalletScreen( } if (showEmptyState) { EmptyStateView( - text = stringResource(R.string.wallet__spending__onboarding) - .withAccent(accentColor = Colors.Purple), + text = stringResource(R.string.wallet__spending__onboarding).withAccent(accentColor = Colors.Purple), modifier = Modifier .systemBarsPadding() .align(Alignment.BottomCenter) diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml index 672450be0..4b6479444 100644 --- a/app/src/main/res/values-ar/strings.xml +++ b/app/src/main/res/values-ar/strings.xml @@ -130,8 +130,9 @@ مسح QR يمكنك استخدام عقدة خارجية لفتح اتصال Lightning يدويًا. أدخل تفاصيل العقدة للمتابعة. <accent>إعداد يدوي</accent> + رصيد الإنفاق بدأ اتصال Lightning. ستتمكن من استخدام رصيد الإنفاق خلال <accent>±30 دقيقة</accent> (يعتمد على إعدادات العقدة). - بدأ\n<accent>الاتصال</accent> + القناة\n<accent>قيد الفتح</accent> معدل الرسوم وقت تحديث ذاكرة التخزين المؤقت لمعدل الرسوم الرسوم diff --git a/app/src/main/res/values-b+es+419/strings.xml b/app/src/main/res/values-b+es+419/strings.xml index 67cb66c07..cb567c436 100644 --- a/app/src/main/res/values-b+es+419/strings.xml +++ b/app/src/main/res/values-b+es+419/strings.xml @@ -130,8 +130,9 @@ Escanear QR Puedes usar un nodo externo para abrir una conexión Lightning manualmente. Ingresa los datos del nodo para continuar. <accent>Config. manual</accent> + Saldo de gasto Conexión lightning iniciada. Podrá utilizar su saldo de gastos en <accent>±30 minutos</accent> (depende de la config. del nodo). - Conexión\n<accent>iniciada</accent> + Apertura\n<accent>de canal</accent> Tarifa Hora de actualización de caché de tarifa Tarifa diff --git a/app/src/main/res/values-ca/strings.xml b/app/src/main/res/values-ca/strings.xml index e3c83be4c..ed0011dce 100644 --- a/app/src/main/res/values-ca/strings.xml +++ b/app/src/main/res/values-ca/strings.xml @@ -130,8 +130,9 @@ Escaneja QR Pots utilitzar un node extern per obrir manualment una connexió Lightning. Introdueix els detalls del node per continuar. <accent>Configuració manual</accent> + Saldo de despesa Connexió Lightning iniciada. Podràs utilitzar el teu saldo de despesa en <accent>±30 minuts</accent> (depèn de la configuració del node). - Connexió\n<accent>iniciada</accent> + Obertura\n<accent>de canal</accent> Taxa de tarifa Temps d\'actualització de la memòria cau de tarifes Tarifes diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml index 606a15c4c..c0c1de500 100644 --- a/app/src/main/res/values-cs/strings.xml +++ b/app/src/main/res/values-cs/strings.xml @@ -130,8 +130,9 @@ Skenovat QR Můžete použít externí uzel k ručnímu otevření lightning připojení. Zadejte údaje o uzlu pro pokračování. <accent>Manuální nastavení</accent> + Zůstatek k utracení Iniciováno připojení lightning. Zůstatek na účtu budete moci použít do <accent>±30 minut</accent> (závisí na konfiguraci uzlu). - Připojení\n<accent>iniciováno</accent> + Otevírání\n<accent>kanálu</accent> Sazba poplatku Čas aktualizace mezipaměti poplatků Poplatky diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 86a43b716..5245e71a3 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -152,7 +152,8 @@ Paste Node URI QR-Code scannen Spending\n<accent>balance</accent> - Verbindung\n<accent>initiiert</accent> + Ausgabenguthaben + Kanal wird\n<accent>geöffnet</accent> Lightning-Verbindung initiiert. Du kannst dein Guthaben in <accent>±30 Minuten</accent> verwenden (abhängig von der Node-Konfiguration). Einrichtung der Instant-Zahlungen fehlgeschlagen Ein Fehler ist bei der Einrichtung deines Sofortguthabens aufgetreten. {raw} diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml index 279794cd3..b9f1b56eb 100644 --- a/app/src/main/res/values-el/strings.xml +++ b/app/src/main/res/values-el/strings.xml @@ -130,8 +130,9 @@ Σάρωση QR Μπορείς να χρησιμοποιήσεις έναν εξωτερικό κόμβο για να ανοίξεις χειροκίνητα μια σύνδεση Lightning. Εισάγαγε τα στοιχεία του κόμβου για να συνεχίσεις. <accent>Χειροκίνητη ρύθμιση</accent> + Υπόλοιπο δαπανών Η σύνδεση Lightning ξεκίνησε. Θα μπορείς να χρησιμοποιήσεις το υπόλοιπο δαπανών σε <accent>±30 λεπτά</accent> (εξαρτάται από τη διαμόρφωση του κόμβου). - Η σύνδεση\n<accent>ξεκίνησε</accent> + Άνοιγμα\n<accent>καναλιού</accent> Ποσοστό τέλους Χρόνος ενημέρωσης cache τελών Τέλη diff --git a/app/src/main/res/values-es-rES/strings.xml b/app/src/main/res/values-es-rES/strings.xml index 699eefd9f..db0f2f873 100644 --- a/app/src/main/res/values-es-rES/strings.xml +++ b/app/src/main/res/values-es-rES/strings.xml @@ -130,8 +130,9 @@ Escanear QR Puedes usar un nodo externo para abrir manualmente una conexión Lightning. Introduce los datos del nodo para continuar. <accent>Configuración manual</accent> + Saldo de gasto Conexión Lightning iniciada. Podrá usar su balance para pagar en <accent>±30 minutos</accent> (depende de la configuración del nodo). - Conexión\n<accent>iniciada</accent> + Apertura\n<accent>de canal</accent> Tasa de comisión Hora de actualización de caché de tasas Comisiones diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index f60beef35..7c720ddfe 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -109,7 +109,9 @@ Pegar URI del nodo Puedes usar un nodo externo para abrir manualmente una conexión Lightning. Introduce los datos del nodo para continuar. <accent>Configuración manual</accent> - Conexión\n<accent>iniciada</accent> + Saldo de gasto + Conexión Lightning iniciada. Podrá usar su balance para pagar en <accent>±30 minutos</accent> (depende de la configuración del nodo). + Apertura\n<accent>de canal</accent> Tasa de comisión Hora de actualización de caché de comisiones Comisiones @@ -201,7 +203,6 @@ Servidor Puerto Escanear QR - Conexión Lightning iniciada. Podrá usar su balance para pagar en <accent>±30 minutos</accent> (depende de la configuración del nodo). Error en la Configuración de Pago Instántaneo Gasto Ahorro diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index a23a42aa2..331705090 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -152,7 +152,8 @@ Coller l\'URI du nœud Scanner QR Dépenses \n<accent>solde</accent> - Connexion \n<accent>initiée</accent> + Solde de dépenses + Ouverture\n<accent>du canal</accent> La connexion Lightning est initiée. Vous pourrez utiliser votre compte courant dans <accent>±30 minutes</accent> (en fonction de la configuration du nœud). Échec de la configuration des paiements instantanés Une erreur s\'est produite lors de l\'établissement de votre solde du compte courant. {raw} diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index e011944dd..138677d37 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -130,8 +130,9 @@ Scansiona QR Puoi usare un nodo esterno per aprire manualmente una connessione Lightning. Inserisci i dettagli del nodo per continuare. <accent>Configurazione manuale</accent> + Saldo di spesa Connessione Lightning avviata. Potrai utilizzare il tuo conto di spesa in <accent>±30 minuti</accent> (dipende dalla configurazione del nodo). - Connessione\n<accent>avviata</accent> + Apertura\n<accent>del canale</accent> Tasso di commissione Tempo di Aggiornamento Cache Commissioni Commissioni diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index 3ce47fcd0..e6eab40d5 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -130,8 +130,9 @@ QR scannen Je kunt een externe node gebruiken om handmatig een Lightning-verbinding te openen. Voer de node-gegevens in om door te gaan. <accent>Handmatige configuratie</accent> + Uitgavenbalans Lightning-verbinding gestart. Je kunt je bestedingssaldo gebruiken in <accent>±30 minuten</accent> (afhankelijk van node-configuratie). - Verbinding\n<accent>gestart</accent> + Kanaal wordt\n<accent>geopend</accent> Vergoedingstarief Vergoedingstarief cache update tijd Vergoedingen diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index 408035dc8..981a987e5 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -152,7 +152,8 @@ Wklej adres URI węzła Skanuj QR Saldo\n<accent>wydatków</accent> - Połączenie\n<accent>zainicjowane</accent> + Saldo wydatków + Otwieranie\n<accent>kanału</accent> Połączenie Lightning zostało zainicjowane. Będą Państwo mogli wykorzystać swoje saldo wydatków w ciągu <accent>±30 minut</accent> (w zależności od konfiguracji węzła). Konfiguracja płatności natychmiastowych nie powiodła się Wystąpił błąd podczas konfigurowania salda natychmiastowego. {raw} diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index 2bce55e6a..70d54f3c3 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -130,8 +130,9 @@ Escanear QR Você pode usar um nó externo para abrir manualmente uma conexão Lightning. Digite os detalhes do nó para continuar. <accent>Setup manual</accent> + Saldo de gastos Conexão Lightning iniciada. Você poderá usar seu saldo de gastos em <accent>±30 minutos</accent> (depende da configuração do nó). - Conexão\n<accent>iniciada</accent> + Abertura\n<accent>de canal</accent> Taxa por bytes Atualização do Cache de Taxa Taxas diff --git a/app/src/main/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml index 49f87acfa..9f5f33101 100644 --- a/app/src/main/res/values-pt/strings.xml +++ b/app/src/main/res/values-pt/strings.xml @@ -152,7 +152,8 @@ Colar URI do nó Escanear QR Saldo de\n<accent>gastos</accent> - Conexão\n<accent>iniciada</accent> + Saldo de gastos + Abertura\n<accent>de canal</accent> Conexão Lightning iniciada. Você poderá usar seu saldo de gastos em <accent>±30 minutos</accent> (depende da configuração do nó). Setup dos Pagamentos Instantâneos falhou Ocorreu um erro ao configurar seu saldo de gastos. {raw} diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 8f60f3eea..defdfeb94 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -138,8 +138,9 @@ Сканировать QR Вы можете использовать внешний узел для ручного открытия Lightning соединения. Введите данные узла, чтобы продолжить. <accent>Ручная Настройка</accent> + Баланс расходов Lightning соединение инициировано. Вы сможете использовать ваш баланс расходов через <accent>±30 минут</accent> (зависит от конфигурации узла). - Соединение\n<accent>Инициировано</accent> + Открытие\n<accent>канала</accent> Ставка Комиссии Время обновления кэша комиссии Комиссии diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 94462606a..09ca48e7c 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -140,8 +140,9 @@ Scan QR You can use an external node to manually open a Lightning connection. Enter the node details to continue. <accent>Manual setup</accent> + Spending Balance Lightning connection initiated. You will be able to use your spending balance in <accent>±30 minutes</accent> (depends on node configuration). - Connection\n<accent>initiated</accent> + Channel\n<accent>opening</accent> Fee rate Fee Rate Cache Update Time Fees