From e0cd1f5def5ace88fec83eb0b553c7fc0d33c857 Mon Sep 17 00:00:00 2001 From: Satoshi Qazi Muhammed Date: Mon, 13 Jul 2026 11:43:03 -0700 Subject: [PATCH] fix: Bridge cards use AssetIconProvider and displayNameWithAssetStandard The redesigned Bridge cards resolved asset icons via the chain-icon helper (asset.icon.asIconOrFallback()), which treats the value as a ready-to-load URL. Chain.Asset.icon is frequently a bare filename resolved through AssetIconProvider's base-URL/color-mode logic, so any asset relying on that path rendered a blank icon (Polkadot Asset Hub's USDT, and the DOT/HEZ utility assets on the affected side). Switched to assetIconProvider.getAssetIconOrFallback(asset), the same path every other asset row in the app uses. Also switched the card subtitle from chain.name to chain.displayNameWithAssetStandard(), so Pezkuwi Asset Hub shows its PEZ-20 token-standard label, matching Send/Receive/the balance list. --- .../presentation/bridge/BridgeViewModel.kt | 11 +++++++---- .../presentation/bridge/di/BridgeModule.kt | 6 ++++-- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/feature-assets/src/main/java/io/novafoundation/nova/feature_assets/presentation/bridge/BridgeViewModel.kt b/feature-assets/src/main/java/io/novafoundation/nova/feature_assets/presentation/bridge/BridgeViewModel.kt index da0cf654..9f290dff 100644 --- a/feature-assets/src/main/java/io/novafoundation/nova/feature_assets/presentation/bridge/BridgeViewModel.kt +++ b/feature-assets/src/main/java/io/novafoundation/nova/feature_assets/presentation/bridge/BridgeViewModel.kt @@ -3,16 +3,18 @@ package io.novafoundation.nova.feature_assets.presentation.bridge import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData import io.novafoundation.nova.common.base.BaseViewModel +import io.novafoundation.nova.common.presentation.AssetIconProvider import io.novafoundation.nova.common.resources.ResourceManager import io.novafoundation.nova.common.utils.images.Icon import io.novafoundation.nova.common.view.ButtonState -import io.novafoundation.nova.feature_account_api.presenatation.chain.asIconOrFallback +import io.novafoundation.nova.feature_account_api.presenatation.chain.getAssetIconOrFallback import io.novafoundation.nova.feature_assets.R import io.novafoundation.nova.feature_assets.presentation.AssetsRouter import io.novafoundation.nova.feature_assets.presentation.send.amount.SendPayload import io.novafoundation.nova.feature_wallet_api.presentation.model.AssetPayload import io.novafoundation.nova.runtime.ext.ChainGeneses import io.novafoundation.nova.runtime.ext.addressOf +import io.novafoundation.nova.runtime.ext.displayNameWithAssetStandard import io.novafoundation.nova.runtime.multiNetwork.ChainRegistry import io.novasama.substrate_sdk_android.ss58.SS58Encoder.toAccountId import kotlinx.coroutines.Dispatchers @@ -26,7 +28,8 @@ import java.net.URL class BridgeViewModel( private val router: AssetsRouter, private val resourceManager: ResourceManager, - private val chainRegistry: ChainRegistry + private val chainRegistry: ChainRegistry, + private val assetIconProvider: AssetIconProvider ) : BaseViewModel() { companion object { @@ -386,10 +389,10 @@ class BridgeViewModel( val asset = chain.assetsById.getValue(assetId) return BridgeAssetCardUi( - assetIcon = asset.icon.asIconOrFallback(), + assetIcon = assetIconProvider.getAssetIconOrFallback(asset), chainIconUrl = chain.icon, symbol = asset.symbol.value, - chainName = chain.name + chainName = chain.displayNameWithAssetStandard() ) } } diff --git a/feature-assets/src/main/java/io/novafoundation/nova/feature_assets/presentation/bridge/di/BridgeModule.kt b/feature-assets/src/main/java/io/novafoundation/nova/feature_assets/presentation/bridge/di/BridgeModule.kt index 3f297d99..bba4c549 100644 --- a/feature-assets/src/main/java/io/novafoundation/nova/feature_assets/presentation/bridge/di/BridgeModule.kt +++ b/feature-assets/src/main/java/io/novafoundation/nova/feature_assets/presentation/bridge/di/BridgeModule.kt @@ -8,6 +8,7 @@ import dagger.Provides import dagger.multibindings.IntoMap import io.novafoundation.nova.common.di.viewmodel.ViewModelKey import io.novafoundation.nova.common.di.viewmodel.ViewModelModule +import io.novafoundation.nova.common.presentation.AssetIconProvider import io.novafoundation.nova.common.resources.ResourceManager import io.novafoundation.nova.feature_assets.presentation.AssetsRouter import io.novafoundation.nova.feature_assets.presentation.bridge.BridgeViewModel @@ -22,9 +23,10 @@ class BridgeModule { fun provideViewModel( router: AssetsRouter, resourceManager: ResourceManager, - chainRegistry: ChainRegistry + chainRegistry: ChainRegistry, + assetIconProvider: AssetIconProvider ): ViewModel { - return BridgeViewModel(router, resourceManager, chainRegistry) + return BridgeViewModel(router, resourceManager, chainRegistry, assetIconProvider) } @Provides