[Android] select native asset on network change
This commit is contained in:
+19
-12
@@ -302,13 +302,16 @@ public class BuySendSwapActivity extends BraveWalletBaseActivity
|
||||
// Shall be fine regardless of activity type
|
||||
mFromValueText.setText("");
|
||||
mFromValueText.setHint("0");
|
||||
resetSwapFromToAssets();
|
||||
|
||||
mJsonRpcService.setNetwork(chainId, CoinType.ETH, (success) -> {
|
||||
if (!success) {
|
||||
Log.e(TAG, "Could not set network");
|
||||
}
|
||||
mCurrentChainId = chainId;
|
||||
mJsonRpcService.getNetwork(CoinType.ETH, selectedNetwork -> {
|
||||
BlockchainToken nativeAsset = Utils.makeNetworkAsset(selectedNetwork);
|
||||
resetSwapFromToAssets(nativeAsset);
|
||||
});
|
||||
});
|
||||
updateBalanceMaybeSwap(getCurrentSelectedAccountAddr());
|
||||
});
|
||||
@@ -454,23 +457,27 @@ public class BuySendSwapActivity extends BraveWalletBaseActivity
|
||||
checkBalanceShowError(response, errorResponse);
|
||||
}
|
||||
|
||||
private void resetSwapFromToAssets() {
|
||||
// TODO (Wengling): change to pass NetworkInfo with
|
||||
// https://github.com/brave/brave-core/pull/14046
|
||||
private void resetSwapFromToAssets(BlockchainToken defaultToken) {
|
||||
if (mBlockchainRegistry != null && mCustomAccountAdapter != null
|
||||
&& mInitialLayoutInflationComplete) {
|
||||
final BlockchainToken eth =
|
||||
Utils.createEthereumBlockchainToken(BraveWalletConstants.MAINNET_CHAIN_ID);
|
||||
final BlockchainToken nativeAsset = defaultToken == null
|
||||
? Utils.createEthereumBlockchainToken(BraveWalletConstants.MAINNET_CHAIN_ID)
|
||||
: defaultToken;
|
||||
// Swap from
|
||||
String swapFromAssetSymbol = getIntent().getStringExtra("swapFromAssetSymbol");
|
||||
if (swapFromAssetSymbol == null
|
||||
|| swapFromAssetSymbol.equals(eth.symbol)) { // default swap from ETH
|
||||
updateBuySendSwapAsset(eth.symbol, eth, true);
|
||||
resetSwapToAsset(eth, swapFromAssetSymbol);
|
||||
|| swapFromAssetSymbol.equals(
|
||||
nativeAsset.symbol)) { // default swap from native asset
|
||||
updateBuySendSwapAsset(nativeAsset.symbol, nativeAsset, true);
|
||||
resetSwapToAsset(nativeAsset, swapFromAssetSymbol);
|
||||
} else {
|
||||
mBlockchainRegistry.getTokenBySymbol(BraveWalletConstants.MAINNET_CHAIN_ID,
|
||||
CoinType.ETH, swapFromAssetSymbol, token -> {
|
||||
if (token != null) {
|
||||
updateBuySendSwapAsset(token.symbol, token, true);
|
||||
resetSwapToAsset(eth, swapFromAssetSymbol);
|
||||
resetSwapToAsset(nativeAsset, swapFromAssetSymbol);
|
||||
|
||||
return;
|
||||
}
|
||||
@@ -482,7 +489,7 @@ public class BuySendSwapActivity extends BraveWalletBaseActivity
|
||||
if (swapFromAssetSymbol.equals(filteredToken.symbol)) {
|
||||
updateBuySendSwapAsset(
|
||||
filteredToken.symbol, filteredToken, true);
|
||||
resetSwapToAsset(eth, swapFromAssetSymbol);
|
||||
resetSwapToAsset(nativeAsset, swapFromAssetSymbol);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -492,12 +499,12 @@ public class BuySendSwapActivity extends BraveWalletBaseActivity
|
||||
}
|
||||
}
|
||||
|
||||
private void resetSwapToAsset(BlockchainToken eth, String swapFromAssetSymbol) {
|
||||
private void resetSwapToAsset(BlockchainToken nativeAsset, String swapFromAssetSymbol) {
|
||||
if (mActivityType != ActivityType.SWAP) return;
|
||||
final String defaultSwapToAsset = "BAT";
|
||||
// Swap to
|
||||
if (defaultSwapToAsset.equals(swapFromAssetSymbol)) { // swap from BAT
|
||||
updateBuySendSwapAsset(eth.symbol, eth, false);
|
||||
updateBuySendSwapAsset(nativeAsset.symbol, nativeAsset, false);
|
||||
} else {
|
||||
// Only ERC20 tokens can be swapped
|
||||
mBlockchainRegistry.getTokenBySymbol(BraveWalletConstants.MAINNET_CHAIN_ID,
|
||||
@@ -1515,7 +1522,7 @@ public class BuySendSwapActivity extends BraveWalletBaseActivity
|
||||
|
||||
// updateBuySendSwapAsset needs mCustomAccountAdapter to be
|
||||
// initialized
|
||||
resetSwapFromToAssets();
|
||||
resetSwapFromToAssets(null);
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
@@ -1095,6 +1095,52 @@ public class Utils {
|
||||
return eth;
|
||||
}
|
||||
|
||||
public static BlockchainToken makeNetworkAsset(NetworkInfo network) {
|
||||
String logo;
|
||||
|
||||
// TODO: Add missing logos
|
||||
// case "SOL":
|
||||
// logo = "sol.png";
|
||||
// break;
|
||||
// case "FIL":
|
||||
// logo = "fil.png";
|
||||
// break;
|
||||
// case network.chainId === BraveWallet.OPTIMISM_MAINNET_CHAIN_ID:
|
||||
// logo = "optimism.png";
|
||||
// break;
|
||||
// case network.chainId === BraveWallet.AVALANCHE_MAINNET_CHAIN_ID:
|
||||
// logo = "avax.png";
|
||||
// break;
|
||||
// case network.chainId === BraveWallet.FANTOM_MAINNET_CHAIN_ID:
|
||||
// logo = "fantom.png";
|
||||
// break;
|
||||
// case network.chainId === BraveWallet.CELO_MAINNET_CHAIN_ID:
|
||||
// logo = "celo.png";
|
||||
// break;
|
||||
if (network.chainId.equals(BraveWalletConstants.MAINNET_CHAIN_ID)) {
|
||||
logo = "eth.png";
|
||||
} else if (network.chainId.equals(BraveWalletConstants.POLYGON_MAINNET_CHAIN_ID)) {
|
||||
logo = "matic.png";
|
||||
} else if (network.chainId.equals(
|
||||
BraveWalletConstants.BINANCE_SMART_CHAIN_MAINNET_CHAIN_ID)) {
|
||||
logo = "bnb.png";
|
||||
} else {
|
||||
logo = "";
|
||||
}
|
||||
|
||||
BlockchainToken asset = new BlockchainToken();
|
||||
asset.name = network.symbolName;
|
||||
asset.symbol = network.symbol;
|
||||
asset.contractAddress = "";
|
||||
asset.isErc20 = false;
|
||||
asset.isErc721 = false;
|
||||
asset.logo = logo;
|
||||
asset.decimals = network.decimals;
|
||||
asset.visible = true;
|
||||
asset.chainId = network.chainId;
|
||||
return asset;
|
||||
}
|
||||
|
||||
public static BlockchainToken[] fixupTokensRegistry(BlockchainToken[] tokens, String chainId) {
|
||||
for (BlockchainToken token : tokens) {
|
||||
token.contractAddress =
|
||||
|
||||
Reference in New Issue
Block a user