diff --git a/android/CHANGELOG.md b/android/CHANGELOG.md index 93858282..1acf7d51 100644 --- a/android/CHANGELOG.md +++ b/android/CHANGELOG.md @@ -6,7 +6,12 @@ follow [https://changelog.md/](https://changelog.md/) guidelines. ## [Unreleased] -### FIXED +## [51.3] - 2023-11-09 + +### CHANGED + +- Handling of High Fees situation. Improved copy for home and receive banners and +disable LN QRs of payments that will surely fail with a better message. ## [51.2] - 2023-10-24 diff --git a/android/apolloui/build.gradle b/android/apolloui/build.gradle index a8274261..3a7380e0 100644 --- a/android/apolloui/build.gradle +++ b/android/apolloui/build.gradle @@ -87,8 +87,8 @@ android { applicationId "io.muun.apollo" minSdkVersion 19 targetSdkVersion 33 - versionCode 1102 - versionName "51.2" + versionCode 1103 + versionName "51.3" // Needed to make sure these classes are available in the main DEX file for API 19 // See: https://spin.atomicobject.com/2018/07/16/support-kitkat-multidex/ diff --git a/android/apolloui/src/main/java/io/muun/apollo/presentation/ui/show_qr/ln/LnInvoiceQrFragment.kt b/android/apolloui/src/main/java/io/muun/apollo/presentation/ui/show_qr/ln/LnInvoiceQrFragment.kt index 92fcb66c..47cc3470 100644 --- a/android/apolloui/src/main/java/io/muun/apollo/presentation/ui/show_qr/ln/LnInvoiceQrFragment.kt +++ b/android/apolloui/src/main/java/io/muun/apollo/presentation/ui/show_qr/ln/LnInvoiceQrFragment.kt @@ -59,9 +59,6 @@ class LnInvoiceQrFragment : QrFragment(), LnInvoiceView { @BindView(R.id.high_fees_warning_overlay) lateinit var highFeesOverlay: View - @BindView(R.id.high_fees_continue_button) - lateinit var highFeesContinueButton: View - // State: // Part of our (ugly) hack to allow SATs as an input currency option @@ -73,10 +70,6 @@ class LnInvoiceQrFragment : QrFragment(), LnInvoiceView { @JvmField var highFees = false - @State - @JvmField - var hasDismissedHighFeesWarning = false // Flag to decide when to stop showing high fees warning - private var countdownTimer: MuunCountdownTimer? = null override fun inject() { @@ -90,7 +83,6 @@ class LnInvoiceQrFragment : QrFragment(), LnInvoiceView { super.initializeUi(view) hiddenSection.setOnClickListener { presenter.toggleAdvancedSettings() } createOtherInvoice.setOnClickListener { onCreateInvoiceClick() } - highFeesContinueButton.setOnClickListener { onHighFeesContinueButtonClick() } if (OS.supportsNotificationRuntimePermission()) { notificationsPrimingView.setUpForLightning() @@ -254,11 +246,6 @@ class LnInvoiceQrFragment : QrFragment(), LnInvoiceView { invoiceSettingsContent.visibility = View.GONE } - private fun onHighFeesContinueButtonClick() { - hasDismissedHighFeesWarning = true - refresh() - } - private fun showInvoiceExpiredOverlay() { invoiceExpiredOverlay.visibility = View.VISIBLE qrOverlay.visibility = View.GONE @@ -273,7 +260,7 @@ class LnInvoiceQrFragment : QrFragment(), LnInvoiceView { } override fun refresh() { - if (highFees && !hasDismissedHighFeesWarning) { + if (highFees) { showHighFeesOverlay() } else { diff --git a/android/apolloui/src/main/java/io/muun/apollo/presentation/ui/show_qr/unified/ShowUnifiedQrFragment.kt b/android/apolloui/src/main/java/io/muun/apollo/presentation/ui/show_qr/unified/ShowUnifiedQrFragment.kt index d0659288..bca73578 100644 --- a/android/apolloui/src/main/java/io/muun/apollo/presentation/ui/show_qr/unified/ShowUnifiedQrFragment.kt +++ b/android/apolloui/src/main/java/io/muun/apollo/presentation/ui/show_qr/unified/ShowUnifiedQrFragment.kt @@ -65,9 +65,6 @@ class ShowUnifiedQrFragment : QrFragment(), ShowUnifiedQ @BindView(R.id.high_fees_warning_overlay) lateinit var highFeesOverlay: View - @BindView(R.id.high_fees_continue_button) - lateinit var highFeesContinueButton: View - // State: // Part of our (ugly) hack to allow SATs as an input currency option @@ -79,10 +76,6 @@ class ShowUnifiedQrFragment : QrFragment(), ShowUnifiedQ @JvmField var highFees = false - @State - @JvmField - var hasDismissedHighFeesWarning = false // Flag to decide when to stop showing high fees warning - private var countdownTimer: MuunCountdownTimer? = null override fun inject() { @@ -104,7 +97,6 @@ class ShowUnifiedQrFragment : QrFragment(), ShowUnifiedQ addressTypeItem.setOnAddressTypeChangedListener(this) hiddenSection.setOnClickListener { presenter.toggleAdvancedSettings() } createOtherInvoice.setOnClickListener { onCreateInvoiceClick() } - highFeesContinueButton.setOnClickListener { onHighFeesContinueButtonClick() } hiddenSection.setExpanded(false) @@ -242,11 +234,6 @@ class ShowUnifiedQrFragment : QrFragment(), ShowUnifiedQ uriSettingsContent.visibility = View.GONE } - private fun onHighFeesContinueButtonClick() { - hasDismissedHighFeesWarning = true - refresh() - } - private fun showInvoiceExpiredOverlay() { invoiceExpiredOverlay.visibility = View.VISIBLE qrOverlay.visibility = View.GONE @@ -304,7 +291,7 @@ class ShowUnifiedQrFragment : QrFragment(), ShowUnifiedQ } override fun refresh() { - if (highFees && !hasDismissedHighFeesWarning) { + if (highFees) { showHighFeesOverlay() } else { diff --git a/android/apolloui/src/main/res/layout/fragment_show_qr_ln.xml b/android/apolloui/src/main/res/layout/fragment_show_qr_ln.xml index 41136897..274a121b 100644 --- a/android/apolloui/src/main/res/layout/fragment_show_qr_ln.xml +++ b/android/apolloui/src/main/res/layout/fragment_show_qr_ln.xml @@ -84,13 +84,6 @@ android:textSize="16sp" android:gravity="center" /> - - diff --git a/android/apolloui/src/main/res/layout/fragment_show_qr_unified.xml b/android/apolloui/src/main/res/layout/fragment_show_qr_unified.xml index 0450b380..2c4c87df 100644 --- a/android/apolloui/src/main/res/layout/fragment_show_qr_unified.xml +++ b/android/apolloui/src/main/res/layout/fragment_show_qr_unified.xml @@ -75,7 +75,7 @@ - - diff --git a/android/apolloui/src/main/res/values-es/strings.xml b/android/apolloui/src/main/res/values-es/strings.xml index 9334bbb2..df41cc9c 100644 --- a/android/apolloui/src/main/res/values-es/strings.xml +++ b/android/apolloui/src/main/res/values-es/strings.xml @@ -1152,11 +1152,18 @@ Crear factura - Recibir pagos en lightning está temporalmente deshabilitado mientras actualizamos nuestra - infraestructura de pagos. + Tu monedero está temporalmente inhabilitado para recibir pagos a través de Lightning debido + a la alta congestión de la Red de Bitcoin. + \n\n + Para recibir un pago, por favor cambia a la pestaña de Bitcoin. + + + Tu monedero está temporalmente inhabilitado para recibir pagos a través de Lightning debido + a la alta congestión de la Red de Bitcoin. + \n\n + Para recibir un pago, por favor visita Ajustes > Lightning Network y configura a Bitcoin + como tu protocolo para recibir. - ENTENDIDO - Enviar a... @@ -1736,7 +1743,7 @@ - La red de bitcoin está a máxima capacidad, haciendo altas las comisiones. + La red de Bitcoin está congestionada. Los pagos están más lentos y costosos. High mempool size impacts diff --git a/android/apolloui/src/main/res/values/strings.xml b/android/apolloui/src/main/res/values/strings.xml index 1edffe53..f122dfb4 100644 --- a/android/apolloui/src/main/res/values/strings.xml +++ b/android/apolloui/src/main/res/values/strings.xml @@ -1113,9 +1113,18 @@ Create invoice - Receiving lightning payments is temporarily disabled while we upgrade our payment infrastructure. + Your wallet is temporarily unable to receive Lightning payments due to the high congestion + of the Bitcoin Network. + \n\n + To receive a payment, please switch to the Bitcoin tab. + + + Your wallet is temporarily unable to receive Lightning payments due to the high congestion + of the Bitcoin Network. + \n\n + To receive a payment, please visit Settings > Lightning Network and set Bitcoin as your + receiving protocol. - UNDERSTOOD Send to... @@ -1679,7 +1688,7 @@ - The bitcoin network is at top capacity, making fees high. + The Bitcoin Network is congested. Fees are high, and confirmation times are slow. High mempool size impacts