Add buy-send-swap UI (#9502)

* Add buy-send-swap UI

* Add Strings and resources

* Fix search menu

Add padding for swap UI

* Update colors for dark mode

* Update swap UI

* Refactor resources and warnings
This commit is contained in:
Deep Pandya
2021-07-28 10:37:52 -04:00
committed by GitHub
parent 6a91190d78
commit 8a240faf2f
31 changed files with 758 additions and 55 deletions
+10 -5
View File
@@ -49,7 +49,6 @@ brave_java_resources = [
"java/res/drawable-hdpi/cover_photo.png",
"java/res/drawable-hdpi/disclosure.png",
"java/res/drawable-hdpi/down_arrow.png",
"java/res/drawable-hdpi/duckduckgo.png",
"java/res/drawable-hdpi/ecosia.png",
"java/res/drawable-hdpi/grant_icon.png",
"java/res/drawable-hdpi/group.png",
@@ -143,7 +142,6 @@ brave_java_resources = [
"java/res/drawable-mdpi/cover_photo.png",
"java/res/drawable-mdpi/disclosure.png",
"java/res/drawable-mdpi/down_arrow.png",
"java/res/drawable-mdpi/duckduckgo.png",
"java/res/drawable-mdpi/ecosia.png",
"java/res/drawable-mdpi/grant_icon.png",
"java/res/drawable-mdpi/group.png",
@@ -288,7 +286,6 @@ brave_java_resources = [
"java/res/drawable-xhdpi/cover_photo.png",
"java/res/drawable-xhdpi/disclosure.png",
"java/res/drawable-xhdpi/down_arrow.png",
"java/res/drawable-xhdpi/duckduckgo.png",
"java/res/drawable-xhdpi/ecosia.png",
"java/res/drawable-xhdpi/grant_icon.png",
"java/res/drawable-xhdpi/group.png",
@@ -381,7 +378,6 @@ brave_java_resources = [
"java/res/drawable-xxhdpi/copy_paste.png",
"java/res/drawable-xxhdpi/cover_photo.png",
"java/res/drawable-xxhdpi/disclosure.png",
"java/res/drawable-xxhdpi/duckduckgo.png",
"java/res/drawable-xxhdpi/ecosia.png",
"java/res/drawable-xxhdpi/grant_icon.png",
"java/res/drawable-xxhdpi/group.png",
@@ -473,7 +469,6 @@ brave_java_resources = [
"java/res/drawable-xxxhdpi/copy_paste.png",
"java/res/drawable-xxxhdpi/cover_photo.png",
"java/res/drawable-xxxhdpi/disclosure.png",
"java/res/drawable-xxxhdpi/duckduckgo.png",
"java/res/drawable-xxxhdpi/ecosia.png",
"java/res/drawable-xxxhdpi/grant_icon.png",
"java/res/drawable-xxxhdpi/group.png",
@@ -585,6 +580,7 @@ brave_java_resources = [
"java/res/drawable/ic_add_account_onboarding.xml",
"java/res/drawable/ic_addresses.xml",
"java/res/drawable/ic_appearance.xml",
"java/res/drawable/ic_arrow_downward.xml",
"java/res/drawable/ic_arrow_drop_down_white.xml",
"java/res/drawable/ic_arrow_forward.xml",
"java/res/drawable/ic_back.xml",
@@ -596,6 +592,7 @@ brave_java_resources = [
"java/res/drawable/ic_binance.xml",
"java/res/drawable/ic_brave.xml",
"java/res/drawable/ic_brave_logo.xml",
"java/res/drawable/ic_carat_down.xml",
"java/res/drawable/ic_checkbox_filled.xml",
"java/res/drawable/ic_checkbox_outline.xml",
"java/res/drawable/ic_chevron_left.xml",
@@ -607,6 +604,7 @@ brave_java_resources = [
"java/res/drawable/ic_custom_tabs.xml",
"java/res/drawable/ic_downloads.xml",
"java/res/drawable/ic_eth.xml",
"java/res/drawable/ic_eth_24.xml",
"java/res/drawable/ic_flashdrive.xml",
"java/res/drawable/ic_graphic_brave_wallet_welcome.xml",
"java/res/drawable/ic_graphic_lock.xml",
@@ -633,6 +631,7 @@ brave_java_resources = [
"java/res/drawable/ic_privacy_reports.xml",
"java/res/drawable/ic_qr_code.xml",
"java/res/drawable/ic_rate.xml",
"java/res/drawable/ic_refresh.xml",
"java/res/drawable/ic_rewards.xml",
"java/res/drawable/ic_search.xml",
"java/res/drawable/ic_search_21dp.xml",
@@ -678,6 +677,7 @@ brave_java_resources = [
"java/res/drawable/rewards_image_button.xml",
"java/res/drawable/rounded_corners.xml",
"java/res/drawable/rounded_filled.xml",
"java/res/drawable/rounded_filled_bg_radius_12.xml",
"java/res/drawable/rounded_filled_binance.xml",
"java/res/drawable/rounded_holo_button.xml",
"java/res/drawable/rounded_shape.xml",
@@ -694,6 +694,10 @@ brave_java_resources = [
"java/res/drawable/wallet_radio_button_normal.xml",
"java/res/drawable/wallet_radio_button_selected.xml",
"java/res/drawable/wallet_radio_button_selector.xml",
"java/res/drawable/wallet_swap_radio_button_normal.xml",
"java/res/drawable/wallet_swap_radio_button_selected.xml",
"java/res/drawable/wallet_swap_radio_button_selector.xml",
"java/res/drawable/wallet_swap_radio_group_bg.xml",
"java/res/drawable/wallet_verify_button.xml",
"java/res/drawable/white_rounded_holo_button.xml",
"java/res/font/poppins_light.ttf",
@@ -705,6 +709,7 @@ brave_java_resources = [
"java/res/layout-sw600dp/brave_shields_stats_row.xml",
"java/res/layout/activity_asset_detail.xml",
"java/res/layout/activity_brave_wallet.xml",
"java/res/layout/activity_buy_send_swap.xml",
"java/res/layout/activity_ntp_widget_stack.xml",
"java/res/layout/activity_onboarding.xml",
"java/res/layout/activity_p3a_onboarding.xml",
+3 -2
View File
@@ -260,10 +260,11 @@ if (enable_brave_sync) {
if (brave_wallet_enabled) {
brave_java_sources += [
"../../brave/android/java/org/chromium/chrome/browser/crypto_wallet/AssetDetailActivity.java",
"../../brave/android/java/org/chromium/chrome/browser/crypto_wallet/BraveWalletActivity.java",
"../../brave/android/java/org/chromium/chrome/browser/crypto_wallet/BraveWalletNativeWorker.java",
"../../brave/android/java/org/chromium/chrome/browser/crypto_wallet/BraveWalletObserver.java",
"../../brave/android/java/org/chromium/chrome/browser/crypto_wallet/activities/AssetDetailActivity.java",
"../../brave/android/java/org/chromium/chrome/browser/crypto_wallet/activities/BraveWalletActivity.java",
"../../brave/android/java/org/chromium/chrome/browser/crypto_wallet/activities/BuySendSwapActivity.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/RecoveryPhraseAdapter.java",
+3 -3
View File
@@ -59,17 +59,17 @@
</activity>
<activity android:name="org.chromium.chrome.browser.crypto_wallet.CryptoWalletActivity"
<activity android:name="org.chromium.chrome.browser.crypto_wallet.activities.BraveWalletActivity"
android:theme="@style/Theme.Chromium.Activity"
android:screenOrientation="sensorPortrait"
tools:ignore="LockedOrientationActivity"/>
<activity android:name="org.chromium.chrome.browser.crypto_wallet.BraveWalletActivity"
<activity android:name="org.chromium.chrome.browser.crypto_wallet.activities.AssetDetailActivity"
android:theme="@style/Theme.Chromium.Activity"
android:screenOrientation="sensorPortrait"
tools:ignore="LockedOrientationActivity"/>
<activity android:name="org.chromium.chrome.browser.crypto_wallet.AssetDetailActivity"
<activity android:name="org.chromium.chrome.browser.crypto_wallet.activities.BuySendSwapActivity"
android:theme="@style/Theme.Chromium.Activity"
android:screenOrientation="sensorPortrait"
tools:ignore="LockedOrientationActivity"/>
@@ -67,7 +67,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.compositor.layouts.phone.StackLayout;
import org.chromium.chrome.browser.crypto_wallet.BraveWalletActivity;
import org.chromium.chrome.browser.crypto_wallet.activities.BraveWalletActivity;
import org.chromium.chrome.browser.dependency_injection.ChromeActivityComponent;
import org.chromium.chrome.browser.flags.ChromeSwitches;
import org.chromium.chrome.browser.fullscreen.BrowserControlsManager;
@@ -3,14 +3,18 @@
* 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;
package org.chromium.chrome.browser.crypto_wallet.activities;
import android.annotation.SuppressLint;
import android.os.Bundle;
import android.view.MenuItem;
import android.view.MotionEvent;
import android.view.View;
import android.widget.RadioGroup;
import android.widget.TextView;
import androidx.appcompat.widget.Toolbar;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
@@ -39,6 +43,10 @@ public class AssetDetailActivity
protected void triggerLayoutInflation() {
setContentView(R.layout.activity_asset_detail);
Toolbar toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
TextView assetTitleText = findViewById(R.id.asset_title_text);
assetTitleText.setText(this.getText(R.string.eth_name));
@@ -67,6 +75,7 @@ public class AssetDetailActivity
chartES.setColors(new int[] {getResources().getColor(R.color.wallet_asset_graph_color)});
chartES.setOnTouchListener(new View.OnTouchListener() {
@Override
@SuppressLint("ClickableViewAccessibility")
public boolean onTouch(View v, MotionEvent event) {
SmoothLineChartEquallySpaced chartES = (SmoothLineChartEquallySpaced) v;
if (chartES == null) {
@@ -87,6 +96,16 @@ public class AssetDetailActivity
onInitialLayoutInflationComplete();
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
finish();
return true;
}
return super.onOptionsItemSelected(item);
}
@Override
public void finishNativeInitialization() {
super.finishNativeInitialization();
@@ -3,7 +3,7 @@
* 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;
package org.chromium.chrome.browser.crypto_wallet.activities;
import static org.chromium.chrome.browser.crypto_wallet.util.Utils.ONBOARDING_ACTION;
import static org.chromium.chrome.browser.crypto_wallet.util.Utils.RESTORE_WALLET_ACTION;
@@ -0,0 +1,88 @@
/* Copyright (c) 2021 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 android.os.Bundle;
import android.view.MenuItem;
import android.widget.TextView;
import androidx.appcompat.widget.Toolbar;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.crypto_wallet.BraveWalletNativeWorker;
import org.chromium.chrome.browser.crypto_wallet.BraveWalletObserver;
import org.chromium.chrome.browser.init.AsyncInitializationActivity;
public class BuySendSwapActivity
extends AsyncInitializationActivity implements BraveWalletObserver {
@Override
protected void onDestroy() {
BraveWalletNativeWorker.getInstance().removeObserver(this);
super.onDestroy();
}
@Override
protected void triggerLayoutInflation() {
setContentView(R.layout.activity_buy_send_swap);
Toolbar toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
TextView accountNameText = findViewById(R.id.account_name_text);
accountNameText.setText("Account 1");
TextView accountValueText = findViewById(R.id.account_value_text);
accountValueText.setText("0xFCdF***DDee");
TextView fromValueText = findViewById(R.id.from_value_text);
fromValueText.setText("0xFCdF***DDee");
TextView fromBalanceText = findViewById(R.id.from_balance_text);
fromBalanceText.setText("Balance: 1.2832");
TextView fromAssetText = findViewById(R.id.from_asset_text);
fromAssetText.setText("ETH");
TextView toValueText = findViewById(R.id.to_value_text);
toValueText.setText("561.121");
TextView toBalanceText = findViewById(R.id.to_balance_text);
toBalanceText.setText("Balance: 0");
TextView toAssetText = findViewById(R.id.to_asset_text);
toAssetText.setText("ETH");
TextView marketPriceValueText = findViewById(R.id.market_price_value_text);
marketPriceValueText.setText("0.0005841");
TextView slippingToleranceValueText = findViewById(R.id.slipping_tolerance_value_text);
slippingToleranceValueText.setText("2%");
onInitialLayoutInflationComplete();
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
finish();
return true;
}
return super.onOptionsItemSelected(item);
}
@Override
public void finishNativeInitialization() {
super.finishNativeInitialization();
BraveWalletNativeWorker.getInstance().addObserver(this);
}
@Override
public boolean shouldStartGpuProcess() {
return true;
}
}
@@ -15,7 +15,7 @@ import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.crypto_wallet.AssetDetailActivity;
import org.chromium.chrome.browser.crypto_wallet.activities.AssetDetailActivity;
public class WalletCoinAdapter extends RecyclerView.Adapter<WalletCoinAdapter.ViewHolder> {
private Context context;
@@ -5,6 +5,7 @@
package org.chromium.chrome.browser.crypto_wallet.fragments;
import android.annotation.SuppressLint;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.MotionEvent;
@@ -40,6 +41,7 @@ public class CryptoChildFragment extends Fragment {
view.setOnTouchListener(new View.OnTouchListener() {
@Override
@SuppressLint("ClickableViewAccessibility")
public boolean onTouch(View v, MotionEvent event) {
SmoothLineChartEquallySpaced chartES = view.findViewById(R.id.line_chart);
if (chartES == null) {
@@ -7,10 +7,12 @@ package org.chromium.chrome.browser.crypto_wallet.fragments;
import android.annotation.SuppressLint;
import android.app.Dialog;
import android.content.Intent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewParent;
import android.widget.LinearLayout;
import androidx.annotation.NonNull;
import androidx.fragment.app.FragmentManager;
@@ -20,8 +22,10 @@ import com.google.android.material.bottomsheet.BottomSheetDialogFragment;
import org.chromium.base.Log;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.crypto_wallet.activities.BuySendSwapActivity;
public class SwapBottomSheetDialogFragment extends BottomSheetDialogFragment {
public class SwapBottomSheetDialogFragment
extends BottomSheetDialogFragment implements View.OnClickListener {
public static final String TAG_FRAGMENT = SwapBottomSheetDialogFragment.class.getName();
public static SwapBottomSheetDialogFragment newInstance() {
@@ -52,8 +56,28 @@ public class SwapBottomSheetDialogFragment extends BottomSheetDialogFragment {
@SuppressLint("InflateParams")
final View view =
LayoutInflater.from(getContext()).inflate(R.layout.swap_bottom_sheet, null);
LinearLayout buyLayout = view.findViewById(R.id.buy_layout);
buyLayout.setOnClickListener(this);
LinearLayout sendLayout = view.findViewById(R.id.send_layout);
sendLayout.setOnClickListener(this);
LinearLayout swapLayout = view.findViewById(R.id.swap_layout);
swapLayout.setOnClickListener(this);
dialog.setContentView(view);
ViewParent parent = view.getParent();
((View) parent).getLayoutParams().height = ViewGroup.LayoutParams.WRAP_CONTENT;
}
@Override
public void onClick(View view) {
openBuySendSwapActivity();
dismiss();
}
private void openBuySendSwapActivity() {
assert getActivity() != null;
Intent buySendSwapActivityIntent = new Intent(getActivity(), BuySendSwapActivity.class);
getActivity().startActivity(buySendSwapActivityIntent);
}
}
@@ -61,6 +61,12 @@ public class SmoothLineChartEquallySpaced extends View {
mPath = new Path();
}
@Override
public boolean performClick() {
super.performClick();
return true;
}
public void setData(float[] values) {
mValues = values;
@@ -158,7 +164,7 @@ public class SmoothLineChartEquallySpaced extends View {
paint.setARGB(255, 0, 0, 0);
paint.setStrokeWidth(2f);
canvas.drawLine(mCurrentLineX, 35, mCurrentLineX, canvas.getHeight() - 10, paint);
canvas.drawLine(mCurrentLineX, 35, mCurrentLineX, getHeight() - 10, paint);
float possibleValue =
mValues.length > 1 ? (mCurrentLineX / (width / mValues.length)) : 0;
if (possibleValue < 0) {
Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 46 KiB

@@ -0,0 +1,15 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="38dp"
android:height="38dp"
android:viewportWidth="38"
android:viewportHeight="38">
<path
android:pathData="M18.8001,25.9887C18.582,25.9887 18.3733,25.8996 18.2225,25.7422L12.2224,19.4809C11.9167,19.1619 11.9275,18.6555 12.2465,18.3498C12.5655,18.0441 13.0719,18.0549 13.3776,18.3739L18.0001,23.1976L18.0001,13.1887C18.0001,12.7468 18.3582,12.3887 18.8001,12.3887C19.2419,12.3887 19.6001,12.7468 19.6001,13.1887L19.6001,23.1976L24.2224,18.3739C24.5281,18.0549 25.0345,18.0441 25.3535,18.3498C25.6725,18.6555 25.6833,19.1619 25.3776,19.4809L19.3777,25.7422C19.2268,25.8996 19.0182,25.9887 18.8001,25.9887Z"
android:fillColor="@color/wallet_text_color"
android:fillType="evenOdd"/>
<path
android:strokeWidth="1"
android:pathData="M19,19m-18.5,0a18.5,18.5 0,1 1,37 0a18.5,18.5 0,1 1,-37 0"
android:fillColor="#00000000"
android:strokeColor="#5E6175"/>
</vector>
@@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="12dp"
android:height="12dp"
android:viewportWidth="12"
android:viewportHeight="12">
<path
android:pathData="M6,7.4655L10.9065,3.3768C11.1894,3.1411 11.6098,3.1793 11.8455,3.4621C12.0812,3.745 12.043,4.1653 11.7601,4.4011L6.4268,8.8455C6.1796,9.0515 5.8204,9.0515 5.5732,8.8455L0.2399,4.4011C-0.043,4.1653 -0.0812,3.745 0.1545,3.4621C0.3902,3.1793 0.8106,3.1411 1.0935,3.3768L6,7.4655Z"
android:fillColor="#C2C4CF"/>
</vector>
+31
View File
@@ -0,0 +1,31 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:pathData="M12,24C18.6274,24 24,18.6274 24,12C24,5.3726 18.6274,0 12,0C5.3726,0 0,5.3726 0,12C0,18.6274 5.3726,24 12,24Z"
android:fillColor="#627EEA"/>
<path
android:pathData="M12.3735,3V9.6525L17.9963,12.165L12.3735,3Z"
android:fillColor="#ffffff"
android:fillAlpha="0.602"/>
<path
android:pathData="M12.3735,3L6.75,12.165L12.3735,9.6525V3Z"
android:fillColor="#ffffff"/>
<path
android:pathData="M12.3735,16.476V20.9963L18,13.212L12.3735,16.476Z"
android:fillColor="#ffffff"
android:fillAlpha="0.602"/>
<path
android:pathData="M12.3735,20.9963V16.4753L6.75,13.212L12.3735,20.9963Z"
android:fillColor="#ffffff"/>
<path
android:pathData="M12.3735,15.4298L17.9963,12.1651L12.3735,9.654V15.4298Z"
android:fillColor="#ffffff"
android:fillAlpha="0.2"/>
<path
android:pathData="M6.75,12.1651L12.3735,15.4298V9.654L6.75,12.1651Z"
android:fillColor="#ffffff"
android:fillAlpha="0.602"/>
</vector>
+4
View File
@@ -0,0 +1,4 @@
<vector android:height="24dp" android:viewportHeight="23"
android:viewportWidth="23" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@color/wallet_text_color" android:fillType="evenOdd" android:pathData="M21.0832,11.5001C21.0832,15.89 18.2494,19.8145 14.1918,21.0421C14.0998,21.07 14.0059,21.0835 13.9139,21.0835C13.5028,21.0835 13.1223,20.8166 12.9977,20.4023C12.8434,19.8964 13.13,19.3617 13.6369,19.2075C16.8924,18.2228 19.1665,15.0527 19.1665,11.5001C19.1665,8.1682 17.2211,5.4616 14.2742,4.3651L15.2316,6.2797C15.4693,6.7528 15.2766,7.329 14.8032,7.566C14.6662,7.6344 14.5195,7.6672 14.3758,7.6672C14.0241,7.6672 13.6858,7.4735 13.5171,7.1372L11.6005,3.3043C11.3638,2.8312 11.5564,2.255 12.0298,2.0189L15.8631,0.1014C16.3385,-0.1356 16.9125,0.0571 17.1483,0.5302C17.3859,1.0033 17.1933,1.5795 16.7199,1.8156L15.1147,2.6182C18.6835,4.0404 21.0832,7.459 21.0832,11.5001ZM10.9699,20.9823L7.1365,22.8988C6.9995,22.9672 6.8529,23 6.7091,23C6.3574,23 6.0191,22.8063 5.8505,22.4701C5.6137,21.997 5.8064,21.4208 6.2798,21.1847L7.8831,20.383C4.3162,18.9618 1.9165,15.5432 1.9165,11.5001C1.9165,7.1112 4.7503,3.1877 8.8069,1.9582C9.3139,1.805 9.8486,2.0912 10.002,2.597C10.1563,3.1038 9.8697,3.6386 9.3637,3.7928C6.1073,4.7794 3.8332,7.9485 3.8332,11.5001C3.8332,14.835 5.7796,17.5425 8.7255,18.6371L7.7671,16.7206C7.5304,16.2465 7.7231,15.6713 8.1965,15.4343C8.6708,15.1972 9.2458,15.3909 9.4816,15.863L11.3983,19.697C11.6359,20.1701 11.4433,20.7453 10.9699,20.9823Z"/>
</vector>
@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:padding="12dp"
android:shape="rectangle">
<corners android:radius="12dp" />
<solid
android:color="@color/wallet_toolbar_bg_color" />
</shape>
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@android:color/transparent"/>
<corners android:radius="7dp"/>
</shape>
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@color/wallet_edittext_outline_color"/>
<corners android:radius="7dp"/>
</shape>
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="false" android:drawable="@drawable/wallet_swap_radio_button_normal" />
<item android:state_checked="true" android:drawable="@drawable/wallet_swap_radio_button_selected" />
</selector>
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@color/wallet_toolbar_bg_color"/>
<corners android:radius="9dp"/>
</shape>
@@ -9,50 +9,56 @@
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:layout_marginBottom="16dp"
android:orientation="vertical">
<LinearLayout
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:layout_height="?attr/actionBarSize"
android:background="@color/wallet_toolbar_bg_color"
android:translationZ="10dp"
android:layout_marginBottom="8dp"
android:orientation="horizontal">
android:gravity="center_vertical">
<TextView
android:id="@+id/asset_title_text"
android:layout_width="wrap_content"
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="20sp"
android:textColor="@color/wallet_text_color"
android:gravity="center_vertical"
app:drawableStartCompat="@drawable/ic_eth"
android:drawablePadding="12dp"
android:layout_marginEnd="20dp"/>
android:orientation="horizontal">
<TextView
android:id="@+id/asset_network_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="12sp"
android:gravity="center_vertical"
android:text="@string/mainnet"
android:textColor="@color/wallet_text_color"
android:paddingStart="8dp"
android:paddingEnd="8dp"
android:paddingTop="2dp"
android:paddingBottom="2dp"
android:clickable="true"
android:focusable="true"
android:foreground="?android:attr/selectableItemBackgroundBorderless"
android:background="@drawable/rounded_white_holo_bg"
app:drawableEndCompat="@drawable/ic_circle_down"
android:drawablePadding="8dp"
android:layout_marginEnd="20dp"/>
<TextView
android:id="@+id/asset_title_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="20sp"
android:textColor="@color/wallet_text_color"
android:gravity="center_vertical"
app:drawableStartCompat="@drawable/ic_eth"
android:drawablePadding="12dp"
android:layout_marginEnd="20dp"/>
</LinearLayout>
<TextView
android:id="@+id/asset_network_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="12sp"
android:gravity="center_vertical"
android:text="@string/mainnet"
android:textColor="@color/wallet_text_color"
android:paddingStart="8dp"
android:paddingEnd="8dp"
android:paddingTop="2dp"
android:paddingBottom="2dp"
android:clickable="true"
android:focusable="true"
android:foreground="?android:attr/selectableItemBackgroundBorderless"
android:background="@drawable/rounded_white_holo_bg"
app:drawableEndCompat="@drawable/ic_circle_down"
android:drawablePadding="8dp"
android:layout_marginEnd="20dp"/>
</LinearLayout>
</androidx.appcompat.widget.Toolbar>
<TextView
android:id="@+id/asset_price_text"
@@ -29,8 +29,7 @@
android:translationZ="10dp"
app:titleTextColor="@color/wallet_text_color"
app:collapseIcon="@drawable/ic_baseline_arrow_back_24"
app:layout_scrollFlags="scroll|enterAlways|snap"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />
app:layout_scrollFlags="scroll|enterAlways|snap" />
</com.google.android.material.appbar.AppBarLayout>
<com.google.android.material.tabs.TabLayout
@@ -0,0 +1,436 @@
<?xml version="1.0" encoding="utf-8"?>
<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"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/wallet_bg"
android:fillViewport="true">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:layout_marginBottom="16dp"
android:background="@color/wallet_toolbar_bg_color"
android:translationZ="10dp"
android:gravity="center_vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<ImageView
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_gravity="center_vertical"
app:srcCompat="@drawable/ic_eth_24"
android:layout_marginEnd="8dp"
android:contentDescription="@null" />
<LinearLayout
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:orientation="vertical">
<TextView
android:id="@+id/account_name_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/wallet_text_color"
android:textSize="14sp"/>
<TextView
android:id="@+id/account_value_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/wallet_secondary_text_color"
android:textSize="12sp"/>
</LinearLayout>
<TextView
android:id="@+id/asset_network_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="12sp"
android:textColor="@color/wallet_text_color"
android:layout_gravity="center_vertical"
android:text="@string/mainnet"
android:paddingStart="8dp"
android:paddingEnd="8dp"
android:paddingTop="2dp"
android:paddingBottom="2dp"
android:clickable="true"
android:focusable="true"
android:foreground="?android:attr/selectableItemBackgroundBorderless"
android:background="@drawable/rounded_white_holo_bg"
app:drawableEndCompat="@drawable/ic_circle_down"
android:drawablePadding="8dp"
android:layout_marginEnd="20dp"/>
</LinearLayout>
</androidx.appcompat.widget.Toolbar>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="8dp"
android:paddingBottom="8dp"
android:paddingStart="14dp"
android:paddingEnd="14dp"
android:layout_marginStart="14dp"
android:layout_marginEnd="14dp"
android:layout_marginBottom="8dp"
android:background="@drawable/rounded_filled_bg_radius_12"
android:orientation="horizontal"
android:baselineAligned="false">
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/from"
android:textColor="@color/wallet_secondary_text_color"
android:textSize="14sp"/>
<TextView
android:id="@+id/from_value_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/wallet_text_color"
android:textSize="20sp"/>
<RadioGroup
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginEnd="16dp"
android:orientation="horizontal">
<RadioButton
android:id="@+id/per_25_radiobutton"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_margin="4dp"
android:padding="2dp"
android:background="@drawable/wallet_radio_button_selector"
android:gravity="center"
android:textColor="@color/crypto_wallet_radiobutton_color_selector"
android:checked="true"
android:button="@null"
android:textSize="14sp"
android:textStyle="bold"
android:text="@string/percentage_25" />
<RadioButton
android:id="@+id/per_50_radiobutton"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:button="@null"
android:layout_margin="4dp"
android:padding="2dp"
android:background="@drawable/wallet_radio_button_selector"
android:gravity="center"
android:textColor="@color/crypto_wallet_radiobutton_color_selector"
android:textSize="14sp"
android:textStyle="bold"
android:text="@string/percentage_50" />
<RadioButton
android:id="@+id/per_75_radiobutton"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:button="@null"
android:layout_margin="4dp"
android:padding="2dp"
android:background="@drawable/wallet_radio_button_selector"
android:gravity="center"
android:textSize="14sp"
android:textStyle="bold"
android:textColor="@color/crypto_wallet_radiobutton_color_selector"
android:text="@string/percentage_75" />
<RadioButton
android:id="@+id/all_radiobutton"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:button="@null"
android:layout_margin="4dp"
android:padding="2dp"
android:background="@drawable/wallet_radio_button_selector"
android:gravity="center"
android:textSize="14sp"
android:textStyle="bold"
android:textColor="@color/crypto_wallet_radiobutton_color_selector"
android:text="@string/all" />
</RadioGroup>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/from_balance_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="4dp"
android:textColor="@color/wallet_secondary_text_color"
android:textSize="12sp"/>
<TextView
android:id="@+id/from_asset_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/wallet_text_color"
android:textSize="20sp"
android:gravity="center_vertical"
android:clickable="true"
android:focusable="true"
android:foreground="?android:attr/selectableItemBackgroundBorderless"
android:drawablePadding="8dp"
app:drawableStartCompat="@drawable/ic_eth_24"
app:drawableEndCompat="@drawable/ic_carat_down" />
</LinearLayout>
</LinearLayout>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@null"
android:layout_gravity="center_horizontal"
app:srcCompat="@drawable/ic_arrow_downward"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="8dp"
android:paddingBottom="8dp"
android:paddingStart="14dp"
android:paddingEnd="14dp"
android:layout_marginStart="14dp"
android:layout_marginEnd="14dp"
android:layout_marginBottom="8dp"
android:layout_marginTop="8dp"
android:background="@drawable/rounded_filled_bg_radius_12"
android:orientation="horizontal"
android:baselineAligned="false">
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/to_estimate"
android:textColor="@color/wallet_secondary_text_color"
android:textSize="14sp"/>
<TextView
android:id="@+id/to_value_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/wallet_text_color"
android:textSize="20sp"/>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/to_balance_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="4dp"
android:textColor="@color/wallet_secondary_text_color"
android:textSize="12sp"/>
<TextView
android:id="@+id/to_asset_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/wallet_text_color"
android:textSize="20sp"
android:gravity="center_vertical"
android:clickable="true"
android:focusable="true"
android:foreground="?android:attr/selectableItemBackgroundBorderless"
android:drawablePadding="8dp"
app:drawableStartCompat="@drawable/ic_eth_24"
app:drawableEndCompat="@drawable/ic_carat_down" />
</LinearLayout>
</LinearLayout>
<RadioGroup
android:id="@+id/buy_send_swap_type_radio_group"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:background="@drawable/wallet_swap_radio_group_bg"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:layout_marginBottom="10dp"
android:layout_marginTop="10dp"
android:orientation="horizontal">
<RadioButton
android:id="@+id/market_radio"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:background="@drawable/wallet_swap_radio_button_selector"
android:gravity="center"
android:textColor="@color/wallet_text_color"
android:button="@null"
android:checked="true"
android:textSize="16sp"
android:paddingTop="8dp"
android:paddingBottom="8dp"
android:text="@string/market" />
<RadioButton
android:id="@+id/limit_radio"
android:layout_width="0dp"
android:layout_weight="1"
android:button="@null"
android:layout_height="wrap_content"
android:background="@drawable/wallet_swap_radio_button_selector"
android:gravity="center"
android:textSize="16sp"
android:paddingTop="8dp"
android:paddingBottom="8dp"
android:textColor="@color/wallet_text_color"
android:text="@string/limit" />
</RadioGroup>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="8dp"
android:paddingBottom="8dp"
android:paddingStart="14dp"
android:paddingEnd="14dp"
android:layout_marginStart="14dp"
android:layout_marginEnd="14dp"
android:layout_marginBottom="8dp"
android:layout_marginTop="8dp"
android:orientation="horizontal">
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/market_price_in"
android:textColor="@color/wallet_secondary_text_color"
android:textSize="14sp"/>
<TextView
android:id="@+id/market_price_value_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/wallet_text_color"
android:textSize="20sp"/>
</LinearLayout>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@null"
android:layout_gravity="center_vertical"
app:srcCompat="@drawable/ic_refresh"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="8dp"
android:paddingBottom="8dp"
android:paddingStart="14dp"
android:paddingEnd="14dp"
android:layout_marginStart="14dp"
android:layout_marginEnd="14dp"
android:layout_marginBottom="24dp"
android:layout_marginTop="8dp"
android:background="@drawable/rounded_filled_bg_radius_12"
android:orientation="horizontal">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/slipping_tolerance"
android:textColor="@color/wallet_secondary_text_color"
android:textSize="14sp"/>
<TextView
android:id="@+id/slipping_tolerance_value_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="4dp"
android:textColor="@color/wallet_text_color"
android:drawablePadding="4dp"
android:textSize="12sp"
app:drawableEndCompat="@drawable/ic_carat_down" />
</LinearLayout>
<Button
android:id="@+id/btn_swap"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:gravity="center"
android:background="@drawable/crypto_wallet_blue_button"
android:text="@string/swap"
android:textAllCaps="false"
android:textSize="16sp"
android:paddingTop="8dp"
android:paddingBottom="8dp"
android:paddingStart="16dp"
android:paddingEnd="16dp"
android:layout_marginBottom="8dp"
android:textColor="@android:color/white"
style="?android:attr/borderlessButtonStyle"/>
</LinearLayout>
</androidx.core.widget.NestedScrollView>
@@ -8,6 +8,7 @@
android:orientation="vertical">
<LinearLayout
android:id="@+id/buy_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?android:attr/selectableItemBackground"
@@ -43,6 +44,7 @@
</LinearLayout>
<LinearLayout
android:id="@+id/send_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?android:attr/selectableItemBackground"
@@ -78,6 +80,7 @@
</LinearLayout>
<LinearLayout
android:id="@+id/swap_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?android:attr/selectableItemBackground"
+1 -1
View File
@@ -9,7 +9,7 @@
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/search"
android:title="@string/search_title"
app:srcCompat="@drawable/ic_search_21dp"
android:icon="@drawable/ic_search_21dp"
app:showAsAction="collapseActionView|always"
app:iconTint="@color/wallet_text_color"
app:actionViewClass="androidx.appcompat.widget.SearchView" />
@@ -1852,6 +1852,33 @@ until they verify, or until 90 days have passed.
<message name="IDS_MAINNET" desc="Brave Wallet network selection button text">
Mainnet
</message>
<message name="IDS_MARKET_PRICE_IN" desc="Brave Wallet buy-send-swap section text">
Market Price in ETH
</message>
<message name="IDS_FROM" desc="Brave Wallet buy-send-swap section text">
From
</message>
<message name="IDS_PERCENTAGE_25" desc="Brave Wallet buy-send-swap section text">
25%
</message>
<message name="IDS_PERCENTAGE_50" desc="Brave Wallet buy-send-swap section text">
50%
</message>
<message name="IDS_PERCENTAGE_75" desc="Brave Wallet buy-send-swap section text">
75%
</message>
<message name="IDS_TO_ESTIMATE" desc="Brave Wallet buy-send-swap section text">
To (estimate)
</message>
<message name="IDS_LIMIT" desc="Brave Wallet buy-send-swap section text">
Limit
</message>
<message name="IDS_MARKET" desc="Brave Wallet buy-send-swap section text">
Market
</message>
<message name="IDS_SLIPPING_TOLERANCE" desc="Brave Wallet buy-send-swap section text">
Slippage tolerance
</message>
</messages>
</release>
</grit>