From c45793e689d225f89e12bbb902b1f79ebb057d4e Mon Sep 17 00:00:00 2001 From: acx Date: Sun, 13 Apr 2025 11:48:16 +0200 Subject: [PATCH] fix: prevent app from crashing when attempting to create a transaction before wallet is opened --- .../main/java/org/monfluo/wallet/SendActivity.kt | 15 ++++++++++++--- app/src/main/res/values/strings.xml | 1 + 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/org/monfluo/wallet/SendActivity.kt b/app/src/main/java/org/monfluo/wallet/SendActivity.kt index 1e25113..1602007 100644 --- a/app/src/main/java/org/monfluo/wallet/SendActivity.kt +++ b/app/src/main/java/org/monfluo/wallet/SendActivity.kt @@ -128,7 +128,16 @@ class SendActivity : MoneroActivity() { } sendMaxButton.setOnClickListener { viewModel.setSendingMax(!isSendAll) } createButton.setOnClickListener { - val outputsValid = checkDestsValidity(isSendAll) + val wallet = walletService?.getWallet() + if (wallet == null) { + Toast.makeText( + this, + getString(R.string.cannot_create_transaction_no_wallet), + Toast.LENGTH_SHORT + ).show() + return@setOnClickListener + } + val outputsValid = checkDestsValidity(wallet, isSendAll) if (outputsValid) { Toast.makeText(this, getString(R.string.creating_tx), Toast.LENGTH_SHORT).show() createButton.isEnabled = false @@ -237,7 +246,7 @@ class SendActivity : MoneroActivity() { sendTx(pendingTx) } - private fun checkDestsValidity(sendAll: Boolean): Boolean { + private fun checkDestsValidity(wallet: Wallet, sendAll: Boolean): Boolean { val dests = rawDests for (dest in dests) { val address = dest.component1() @@ -252,7 +261,7 @@ class SendActivity : MoneroActivity() { return false } val amountRaw = Wallet.getAmountFromString(amount) - val balance = walletService!!.getWalletOrThrow().unlockedBalance + val balance = wallet.unlockedBalance if (amountRaw >= balance || amountRaw <= 0) { Toast.makeText( this, diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 5638022..15a1406 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -62,6 +62,7 @@ Receive Creating transaction… Invalid destination combination + Cannot create transaction - wallet is not opened yet Sending transaction… Sent transaction! No camera permission