Merge pull request #12396 from brave/20471-replace-network-selector
20471 replace network selector
This commit is contained in:
@@ -573,6 +573,7 @@ brave_java_resources = [
|
||||
"java/res/drawable/ic_addresses.xml",
|
||||
"java/res/drawable/ic_appearance.xml",
|
||||
"java/res/drawable/ic_arrow_down.xml",
|
||||
"java/res/drawable/ic_arrow_down_circular_day_night.xml",
|
||||
"java/res/drawable/ic_arrow_downward.xml",
|
||||
"java/res/drawable/ic_arrow_drop_down_white.xml",
|
||||
"java/res/drawable/ic_arrow_forward.xml",
|
||||
@@ -595,6 +596,7 @@ brave_java_resources = [
|
||||
"java/res/drawable/ic_calendar.xml",
|
||||
"java/res/drawable/ic_carat_down.xml",
|
||||
"java/res/drawable/ic_card_background.xml",
|
||||
"java/res/drawable/ic_check.xml",
|
||||
"java/res/drawable/ic_check_circle.xml",
|
||||
"java/res/drawable/ic_checkbox_filled.xml",
|
||||
"java/res/drawable/ic_checkbox_outline.xml",
|
||||
@@ -769,6 +771,7 @@ brave_java_resources = [
|
||||
"java/res/layout/activity_brave_vpn_support.xml",
|
||||
"java/res/layout/activity_brave_wallet.xml",
|
||||
"java/res/layout/activity_buy_send_swap.xml",
|
||||
"java/res/layout/activity_network_selector.xml",
|
||||
"java/res/layout/activity_ntp_widget_stack.xml",
|
||||
"java/res/layout/activity_onboarding.xml",
|
||||
"java/res/layout/activity_p3a_onboarding.xml",
|
||||
@@ -883,6 +886,7 @@ brave_java_resources = [
|
||||
"java/res/layout/fragment_vpn_callout_dialog.xml",
|
||||
"java/res/layout/highlight_layout.xml",
|
||||
"java/res/layout/icon_row_menu_footer.xml",
|
||||
"java/res/layout/item_network_selector.xml",
|
||||
"java/res/layout/location_status_incognito_badge.xml",
|
||||
"java/res/layout/menu_separator.xml",
|
||||
"java/res/layout/network_spinner_items.xml",
|
||||
|
||||
@@ -69,10 +69,12 @@ brave_java_sources = [
|
||||
"../../brave/android/java/org/chromium/chrome/browser/crypto_wallet/activities/BraveWalletActivity.java",
|
||||
"../../brave/android/java/org/chromium/chrome/browser/crypto_wallet/activities/BraveWalletBaseActivity.java",
|
||||
"../../brave/android/java/org/chromium/chrome/browser/crypto_wallet/activities/BuySendSwapActivity.java",
|
||||
"../../brave/android/java/org/chromium/chrome/browser/crypto_wallet/activities/NetworkSelectorActivity.java",
|
||||
"../../brave/android/java/org/chromium/chrome/browser/crypto_wallet/adapters/AccountSpinnerAdapter.java",
|
||||
"../../brave/android/java/org/chromium/chrome/browser/crypto_wallet/adapters/ApproveTxFragmentPageAdapter.java",
|
||||
"../../brave/android/java/org/chromium/chrome/browser/crypto_wallet/adapters/CryptoFragmentPageAdapter.java",
|
||||
"../../brave/android/java/org/chromium/chrome/browser/crypto_wallet/adapters/CryptoWalletOnboardingPagerAdapter.java",
|
||||
"../../brave/android/java/org/chromium/chrome/browser/crypto_wallet/adapters/NetworkSelectorAdapter.java",
|
||||
"../../brave/android/java/org/chromium/chrome/browser/crypto_wallet/adapters/NetworkSpinnerAdapter.java",
|
||||
"../../brave/android/java/org/chromium/chrome/browser/crypto_wallet/adapters/RecoveryPhraseAdapter.java",
|
||||
"../../brave/android/java/org/chromium/chrome/browser/crypto_wallet/adapters/WalletCoinAdapter.java",
|
||||
|
||||
@@ -85,6 +85,11 @@
|
||||
android:screenOrientation="sensorPortrait"
|
||||
tools:ignore="LockedOrientationActivity"/>
|
||||
|
||||
<activity android:name="org.chromium.chrome.browser.crypto_wallet.activities.NetworkSelectorActivity"
|
||||
android:theme="@style/Theme.Chromium.Activity"
|
||||
android:screenOrientation="sensorPortrait"
|
||||
tools:ignore="LockedOrientationActivity"/>
|
||||
|
||||
<activity
|
||||
android:name="org.chromium.chrome.browser.vpn.BraveVpnPlansActivity"
|
||||
android:theme="@style/Theme.Chromium.Activity"
|
||||
|
||||
@@ -101,6 +101,7 @@ import org.chromium.chrome.browser.compositor.layouts.Layout;
|
||||
import org.chromium.chrome.browser.compositor.layouts.LayoutManagerChrome;
|
||||
import org.chromium.chrome.browser.compositor.layouts.LayoutManagerImpl;
|
||||
import org.chromium.chrome.browser.crypto_wallet.activities.BraveWalletActivity;
|
||||
import org.chromium.chrome.browser.crypto_wallet.activities.NetworkSelectorActivity;
|
||||
import org.chromium.chrome.browser.dependency_injection.ChromeActivityComponent;
|
||||
import org.chromium.chrome.browser.flags.ChromeFeatureList;
|
||||
import org.chromium.chrome.browser.flags.ChromeSwitches;
|
||||
@@ -805,6 +806,13 @@ public abstract class BraveActivity<C extends ChromeActivityComponent>
|
||||
startActivity(braveWalletIntent);
|
||||
}
|
||||
|
||||
// should only be called if the wallet is setup and unlocked
|
||||
public void openNetworkSelection() {
|
||||
Intent braveNetworkSelectionIntent = new Intent(this, NetworkSelectorActivity.class);
|
||||
braveNetworkSelectionIntent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
|
||||
startActivity(braveNetworkSelectionIntent);
|
||||
}
|
||||
|
||||
private void checkForYandexSE() {
|
||||
String countryCode = Locale.getDefault().getCountry();
|
||||
if (yandexRegions.contains(countryCode)) {
|
||||
|
||||
+87
@@ -0,0 +1,87 @@
|
||||
/* Copyright (c) 2022 The Brave Authors. All rights reserved.
|
||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
||||
* You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
package org.chromium.chrome.browser.crypto_wallet.activities;
|
||||
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.google.android.material.appbar.MaterialToolbar;
|
||||
|
||||
import org.chromium.base.Log;
|
||||
import org.chromium.brave_wallet.mojom.EthereumChain;
|
||||
import org.chromium.brave_wallet.mojom.JsonRpcService;
|
||||
import org.chromium.chrome.R;
|
||||
import org.chromium.chrome.browser.crypto_wallet.adapters.NetworkSelectorAdapter;
|
||||
import org.chromium.chrome.browser.crypto_wallet.adapters.NetworkSelectorAdapter.NetworkSelectorItem;
|
||||
import org.chromium.chrome.browser.crypto_wallet.util.Utils;
|
||||
|
||||
public class NetworkSelectorActivity
|
||||
extends BraveWalletBaseActivity implements NetworkSelectorAdapter.NetworkClickListener {
|
||||
private static final String TAG = NetworkSelectorActivity.class.getSimpleName();
|
||||
private RecyclerView mRVNetworkSelector;
|
||||
private NetworkSelectorAdapter networkSelectorAdapter;
|
||||
private MaterialToolbar mToolbar;
|
||||
|
||||
@Override
|
||||
protected void triggerLayoutInflation() {
|
||||
setContentView(R.layout.activity_network_selector);
|
||||
mToolbar = findViewById(R.id.toolbar);
|
||||
mToolbar.setTitle(R.string.brave_wallet_network_activity_title);
|
||||
setSupportActionBar(mToolbar);
|
||||
|
||||
mRVNetworkSelector = findViewById(R.id.rv_network_activity);
|
||||
onInitialLayoutInflationComplete();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void finishNativeInitialization() {
|
||||
super.finishNativeInitialization();
|
||||
initState();
|
||||
}
|
||||
|
||||
private void initState() {
|
||||
JsonRpcService jsonRpcService = getJsonRpcService();
|
||||
assert jsonRpcService != null;
|
||||
jsonRpcService.getAllNetworks(chains -> {
|
||||
EthereumChain[] customNetworks = Utils.getCustomNetworks(chains);
|
||||
networkSelectorAdapter =
|
||||
new NetworkSelectorAdapter(this, Utils.getNetworksList(this, customNetworks),
|
||||
Utils.getNetworksAbbrevList(this, customNetworks));
|
||||
networkSelectorAdapter.setOnNetworkItemSelected(this);
|
||||
mRVNetworkSelector.setAdapter(networkSelectorAdapter);
|
||||
fetchSelectedNetwork();
|
||||
});
|
||||
}
|
||||
|
||||
private void fetchSelectedNetwork() {
|
||||
JsonRpcService jsonRpcService = getJsonRpcService();
|
||||
assert jsonRpcService != null;
|
||||
jsonRpcService.getChainId(chainId -> {
|
||||
jsonRpcService.getAllNetworks(chains -> {
|
||||
EthereumChain[] customNetworks = Utils.getCustomNetworks(chains);
|
||||
String strNetwork = Utils.getNetworkText(this, chainId, customNetworks).toString();
|
||||
networkSelectorAdapter.setSelectedNetwork(strNetwork);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNetworkItemSelected(NetworkSelectorItem networkSelectorItem) {
|
||||
JsonRpcService jsonRpcService = getJsonRpcService();
|
||||
if (jsonRpcService != null) {
|
||||
jsonRpcService.getAllNetworks(chains -> {
|
||||
EthereumChain[] customNetworks = Utils.getCustomNetworks(chains);
|
||||
jsonRpcService.setNetwork(
|
||||
Utils.getNetworkConst(
|
||||
this, networkSelectorItem.getNetworkName(), customNetworks),
|
||||
(success) -> {
|
||||
if (!success) {
|
||||
Log.e(TAG, "Could not set network");
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
+160
@@ -0,0 +1,160 @@
|
||||
/* Copyright (c) 2022 The Brave Authors. All rights reserved.
|
||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
||||
* You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
package org.chromium.chrome.browser.crypto_wallet.adapters;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.content.Context;
|
||||
import android.os.Handler;
|
||||
import android.os.Looper;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import org.chromium.chrome.R;
|
||||
import org.chromium.chrome.browser.crypto_wallet.util.Utils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.ExecutorService;
|
||||
import java.util.concurrent.Executors;
|
||||
|
||||
public class NetworkSelectorAdapter
|
||||
extends RecyclerView.Adapter<NetworkSelectorAdapter.ViewHolder> {
|
||||
private Context mContext;
|
||||
private final ExecutorService mExecutor;
|
||||
private final Handler mHandler;
|
||||
private final List<NetworkSelectorItem> networks;
|
||||
private final LayoutInflater inflater;
|
||||
private int previousSelectedPos;
|
||||
private NetworkClickListener networkClickListener;
|
||||
|
||||
public NetworkSelectorAdapter(
|
||||
Context context, String[] networkNames, String[] networkShortNames) {
|
||||
assert networkNames.length == networkShortNames.length;
|
||||
this.mContext = context;
|
||||
inflater = (LayoutInflater.from(context));
|
||||
mExecutor = Executors.newSingleThreadExecutor();
|
||||
mHandler = new Handler(Looper.getMainLooper());
|
||||
networks = new ArrayList<>();
|
||||
init(networkNames, networkShortNames);
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NonNull ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
|
||||
mContext = parent.getContext();
|
||||
View view = inflater.inflate(R.layout.item_network_selector, parent, false);
|
||||
return new ViewHolder(view);
|
||||
}
|
||||
|
||||
@SuppressLint("NotifyDataSetChanged")
|
||||
@Override
|
||||
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
|
||||
final NetworkSelectorItem network = networks.get(position);
|
||||
|
||||
holder.tvName.setText(network.getNetworkShortName());
|
||||
Utils.setBlockiesBitmapResource(
|
||||
mExecutor, mHandler, holder.ivNetworkPicture, network.getNetworkName(), false);
|
||||
holder.ivSelected.setVisibility(network.isSelected() ? View.VISIBLE : View.GONE);
|
||||
|
||||
holder.itemView.setOnClickListener(v -> {
|
||||
updateSelectedNetwork(holder.getAdapterPosition());
|
||||
if (networkClickListener != null) {
|
||||
networkClickListener.onNetworkItemSelected(network);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemCount() {
|
||||
return networks.size();
|
||||
}
|
||||
|
||||
public void setSelectedNetwork(String network) {
|
||||
for (int i = 0; i < networks.size(); i++) {
|
||||
NetworkSelectorItem networkSelectorItem = networks.get(i);
|
||||
if (networkSelectorItem.getNetworkName().equalsIgnoreCase(network)) {
|
||||
updateSelectedNetwork(i);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void setOnNetworkItemSelected(NetworkClickListener networkClickListener) {
|
||||
this.networkClickListener = networkClickListener;
|
||||
}
|
||||
|
||||
private void updateSelectedNetwork(int selectedNetworkPosition) {
|
||||
networks.get(previousSelectedPos).setIsSelected(false);
|
||||
notifyItemChanged(previousSelectedPos);
|
||||
|
||||
networks.get(selectedNetworkPosition).setIsSelected(true);
|
||||
previousSelectedPos = selectedNetworkPosition;
|
||||
notifyItemChanged(selectedNetworkPosition);
|
||||
}
|
||||
|
||||
private void init(String[] networkNames, String[] networkShortNames) {
|
||||
for (int i = 0; i < networkNames.length; i++) {
|
||||
networks.add(new NetworkSelectorItem(networkNames[i], networkShortNames[i]));
|
||||
}
|
||||
}
|
||||
|
||||
static class ViewHolder extends RecyclerView.ViewHolder {
|
||||
ImageView ivNetworkPicture;
|
||||
TextView tvName;
|
||||
ImageView ivSelected;
|
||||
|
||||
ViewHolder(View itemView) {
|
||||
super(itemView);
|
||||
tvName = itemView.findViewById(R.id.tv_item_network_name);
|
||||
ivNetworkPicture = itemView.findViewById(R.id.iv_item_network_picture);
|
||||
ivSelected = itemView.findViewById(R.id.iv_item_network_selector_selected);
|
||||
}
|
||||
}
|
||||
|
||||
public static class NetworkSelectorItem {
|
||||
private String mNetworkName;
|
||||
private String mNetworkShortName;
|
||||
private boolean mIsSelected;
|
||||
|
||||
public NetworkSelectorItem(String mNetworkName, String mNetworkShortName) {
|
||||
this.mNetworkName = mNetworkName;
|
||||
this.mNetworkShortName = mNetworkShortName;
|
||||
}
|
||||
|
||||
public String getNetworkName() {
|
||||
return mNetworkName;
|
||||
}
|
||||
|
||||
public void setNetworkName(String mNetworkName) {
|
||||
this.mNetworkName = mNetworkName;
|
||||
}
|
||||
|
||||
public String getNetworkShortName() {
|
||||
return mNetworkShortName;
|
||||
}
|
||||
|
||||
public void setNetworkShortName(String mNetworkShortName) {
|
||||
this.mNetworkShortName = mNetworkShortName;
|
||||
}
|
||||
|
||||
public boolean isSelected() {
|
||||
return mIsSelected;
|
||||
}
|
||||
|
||||
public void setIsSelected(boolean mIsSelected) {
|
||||
this.mIsSelected = mIsSelected;
|
||||
}
|
||||
}
|
||||
|
||||
public interface NetworkClickListener {
|
||||
void onNetworkItemSelected(NetworkSelectorItem networkSelectorItem);
|
||||
}
|
||||
}
|
||||
+33
-61
@@ -42,6 +42,7 @@ import org.chromium.brave_wallet.mojom.KeyringService;
|
||||
import org.chromium.brave_wallet.mojom.TransactionInfo;
|
||||
import org.chromium.brave_wallet.mojom.TxService;
|
||||
import org.chromium.chrome.R;
|
||||
import org.chromium.chrome.browser.app.BraveActivity;
|
||||
import org.chromium.chrome.browser.crypto_wallet.BlockchainRegistryFactory;
|
||||
import org.chromium.chrome.browser.crypto_wallet.activities.BraveWalletActivity;
|
||||
import org.chromium.chrome.browser.crypto_wallet.adapters.NetworkSpinnerAdapter;
|
||||
@@ -60,17 +61,18 @@ import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
|
||||
public class PortfolioFragment extends Fragment
|
||||
implements OnWalletListItemClick, AdapterView.OnItemSelectedListener, ApprovedTxObserver {
|
||||
public class PortfolioFragment
|
||||
extends Fragment implements OnWalletListItemClick, ApprovedTxObserver {
|
||||
private static String TAG = "PortfolioFragment";
|
||||
private Spinner mSpinner;
|
||||
private TextView mBalance;
|
||||
private Button mBtnChangeNetwork;
|
||||
private HashMap<String, TransactionInfo[]> mPendingTxInfos;
|
||||
|
||||
private String mFiatSumString;
|
||||
|
||||
private int mPreviousCheckedRadioId;
|
||||
private int mCurrentTimeframeType;
|
||||
private String mSelectedChainNetworkName = "";
|
||||
|
||||
PortfolioHelper mPortfolioHelper;
|
||||
|
||||
@@ -130,8 +132,8 @@ public class PortfolioFragment extends Fragment
|
||||
}
|
||||
});
|
||||
|
||||
mSpinner = view.findViewById(R.id.spinner);
|
||||
mSpinner.setOnItemSelectedListener(this);
|
||||
mBtnChangeNetwork = view.findViewById(R.id.fragment_portfolio_btn_change_networks);
|
||||
mBtnChangeNetwork.setOnClickListener(v -> { openNetworkSelection(); });
|
||||
|
||||
mBalance = view.findViewById(R.id.balance);
|
||||
mBalance.setOnClickListener(new View.OnClickListener() {
|
||||
@@ -141,18 +143,6 @@ public class PortfolioFragment extends Fragment
|
||||
}
|
||||
});
|
||||
|
||||
// Creating adapter for spinner
|
||||
JsonRpcService jsonRpcService = getJsonRpcService();
|
||||
assert jsonRpcService != null;
|
||||
jsonRpcService.getAllNetworks(chains -> {
|
||||
EthereumChain[] customNetworks = Utils.getCustomNetworks(chains);
|
||||
NetworkSpinnerAdapter dataAdapter = new NetworkSpinnerAdapter(getActivity(),
|
||||
Utils.getNetworksList(getActivity(), customNetworks),
|
||||
Utils.getNetworksAbbrevList(getActivity(), customNetworks));
|
||||
mSpinner.setAdapter(dataAdapter);
|
||||
updateNetwork();
|
||||
});
|
||||
|
||||
return view;
|
||||
}
|
||||
|
||||
@@ -162,12 +152,17 @@ public class PortfolioFragment extends Fragment
|
||||
jsonRpcService.getChainId(chain_id -> {
|
||||
jsonRpcService.getAllNetworks(chains -> {
|
||||
EthereumChain[] customNetworks = Utils.getCustomNetworks(chains);
|
||||
String chainName = mSpinner.getSelectedItem().toString();
|
||||
String chainId = Utils.getNetworkConst(getActivity(), chainName, customNetworks);
|
||||
if (chainId.equals(chain_id)) {
|
||||
String chainId = Utils.getNetworkConst(
|
||||
getActivity(), mSelectedChainNetworkName, customNetworks);
|
||||
if (chainId.equals(chain_id) && !mSelectedChainNetworkName.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
mSpinner.setSelection(getIndexOf(mSpinner, chain_id, customNetworks));
|
||||
mSelectedChainNetworkName =
|
||||
Utils.getNetworkText(requireActivity(), chain_id, customNetworks)
|
||||
.toString();
|
||||
String strNetworkShort =
|
||||
Utils.getNetworkShortText(requireActivity(), chain_id).toString();
|
||||
updateAccount(strNetworkShort);
|
||||
});
|
||||
});
|
||||
}
|
||||
@@ -178,40 +173,6 @@ public class PortfolioFragment extends Fragment
|
||||
updateNetwork();
|
||||
}
|
||||
|
||||
private int getIndexOf(Spinner spinner, String chain_id, EthereumChain[] customNetworks) {
|
||||
String strNetwork =
|
||||
Utils.getNetworkText(getActivity(), chain_id, customNetworks).toString();
|
||||
for (int i = 0; i < spinner.getCount(); i++) {
|
||||
if (spinner.getItemAtPosition(i).toString().equalsIgnoreCase(strNetwork)) {
|
||||
return i;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
|
||||
String item = parent.getItemAtPosition(position).toString();
|
||||
JsonRpcService jsonRpcService = getJsonRpcService();
|
||||
if (jsonRpcService != null) {
|
||||
jsonRpcService.getAllNetworks(chains -> {
|
||||
EthereumChain[] customNetworks = Utils.getCustomNetworks(chains);
|
||||
jsonRpcService.setNetwork(
|
||||
Utils.getNetworkConst(getActivity(), item, customNetworks), (success) -> {
|
||||
if (!success) {
|
||||
Log.e(TAG, "Could not set network");
|
||||
return;
|
||||
}
|
||||
updatePortfolioGetPendingTx(true);
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNothingSelected(AdapterView<?> arg0) {}
|
||||
|
||||
@Override
|
||||
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
|
||||
super.onViewCreated(view, savedInstanceState);
|
||||
@@ -222,9 +183,9 @@ public class PortfolioFragment extends Fragment
|
||||
JsonRpcService jsonRpcService = getJsonRpcService();
|
||||
assert jsonRpcService != null;
|
||||
jsonRpcService.getAllNetworks(chains -> {
|
||||
String chainName = mSpinner.getSelectedItem().toString();
|
||||
EthereumChain[] customNetworks = Utils.getCustomNetworks(chains);
|
||||
String chainId = Utils.getNetworkConst(getActivity(), chainName, customNetworks);
|
||||
String chainId = Utils.getNetworkConst(
|
||||
getActivity(), mSelectedChainNetworkName, customNetworks);
|
||||
|
||||
EditVisibleAssetsBottomSheetDialogFragment bottomSheetDialogFragment =
|
||||
EditVisibleAssetsBottomSheetDialogFragment.newInstance(
|
||||
@@ -259,6 +220,11 @@ public class PortfolioFragment extends Fragment
|
||||
});
|
||||
}
|
||||
|
||||
private void updateAccount(String strNetwork) {
|
||||
mBtnChangeNetwork.setText(strNetwork);
|
||||
updatePortfolioGetPendingTx(true);
|
||||
}
|
||||
|
||||
private void setUpCoinList(BlockchainToken[] userAssets,
|
||||
HashMap<String, Double> perTokenCryptoSum, HashMap<String, Double> perTokenFiatSum) {
|
||||
View view = getView();
|
||||
@@ -304,13 +270,19 @@ public class PortfolioFragment extends Fragment
|
||||
assert jsonRpcService != null;
|
||||
jsonRpcService.getAllNetworks(chains -> {
|
||||
EthereumChain[] customNetworks = Utils.getCustomNetworks(chains);
|
||||
String chainName = mSpinner.getSelectedItem().toString();
|
||||
String chainId = Utils.getNetworkConst(getActivity(), chainName, customNetworks);
|
||||
String chainId =
|
||||
Utils.getNetworkConst(getActivity(), mSelectedChainNetworkName, customNetworks);
|
||||
Utils.openAssetDetailsActivity(getActivity(), chainId, asset.symbol, asset.name,
|
||||
asset.contractAddress, asset.logo, asset.decimals);
|
||||
});
|
||||
}
|
||||
|
||||
private void openNetworkSelection() {
|
||||
BraveActivity activity = BraveActivity.getBraveActivity();
|
||||
assert activity != null;
|
||||
activity.openNetworkSelection();
|
||||
}
|
||||
|
||||
private AssetRatioService getAssetRatioService() {
|
||||
Activity activity = getActivity();
|
||||
if (activity instanceof BraveWalletActivity) {
|
||||
@@ -410,8 +382,8 @@ public class PortfolioFragment extends Fragment
|
||||
getAssetRatioService(), getJsonRpcService(), accountInfos);
|
||||
}
|
||||
EthereumChain[] customNetworks = Utils.getCustomNetworks(chains);
|
||||
String chainName = mSpinner.getSelectedItem().toString();
|
||||
String chainId = Utils.getNetworkConst(getActivity(), chainName, customNetworks);
|
||||
String chainId = Utils.getNetworkConst(
|
||||
getActivity(), mSelectedChainNetworkName, customNetworks);
|
||||
mPortfolioHelper.setChainId(chainId);
|
||||
mPortfolioHelper.calculateBalances(() -> {
|
||||
final String fiatSumString = String.format(
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="16dp"
|
||||
android:height="16dp"
|
||||
android:viewportWidth="200"
|
||||
android:viewportHeight="200">
|
||||
<path
|
||||
android:fillColor="@color/brave_wallet_day_night_icon_color"
|
||||
android:pathData="M100,15a85,85 0,1 0,85 85A84.93,84.93 0,0 0,100 15ZM100,165a65,65 0,1 1,65 -65A64.87,64.87 0,0 1,100 165ZM128.5,83.5 L100,111.5L71.5,83a9.9,9.9 0,0 0,-14 14L86,125.5a19.92,19.92 0,0 0,28.5 0L143,97a9.67,9.67 0,0 0,0 -14C138.5,79.5 132,79.5 128.5,83.5Z"/>
|
||||
</vector>
|
||||
@@ -0,0 +1,9 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="22dp"
|
||||
android:height="16dp"
|
||||
android:viewportWidth="22"
|
||||
android:viewportHeight="16">
|
||||
<path
|
||||
android:pathData="M21.434,0.4C21.0951,0.08 20.6715,0 20.2479,0C19.8243,0 19.4007,0.24 19.0618,0.56L8.4719,12.08L2.8805,6.88C2.2027,6.24 1.1013,6.24 0.5083,6.88C0.1694,7.2 0,7.6 0,8C0,8.4 0.1694,8.8 0.5083,9.12L7.3706,15.52C7.6247,15.84 8.0483,16 8.5567,16H8.6414C9.1497,16 9.5733,15.76 9.8274,15.44L21.6034,2.64C22.1965,2 22.1117,0.96 21.434,0.4Z"
|
||||
android:fillColor="#495057"/>
|
||||
</vector>
|
||||
@@ -0,0 +1,31 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Copyright (c) 2022 The Brave Authors. All rights reserved.
|
||||
This Source Code Form is subject to the terms of the Mozilla Public
|
||||
License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
||||
You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
-->
|
||||
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical"
|
||||
tools:context=".browser.crypto_wallet.activities.NetworkSelectorActivity">
|
||||
|
||||
<com.google.android.material.appbar.MaterialToolbar
|
||||
android:id="@+id/toolbar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="?attr/actionBarSize"
|
||||
android:layout_marginBottom="8dp"
|
||||
android:background="@color/wallet_toolbar_bg_color"
|
||||
android:gravity="center_vertical"
|
||||
app:titleCentered="true"
|
||||
android:translationZ="10dp"/>
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/rv_network_activity"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" />
|
||||
</LinearLayout>
|
||||
@@ -1,4 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Copyright (c) 2022 The Brave Authors. All rights reserved.
|
||||
This Source Code Form is subject to the terms of the Mozilla Public
|
||||
License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
||||
You can obtain one at http://mozilla.org/MPL/2.0/. -->
|
||||
|
||||
<androidx.core.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
@@ -7,266 +12,267 @@
|
||||
android:background="@color/wallet_bg"
|
||||
android:fillViewport="true">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingStart="16dp"
|
||||
android:paddingEnd="16dp"
|
||||
android:layout_marginBottom="8dp"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/balance"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:paddingStart="16dp"
|
||||
android:paddingEnd="16dp"
|
||||
android:paddingTop="16dp"
|
||||
android:layout_marginBottom="8dp"
|
||||
android:text="@string/brave_wallet_portfolio_balance_updating"
|
||||
android:textColor="@color/wallet_text_color"
|
||||
android:textStyle="bold"
|
||||
android:textSize="32sp" />
|
||||
|
||||
<Spinner
|
||||
android:id="@+id/spinner"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:textSize="12sp"
|
||||
android:textColor="@color/wallet_text_color"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:prompt="@string/mainnet"
|
||||
android:paddingStart="8dp"
|
||||
android:paddingEnd="8dp"
|
||||
android:paddingTop="2dp"
|
||||
android:paddingBottom="2dp" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingStart="16dp"
|
||||
android:paddingEnd="16dp"
|
||||
android:layout_marginBottom="8dp"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/trend_percentage"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="8dp"
|
||||
android:drawablePadding="4dp"
|
||||
android:textSize="14sp"
|
||||
tools:ignore="HardcodedText" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/trend_timeframe"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textSize="14sp" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
<org.chromium.chrome.browser.crypto_wallet.util.SmoothLineChartEquallySpaced
|
||||
android:layout_marginTop="32dp"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="200dp"
|
||||
android:id="@+id/line_chart" />
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="8dp"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<RadioGroup
|
||||
tools:ignore="UselessParent"
|
||||
android:id="@+id/portfolio_duration_radio_group"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:layout_marginStart="16dp"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<RadioButton
|
||||
android:id="@+id/live_radiobutton"
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@drawable/wallet_radio_button_selector"
|
||||
android:gravity="center"
|
||||
android:paddingTop="4dp"
|
||||
android:paddingBottom="4dp"
|
||||
android:paddingStart="2dp"
|
||||
android:paddingEnd="2dp"
|
||||
android:layout_marginStart="4dp"
|
||||
android:layout_marginEnd="4dp"
|
||||
android:textColor="@color/crypto_wallet_radiobutton_color_selector"
|
||||
android:button="@null"
|
||||
android:textSize="14sp"
|
||||
android:textStyle="bold"
|
||||
android:drawablePadding="4dp"
|
||||
android:text="@string/live" />
|
||||
|
||||
<RadioButton
|
||||
android:id="@+id/day_1_radiobutton"
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@drawable/wallet_radio_button_selector"
|
||||
android:gravity="center"
|
||||
android:paddingTop="4dp"
|
||||
android:paddingBottom="4dp"
|
||||
android:paddingStart="2dp"
|
||||
android:paddingEnd="2dp"
|
||||
android:layout_marginStart="4dp"
|
||||
android:layout_marginEnd="4dp"
|
||||
android:textColor="@color/crypto_wallet_radiobutton_color_selector"
|
||||
android:button="@null"
|
||||
android:textSize="14sp"
|
||||
android:textStyle="bold"
|
||||
android:checked="true"
|
||||
android:text="@string/day_1" />
|
||||
|
||||
<RadioButton
|
||||
android:id="@+id/week_1_radiobutton"
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@drawable/wallet_radio_button_selector"
|
||||
android:gravity="center"
|
||||
android:paddingTop="4dp"
|
||||
android:paddingBottom="4dp"
|
||||
android:paddingStart="2dp"
|
||||
android:paddingEnd="2dp"
|
||||
android:layout_marginStart="4dp"
|
||||
android:layout_marginEnd="4dp"
|
||||
android:textColor="@color/crypto_wallet_radiobutton_color_selector"
|
||||
android:button="@null"
|
||||
android:textSize="14sp"
|
||||
android:textStyle="bold"
|
||||
android:text="@string/week_1" />
|
||||
|
||||
<RadioButton
|
||||
android:id="@+id/month_1_radiobutton"
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@drawable/wallet_radio_button_selector"
|
||||
android:gravity="center"
|
||||
android:paddingTop="4dp"
|
||||
android:paddingBottom="4dp"
|
||||
android:paddingStart="2dp"
|
||||
android:paddingEnd="2dp"
|
||||
android:layout_marginStart="4dp"
|
||||
android:layout_marginEnd="4dp"
|
||||
android:textColor="@color/crypto_wallet_radiobutton_color_selector"
|
||||
android:button="@null"
|
||||
android:textSize="14sp"
|
||||
android:textStyle="bold"
|
||||
android:text="@string/month_1" />
|
||||
|
||||
<RadioButton
|
||||
android:id="@+id/month_3_radiobutton"
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@drawable/wallet_radio_button_selector"
|
||||
android:gravity="center"
|
||||
android:paddingTop="4dp"
|
||||
android:paddingBottom="4dp"
|
||||
android:paddingStart="2dp"
|
||||
android:paddingEnd="2dp"
|
||||
android:layout_marginStart="4dp"
|
||||
android:layout_marginEnd="4dp"
|
||||
android:textColor="@color/crypto_wallet_radiobutton_color_selector"
|
||||
android:button="@null"
|
||||
android:textSize="14sp"
|
||||
android:textStyle="bold"
|
||||
android:text="@string/month_3" />
|
||||
|
||||
<RadioButton
|
||||
android:id="@+id/year_1_radiobutton"
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@drawable/wallet_radio_button_selector"
|
||||
android:gravity="center"
|
||||
android:paddingTop="4dp"
|
||||
android:paddingBottom="4dp"
|
||||
android:paddingStart="2dp"
|
||||
android:paddingEnd="2dp"
|
||||
android:layout_marginStart="4dp"
|
||||
android:layout_marginEnd="4dp"
|
||||
android:textColor="@color/crypto_wallet_radiobutton_color_selector"
|
||||
android:button="@null"
|
||||
android:textSize="14sp"
|
||||
android:textStyle="bold"
|
||||
android:text="@string/year_1" />
|
||||
|
||||
<RadioButton
|
||||
android:id="@+id/all_radiobutton"
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@drawable/wallet_radio_button_selector"
|
||||
android:gravity="center"
|
||||
android:paddingTop="4dp"
|
||||
android:paddingBottom="4dp"
|
||||
android:paddingStart="2dp"
|
||||
android:paddingEnd="2dp"
|
||||
android:layout_marginStart="4dp"
|
||||
android:layout_marginEnd="4dp"
|
||||
android:textColor="@color/crypto_wallet_radiobutton_color_selector"
|
||||
android:button="@null"
|
||||
android:textSize="14sp"
|
||||
android:textStyle="bold"
|
||||
android:text="@string/all" />
|
||||
|
||||
</RadioGroup>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<View
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="1dp"
|
||||
android:background="@color/wallet_edittext_outline_color"
|
||||
android:layout_marginBottom="8dp"/>
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/rvCoins"
|
||||
android:layout_marginStart="20dp"
|
||||
android:layout_marginEnd="20dp"
|
||||
android:layout_marginBottom="24dp"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"/>
|
||||
android:paddingStart="16dp"
|
||||
android:paddingEnd="16dp"
|
||||
android:layout_marginBottom="16dp"
|
||||
android:gravity="center"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/edit_visible_assets"
|
||||
android:layout_width="wrap_content"
|
||||
android:id="@+id/balance"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/edit_visible_assets"
|
||||
android:textColor="@color/wallet_text_color"
|
||||
android:background="@drawable/rounded_white_holo_bg"
|
||||
android:gravity="center"
|
||||
android:textSize="14sp"
|
||||
android:paddingTop="8dp"
|
||||
android:paddingBottom="8dp"
|
||||
android:layout_weight=".7"
|
||||
android:paddingStart="16dp"
|
||||
android:paddingEnd="16dp"
|
||||
android:layout_marginStart="20dp"
|
||||
android:layout_marginBottom="8dp"/>
|
||||
android:gravity="center_vertical"
|
||||
android:text="@string/brave_wallet_portfolio_balance_updating"
|
||||
android:textColor="@color/wallet_text_color"
|
||||
android:textStyle="bold"
|
||||
android:textSize="32sp" />
|
||||
|
||||
|
||||
<android.widget.Button
|
||||
android:id="@+id/fragment_portfolio_btn_change_networks"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_margin="16dp"
|
||||
android:layout_weight=".3"
|
||||
android:background="@drawable/rounded_holo_button"
|
||||
android:drawableEnd="@drawable/ic_arrow_down_circular_day_night"
|
||||
android:minHeight="0dp"
|
||||
android:paddingHorizontal="8dp"
|
||||
android:paddingVertical="2dp"
|
||||
android:textAllCaps="false"
|
||||
android:textColor="@color/brave_wallet_day_night_text_color" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingStart="16dp"
|
||||
android:paddingEnd="16dp"
|
||||
android:layout_marginBottom="8dp"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/trend_percentage"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="8dp"
|
||||
android:drawablePadding="4dp"
|
||||
android:textSize="14sp"
|
||||
tools:ignore="HardcodedText" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/trend_timeframe"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textSize="14sp" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
<org.chromium.chrome.browser.crypto_wallet.util.SmoothLineChartEquallySpaced
|
||||
android:layout_marginTop="32dp"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="200dp"
|
||||
android:id="@+id/line_chart" />
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="8dp"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<RadioGroup
|
||||
tools:ignore="UselessParent"
|
||||
android:id="@+id/portfolio_duration_radio_group"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:layout_marginStart="16dp"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<RadioButton
|
||||
android:id="@+id/live_radiobutton"
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@drawable/wallet_radio_button_selector"
|
||||
android:gravity="center"
|
||||
android:paddingTop="4dp"
|
||||
android:paddingBottom="4dp"
|
||||
android:paddingStart="2dp"
|
||||
android:paddingEnd="2dp"
|
||||
android:layout_marginStart="4dp"
|
||||
android:layout_marginEnd="4dp"
|
||||
android:textColor="@color/crypto_wallet_radiobutton_color_selector"
|
||||
android:button="@null"
|
||||
android:textSize="14sp"
|
||||
android:textStyle="bold"
|
||||
android:drawablePadding="4dp"
|
||||
android:text="@string/live" />
|
||||
|
||||
<RadioButton
|
||||
android:id="@+id/day_1_radiobutton"
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@drawable/wallet_radio_button_selector"
|
||||
android:gravity="center"
|
||||
android:paddingTop="4dp"
|
||||
android:paddingBottom="4dp"
|
||||
android:paddingStart="2dp"
|
||||
android:paddingEnd="2dp"
|
||||
android:layout_marginStart="4dp"
|
||||
android:layout_marginEnd="4dp"
|
||||
android:textColor="@color/crypto_wallet_radiobutton_color_selector"
|
||||
android:button="@null"
|
||||
android:textSize="14sp"
|
||||
android:textStyle="bold"
|
||||
android:checked="true"
|
||||
android:text="@string/day_1" />
|
||||
|
||||
<RadioButton
|
||||
android:id="@+id/week_1_radiobutton"
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@drawable/wallet_radio_button_selector"
|
||||
android:gravity="center"
|
||||
android:paddingTop="4dp"
|
||||
android:paddingBottom="4dp"
|
||||
android:paddingStart="2dp"
|
||||
android:paddingEnd="2dp"
|
||||
android:layout_marginStart="4dp"
|
||||
android:layout_marginEnd="4dp"
|
||||
android:textColor="@color/crypto_wallet_radiobutton_color_selector"
|
||||
android:button="@null"
|
||||
android:textSize="14sp"
|
||||
android:textStyle="bold"
|
||||
android:text="@string/week_1" />
|
||||
|
||||
<RadioButton
|
||||
android:id="@+id/month_1_radiobutton"
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@drawable/wallet_radio_button_selector"
|
||||
android:gravity="center"
|
||||
android:paddingTop="4dp"
|
||||
android:paddingBottom="4dp"
|
||||
android:paddingStart="2dp"
|
||||
android:paddingEnd="2dp"
|
||||
android:layout_marginStart="4dp"
|
||||
android:layout_marginEnd="4dp"
|
||||
android:textColor="@color/crypto_wallet_radiobutton_color_selector"
|
||||
android:button="@null"
|
||||
android:textSize="14sp"
|
||||
android:textStyle="bold"
|
||||
android:text="@string/month_1" />
|
||||
|
||||
<RadioButton
|
||||
android:id="@+id/month_3_radiobutton"
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@drawable/wallet_radio_button_selector"
|
||||
android:gravity="center"
|
||||
android:paddingTop="4dp"
|
||||
android:paddingBottom="4dp"
|
||||
android:paddingStart="2dp"
|
||||
android:paddingEnd="2dp"
|
||||
android:layout_marginStart="4dp"
|
||||
android:layout_marginEnd="4dp"
|
||||
android:textColor="@color/crypto_wallet_radiobutton_color_selector"
|
||||
android:button="@null"
|
||||
android:textSize="14sp"
|
||||
android:textStyle="bold"
|
||||
android:text="@string/month_3" />
|
||||
|
||||
<RadioButton
|
||||
android:id="@+id/year_1_radiobutton"
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@drawable/wallet_radio_button_selector"
|
||||
android:gravity="center"
|
||||
android:paddingTop="4dp"
|
||||
android:paddingBottom="4dp"
|
||||
android:paddingStart="2dp"
|
||||
android:paddingEnd="2dp"
|
||||
android:layout_marginStart="4dp"
|
||||
android:layout_marginEnd="4dp"
|
||||
android:textColor="@color/crypto_wallet_radiobutton_color_selector"
|
||||
android:button="@null"
|
||||
android:textSize="14sp"
|
||||
android:textStyle="bold"
|
||||
android:text="@string/year_1" />
|
||||
|
||||
<RadioButton
|
||||
android:id="@+id/all_radiobutton"
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@drawable/wallet_radio_button_selector"
|
||||
android:gravity="center"
|
||||
android:paddingTop="4dp"
|
||||
android:paddingBottom="4dp"
|
||||
android:paddingStart="2dp"
|
||||
android:paddingEnd="2dp"
|
||||
android:layout_marginStart="4dp"
|
||||
android:layout_marginEnd="4dp"
|
||||
android:textColor="@color/crypto_wallet_radiobutton_color_selector"
|
||||
android:button="@null"
|
||||
android:textSize="14sp"
|
||||
android:textStyle="bold"
|
||||
android:text="@string/all" />
|
||||
|
||||
</RadioGroup>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<View
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="1dp"
|
||||
android:background="@color/wallet_edittext_outline_color"
|
||||
android:layout_marginBottom="8dp"/>
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/rvCoins"
|
||||
android:layout_marginStart="20dp"
|
||||
android:layout_marginEnd="20dp"
|
||||
android:layout_marginBottom="24dp"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/edit_visible_assets"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/edit_visible_assets"
|
||||
android:textColor="@color/wallet_text_color"
|
||||
android:background="@drawable/rounded_white_holo_bg"
|
||||
android:gravity="center"
|
||||
android:textSize="14sp"
|
||||
android:paddingTop="8dp"
|
||||
android:paddingBottom="8dp"
|
||||
android:paddingStart="16dp"
|
||||
android:paddingEnd="16dp"
|
||||
android:layout_marginStart="20dp"
|
||||
android:layout_marginBottom="8dp"/>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</androidx.core.widget.NestedScrollView>
|
||||
|
||||
@@ -0,0 +1,52 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Copyright (c) 2022 The Brave Authors. All rights reserved.
|
||||
This Source Code Form is subject to the terms of the Mozilla Public
|
||||
License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
||||
You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
-->
|
||||
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="4dp"
|
||||
android:layout_marginBottom="4dp"
|
||||
android:animateLayoutChanges="true"
|
||||
android:orientation="horizontal"
|
||||
android:paddingHorizontal="12dp"
|
||||
android:paddingTop="12dp"
|
||||
android:paddingBottom="12dp"
|
||||
tools:ignore="UseCompoundDrawables">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/iv_item_network_picture"
|
||||
android:layout_width="14dp"
|
||||
android:layout_height="14dp"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:layout_marginEnd="8dp"
|
||||
android:contentDescription="@null"
|
||||
app:srcCompat="@drawable/ic_eth_24" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_item_network_name"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:layout_weight="1"
|
||||
android:paddingStart="1dp"
|
||||
android:paddingTop="2dp"
|
||||
android:paddingEnd="8dp"
|
||||
android:paddingBottom="2dp"
|
||||
android:textColor="@color/wallet_text_color"
|
||||
android:textSize="16sp" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/iv_item_network_selector_selected"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
app:srcCompat="@drawable/ic_check"
|
||||
android:contentDescription="@null"
|
||||
android:visibility="visible"
|
||||
app:tint="@color/brave_blue_tint_color" />
|
||||
</LinearLayout>
|
||||
@@ -28,6 +28,10 @@
|
||||
|
||||
<color name="onboarding_progressbar_secondary_bg">#212529</color>
|
||||
|
||||
<!-- Day/Night colors -->
|
||||
<color name="brave_wallet_day_night_text_color">@android:color/white</color>
|
||||
<color name="brave_wallet_day_night_icon_color">@android:color/white</color>
|
||||
|
||||
<!-- Text colors -->
|
||||
<color name="brave_theme_hint_text">#84889C</color>
|
||||
|
||||
|
||||
@@ -21,6 +21,10 @@
|
||||
<color name="modern_blue_700">#C22700</color>
|
||||
<color name="dialog_bg_color_dark">@color/toolbar_background_primary_dark</color>
|
||||
|
||||
<!-- Day/Night colors -->
|
||||
<color name="brave_wallet_day_night_text_color">@android:color/black</color>
|
||||
<color name="brave_wallet_day_night_icon_color">@android:color/black</color>
|
||||
|
||||
<!-- Text colors -->
|
||||
<color name="brave_theme_hint_text">#868E96</color>
|
||||
|
||||
|
||||
@@ -2863,6 +2863,9 @@ If you don't accept this request, VPN will not reconnect and your internet conne
|
||||
<message name="IDS_BRAVE_WALLET_ADD_NETWORK_SUBMIT" desc="Brave wallet networks pref add network submit button">
|
||||
Submit
|
||||
</message>
|
||||
<message name="IDS_BRAVE_WALLET_NETWORK_ACTIVITY_TITLE" desc="Network activity toolbar title">
|
||||
Select Network
|
||||
</message>
|
||||
<message name="IDS_CHANGE_AMOUNT" desc="Brave rewards monthly contribution text">
|
||||
Change amount
|
||||
</message>
|
||||
|
||||
Reference in New Issue
Block a user