diff --git a/app/src/main/java/com/flowfoundation/wallet/manager/childaccount/ChildAccountList.kt b/app/src/main/java/com/flowfoundation/wallet/manager/childaccount/ChildAccountList.kt index db87c2e94..cbb9c63e4 100644 --- a/app/src/main/java/com/flowfoundation/wallet/manager/childaccount/ChildAccountList.kt +++ b/app/src/main/java/com/flowfoundation/wallet/manager/childaccount/ChildAccountList.kt @@ -34,8 +34,7 @@ class ChildAccountList( } else { localAccount.pinTime = System.currentTimeMillis() } - - cache().cache(ChildAccountCache().apply { addAll(accountList) }) + cache().cache(ArrayList(accountList)) } fun refresh() { @@ -45,7 +44,7 @@ class ChildAccountList( accounts.forEach { account -> account.pinTime = (oldAccounts.firstOrNull { it.address == account.address }?.pinTime ?: 0) } accountList.clear() accountList.addAll(accounts) - cache().cache(ChildAccountCache().apply { addAll(accountList) }) + cache().cache(ArrayList(accountList)) dispatchAccountUpdateListener(address, accountList.toList()) logd(TAG, "refresh: $address, ${accountList.size}") @@ -62,10 +61,11 @@ class ChildAccountList( return result?.encode()?.parseAccountMetas() } - private fun cache(): CacheManager { + private fun cache(): CacheManager> { + @Suppress("UNCHECKED_CAST") return CacheManager( "${address}.child_account_list".cacheFile(), - ChildAccountCache::class.java, + ArrayList::class.java as Class>, ) } @@ -101,5 +101,3 @@ data class ChildAccount( @SerializedName("description") val description: String? = null, ) : Parcelable - -private class ChildAccountCache : ArrayList() \ No newline at end of file diff --git a/app/src/main/java/com/flowfoundation/wallet/page/nft/move/MoveNFTDialog.kt b/app/src/main/java/com/flowfoundation/wallet/page/nft/move/MoveNFTDialog.kt index a16f5d9b3..48f7ef0bb 100644 --- a/app/src/main/java/com/flowfoundation/wallet/page/nft/move/MoveNFTDialog.kt +++ b/app/src/main/java/com/flowfoundation/wallet/page/nft/move/MoveNFTDialog.kt @@ -123,11 +123,11 @@ class MoveNFTDialog : BottomSheetDialogFragment() { addressList.add(0, evmAddress) needMoveFee = true layoutToAccount.setAccountInfo(evmAddress) - - } else { - val childAccount = WalletManager.childAccount(addressList[0]) ?: return@with - needMoveFee = false - layoutToAccount.setAccountInfo(childAccount.address) + } else if (addressList.isNotEmpty()) { + WalletManager.childAccount(addressList[0])?.let { child -> + needMoveFee = false + layoutToAccount.setAccountInfo(child.address) + } } configureToLayoutAction(addressList) } diff --git a/app/src/main/java/com/flowfoundation/wallet/page/send/transaction/subpage/amount/presenter/SendAmountPresenter.kt b/app/src/main/java/com/flowfoundation/wallet/page/send/transaction/subpage/amount/presenter/SendAmountPresenter.kt index a74ba7877..da162729f 100644 --- a/app/src/main/java/com/flowfoundation/wallet/page/send/transaction/subpage/amount/presenter/SendAmountPresenter.kt +++ b/app/src/main/java/com/flowfoundation/wallet/page/send/transaction/subpage/amount/presenter/SendAmountPresenter.kt @@ -258,8 +258,9 @@ class SendAmountPresenter( private fun getAmountConvert(): String { val amount = binding.transferAmountInput.text.ifBlank { "0" }.toString().toSafeDecimal() val rate = (balance()?.coinRate ?: BigDecimal.ZERO) * CurrencyManager.currencyDecimalPrice() - val convert = - if (viewModel.convertCoin() == selectedCurrency().flag) amount * rate else amount / rate + val convert = if (viewModel.convertCoin() == selectedCurrency().flag) amount * rate else { + if (rate <= BigDecimal.ZERO) BigDecimal.ZERO else amount / rate + } return convert.format() } diff --git a/gradle.properties b/gradle.properties index 5398cd776..73625f18c 100644 --- a/gradle.properties +++ b/gradle.properties @@ -23,5 +23,5 @@ android.injected.testOnly=false android.defaults.buildfeatures.buildconfig=true android.nonTransitiveRClass=false android.nonFinalResIds=false -vCode=271 -vName=r2.8.3 +vCode=275 +vName=r2.8.4