From 18452adff67e09d170b7f1a8931902c0cb58789c Mon Sep 17 00:00:00 2001 From: skypank Date: Tue, 14 Jul 2026 09:54:37 +0530 Subject: [PATCH] Display network type below balance on home screen The label under the balance was hardcoded to BITCOIN. Thread the wallet's network through WalletScreenState and render it (SIGNET BITCOIN, REGTEST BITCOIN, etc.) so it's clear which network the wallet is on. Closes #59 --- .../ui/screens/wallet/WalletHomeScreen.kt | 12 +++++++++++- .../presentation/viewmodels/WalletViewModel.kt | 2 +- .../presentation/viewmodels/mvi/MviWalletScreen.kt | 2 ++ 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/org/bitcoindevkit/devkitwallet/presentation/ui/screens/wallet/WalletHomeScreen.kt b/src/org/bitcoindevkit/devkitwallet/presentation/ui/screens/wallet/WalletHomeScreen.kt index b1aeb2f..0995a7a 100644 --- a/src/org/bitcoindevkit/devkitwallet/presentation/ui/screens/wallet/WalletHomeScreen.kt +++ b/src/org/bitcoindevkit/devkitwallet/presentation/ui/screens/wallet/WalletHomeScreen.kt @@ -60,6 +60,7 @@ import com.composables.icons.lucide.Monitor import com.composables.icons.lucide.Settings import com.composables.icons.lucide.Shield import kotlinx.coroutines.flow.Flow +import org.bitcoindevkit.Network import org.bitcoindevkit.devkitwallet.domain.CurrencyUnit import org.bitcoindevkit.devkitwallet.domain.utils.formatInBtc import org.bitcoindevkit.devkitwallet.presentation.navigation.BlockchainClientScreen @@ -145,7 +146,7 @@ internal fun WalletHomeScreen( } } Text( - text = "BITCOIN", + text = state.network.asHomeLabel(), fontSize = 14.sp, color = NightGlowSubtle, letterSpacing = 2.sp, @@ -305,6 +306,15 @@ internal fun WalletHomeScreen( } } +private fun Network.asHomeLabel(): String = + when (this) { + Network.BITCOIN -> "BITCOIN" + Network.TESTNET -> "TESTNET BITCOIN" + Network.TESTNET4 -> "TESTNET 4 BITCOIN" + Network.SIGNET -> "SIGNET BITCOIN" + Network.REGTEST -> "REGTEST BITCOIN" + } + @Composable private fun QuickAction(icon: ImageVector, label: String, tint: Color, onClick: () -> Unit) { Column( diff --git a/src/org/bitcoindevkit/devkitwallet/presentation/viewmodels/WalletViewModel.kt b/src/org/bitcoindevkit/devkitwallet/presentation/viewmodels/WalletViewModel.kt index 6532dcd..9707299 100644 --- a/src/org/bitcoindevkit/devkitwallet/presentation/viewmodels/WalletViewModel.kt +++ b/src/org/bitcoindevkit/devkitwallet/presentation/viewmodels/WalletViewModel.kt @@ -29,7 +29,7 @@ import org.bitcoindevkit.devkitwallet.presentation.viewmodels.mvi.WalletScreenSt private const val TAG = "WalletViewModel" internal class WalletViewModel(private val wallet: Wallet) : ViewModel() { - var state: WalletScreenState by mutableStateOf(WalletScreenState()) + var state: WalletScreenState by mutableStateOf(WalletScreenState(network = wallet.network)) private set private val kyotoCoroutineScope: CoroutineScope = CoroutineScope(Dispatchers.IO) diff --git a/src/org/bitcoindevkit/devkitwallet/presentation/viewmodels/mvi/MviWalletScreen.kt b/src/org/bitcoindevkit/devkitwallet/presentation/viewmodels/mvi/MviWalletScreen.kt index b1e6059..9787b77 100644 --- a/src/org/bitcoindevkit/devkitwallet/presentation/viewmodels/mvi/MviWalletScreen.kt +++ b/src/org/bitcoindevkit/devkitwallet/presentation/viewmodels/mvi/MviWalletScreen.kt @@ -5,11 +5,13 @@ package org.bitcoindevkit.devkitwallet.presentation.viewmodels.mvi +import org.bitcoindevkit.Network import org.bitcoindevkit.devkitwallet.domain.CurrencyUnit data class WalletScreenState( val balance: ULong = 0u, val unit: CurrencyUnit = CurrencyUnit.Bitcoin, + val network: Network = Network.SIGNET, val bestBlockHeight: UInt = 0u, val kyotoNodeStatus: CbfNodeStatus = CbfNodeStatus.Stopped, )