mirror of
https://github.com/pezkuwichain/pezkuwi-wallet-android.git
synced 2026-04-28 23:38:00 +00:00
Initial commit: Pezkuwi Wallet Android
Security hardened release: - Code obfuscation enabled (minifyEnabled=true, shrinkResources=true) - Sensitive files excluded (google-services.json, keystores) - Branch.io key moved to BuildConfig placeholder - Updated dependencies: OkHttp 4.12.0, Gson 2.10.1, BouncyCastle 1.77 - Comprehensive ProGuard rules for crypto wallet - Navigation 2.7.7, Lifecycle 2.7.0, ConstraintLayout 2.1.4
This commit is contained in:
Binary file not shown.
|
After Width: | Height: | Size: 3.4 KiB |
@@ -0,0 +1,207 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<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:background="@color/secondary_screen_background">
|
||||
|
||||
<io.novafoundation.nova.common.view.Toolbar
|
||||
android:id="@+id/swapMainSettingsToolbar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
app:dividerVisible="false"
|
||||
app:iconRight="@drawable/ic_options"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:titleText="@string/wallet_asset_swap" />
|
||||
|
||||
<ScrollView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="0dp"
|
||||
android:layout_weight="1"
|
||||
android:clipToPadding="false"
|
||||
android:paddingBottom="16dp">
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
tools:background="@color/secondary_screen_background">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/swapMainSettingsPayTitle"
|
||||
style="@style/TextAppearance.NovaFoundation.Regular.Footnote"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginHorizontal="16dp"
|
||||
android:layout_marginTop="16dp"
|
||||
android:text="@string/fragment_swap_main_settings_pay_title"
|
||||
android:textColor="@color/text_secondary"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
|
||||
<io.novafoundation.nova.feature_wallet_api.presentation.view.amount.MaxAmountView
|
||||
android:id="@+id/swapMainSettingsMaxAmount"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginHorizontal="16dp"
|
||||
android:layout_marginTop="16dp"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<io.novafoundation.nova.feature_swap_impl.presentation.common.views.SwapAmountInputView
|
||||
android:id="@+id/swapMainSettingsPayInput"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginHorizontal="16dp"
|
||||
android:layout_marginTop="8dp"
|
||||
app:layout_constraintTop_toBottomOf="@id/swapMainSettingsPayTitle" />
|
||||
|
||||
<io.novafoundation.nova.common.view.PrimaryButton
|
||||
android:id="@+id/swapMainSettingsGetAssetIn"
|
||||
style="@style/Widget.Nova.Button.AccentSecondaryTransparent.Small"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginHorizontal="16dp"
|
||||
android:layout_marginTop="12dp"
|
||||
android:layout_marginBottom="24dp"
|
||||
app:layout_constraintTop_toBottomOf="@+id/swapMainSettingsPayInput"
|
||||
tools:text="Get KSM" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/swapMainSettingsFlip"
|
||||
android:layout_width="40dp"
|
||||
android:layout_height="40dp"
|
||||
android:scaleType="centerInside"
|
||||
android:src="@drawable/ic_flip_swap"
|
||||
app:layout_constraintBottom_toTopOf="@+id/swapMainSettingsReceiveInput"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/swapMainSettingsGetAssetIn" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/swapMainSettingsReceiveTitle"
|
||||
style="@style/TextAppearance.NovaFoundation.Regular.Footnote"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginHorizontal="16dp"
|
||||
android:layout_marginTop="24dp"
|
||||
android:text="@string/fragment_swap_main_settings_receive_title"
|
||||
android:textColor="@color/text_secondary"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/swapMainSettingsGetAssetIn" />
|
||||
|
||||
<io.novafoundation.nova.feature_swap_impl.presentation.common.views.SwapAmountInputView
|
||||
android:id="@+id/swapMainSettingsReceiveInput"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginHorizontal="16dp"
|
||||
android:layout_marginTop="8dp"
|
||||
app:layout_constraintTop_toBottomOf="@id/swapMainSettingsReceiveTitle" />
|
||||
|
||||
<io.novafoundation.nova.common.view.AlertView
|
||||
android:id="@+id/swapMainSettingsAlert"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginHorizontal="16dp"
|
||||
android:layout_marginTop="16dp"
|
||||
android:text="@string/swap_error_pair_not_supported"
|
||||
android:visibility="gone"
|
||||
app:alertMode="error"
|
||||
app:layout_constraintTop_toBottomOf="@+id/swapMainSettingsReceiveInput"
|
||||
app:styleIcon="@drawable/ic_close_circle"
|
||||
app:styleIconTint="@color/icon_negative" />
|
||||
|
||||
<io.novafoundation.nova.common.view.ExpandableView
|
||||
android:id="@+id/swapMainSettingsDetails"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="16dp"
|
||||
app:chevronId="@+id/swapMainSettingsDetailsChevron"
|
||||
app:expandableId="@+id/swapMainSettingsDetailsContainer"
|
||||
app:layout_constraintTop_toBottomOf="@+id/swapMainSettingsAlert">
|
||||
|
||||
<TextView
|
||||
style="@style/TextAppearance.NovaFoundation.Regular.Footnote"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginHorizontal="16dp"
|
||||
android:layout_marginStart="16dp"
|
||||
android:text="@string/fragment_swap_main_settings_details_title"
|
||||
android:textColor="@color/text_secondary"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/swapMainSettingsDetailsChevron"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="@+id/swapMainSettingsDetailsChevron" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/swapMainSettingsDetailsChevron"
|
||||
android:layout_width="24dp"
|
||||
android:layout_height="24dp"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:scaleType="centerInside"
|
||||
android:src="@drawable/ic_chevron_up"
|
||||
app:layout_constraintBottom_toTopOf="@+id/swapMainSettingsReceiveInput"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/swapMainSettingsPayInput"
|
||||
app:tint="@color/icon_secondary" />
|
||||
|
||||
<FrameLayout
|
||||
android:id="@+id/swapMainSettingsDetailsContainer"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingHorizontal="16dp"
|
||||
android:paddingTop="8dp"
|
||||
app:layout_constraintTop_toBottomOf="@+id/swapMainSettingsDetailsChevron">
|
||||
|
||||
<io.novafoundation.nova.common.view.TableView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<io.novafoundation.nova.common.view.TableCellView
|
||||
android:id="@+id/swapMainSettingsDetailsRate"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
app:title="@string/swap_rate_title"
|
||||
app:titleIcon="@drawable/ic_info" />
|
||||
|
||||
<io.novafoundation.nova.feature_swap_impl.presentation.common.route.SwapRouteTableCellView
|
||||
android:id="@+id/swapMainSettingsRoute"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
app:titleIcon="@drawable/ic_info" />
|
||||
|
||||
<io.novafoundation.nova.common.view.TableCellView
|
||||
android:id="@+id/swapMainSettingsExecutionTime"
|
||||
app:title="@string/swap_execution_time"
|
||||
android:clickable="true"
|
||||
android:focusable="true"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content" />
|
||||
|
||||
<io.novafoundation.nova.feature_wallet_api.presentation.view.FeeView
|
||||
android:id="@+id/swapMainSettingsDetailsNetworkFee"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
app:title="@string/common_total_fee"
|
||||
app:titleIcon="@drawable/ic_info" />
|
||||
|
||||
</io.novafoundation.nova.common.view.TableView>
|
||||
|
||||
</FrameLayout>
|
||||
|
||||
</io.novafoundation.nova.common.view.ExpandableView>
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
</ScrollView>
|
||||
|
||||
<io.novafoundation.nova.common.view.PrimaryButton
|
||||
android:id="@+id/swapMainSettingsContinue"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginHorizontal="16dp"
|
||||
android:layout_marginBottom="16dp"
|
||||
android:enabled="false"
|
||||
tools:text="Enter amount" />
|
||||
|
||||
</LinearLayout>
|
||||
@@ -0,0 +1,21 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<FrameLayout 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">
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/swapRouteContent"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
|
||||
tools:listitem="@layout/item_route_swap" />
|
||||
|
||||
<ProgressBar
|
||||
android:id="@+id/swapRouteProgress"
|
||||
style="@style/Widget.Nova.ProgressBar.Indeterminate"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center" />
|
||||
</FrameLayout>
|
||||
@@ -0,0 +1,125 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout 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"
|
||||
tools:background="@color/secondary_screen_background"
|
||||
android:orientation="vertical">
|
||||
|
||||
<io.novafoundation.nova.common.view.Toolbar
|
||||
android:id="@+id/swapConfirmationToolbar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
app:dividerVisible="false"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:titleText="@string/wallet_asset_swap" />
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/linearLayout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="12dp"
|
||||
android:orientation="vertical"
|
||||
app:layout_constraintTop_toBottomOf="@+id/swapConfirmationToolbar">
|
||||
|
||||
<io.novafoundation.nova.feature_swap_api.presentation.view.SwapAssetsView
|
||||
android:id="@+id/swapConfirmationAssets"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingHorizontal="16dp" />
|
||||
|
||||
<io.novafoundation.nova.common.view.TableView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginHorizontal="16dp"
|
||||
android:layout_marginTop="8dp">
|
||||
|
||||
<io.novafoundation.nova.common.view.TableCellView
|
||||
android:id="@+id/swapConfirmationRate"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
app:title="@string/swap_rate_title"
|
||||
app:titleIcon="@drawable/ic_info" />
|
||||
|
||||
<io.novafoundation.nova.common.view.TableCellView
|
||||
android:id="@+id/swapConfirmationPriceDifference"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
app:title="@string/swap_price_difference_title"
|
||||
app:titleIcon="@drawable/ic_info" />
|
||||
|
||||
<io.novafoundation.nova.common.view.TableCellView
|
||||
android:id="@+id/swapConfirmationSlippage"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
app:title="@string/swap_slippage_title"
|
||||
app:titleIcon="@drawable/ic_info" />
|
||||
|
||||
<io.novafoundation.nova.feature_swap_impl.presentation.common.route.SwapRouteTableCellView
|
||||
android:id="@+id/swapConfirmationRoute"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
app:titleIcon="@drawable/ic_info" />
|
||||
|
||||
<io.novafoundation.nova.common.view.TableCellView
|
||||
android:clickable="true"
|
||||
android:focusable="true"
|
||||
android:id="@+id/swapConfirmationExecutionTime"
|
||||
app:title="@string/swap_execution_time"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content" />
|
||||
|
||||
<io.novafoundation.nova.feature_wallet_api.presentation.view.FeeView
|
||||
android:id="@+id/swapConfirmationNetworkFee"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
app:title="@string/common_total_fee"
|
||||
app:titleIcon="@drawable/ic_info" />
|
||||
|
||||
</io.novafoundation.nova.common.view.TableView>
|
||||
|
||||
<io.novafoundation.nova.common.view.TableView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginHorizontal="16dp"
|
||||
android:layout_marginTop="8dp">
|
||||
|
||||
<io.novafoundation.nova.common.view.TableCellView
|
||||
android:id="@+id/swapConfirmationWallet"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
app:title="@string/common_wallet" />
|
||||
|
||||
<io.novafoundation.nova.common.view.TableCellView
|
||||
android:id="@+id/swapConfirmationAccount"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
app:primaryValueEndIcon="@drawable/ic_info"
|
||||
app:title="@string/common_account" />
|
||||
|
||||
</io.novafoundation.nova.common.view.TableView>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<io.novafoundation.nova.common.view.AlertView
|
||||
android:id="@+id/swapConfirmationAlert"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginHorizontal="16dp"
|
||||
android:layout_marginTop="8dp"
|
||||
android:visibility="gone"
|
||||
app:alertMode="warning"
|
||||
app:layout_constraintTop_toBottomOf="@+id/linearLayout"
|
||||
tools:layout_editor_absoluteX="16dp" />
|
||||
|
||||
<io.novafoundation.nova.common.view.PrimaryButton
|
||||
android:id="@+id/swapConfirmationButton"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginHorizontal="16dp"
|
||||
android:layout_marginBottom="24dp"
|
||||
android:text="@string/common_confirm"
|
||||
app:layout_constraintBottom_toBottomOf="parent" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
@@ -0,0 +1,196 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<FrameLayout 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:id="@+id/swapExecutionContainer"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
tools:background="@color/secondary_screen_background">
|
||||
|
||||
<ScrollView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:clipToPadding="false"
|
||||
android:paddingBottom="84dp">
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<io.novafoundation.nova.common.view.Toolbar
|
||||
android:id="@+id/swapExecutionToolbar"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
app:dividerVisible="false"
|
||||
app:homeButtonVisible="false"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<io.novafoundation.nova.feature_swap_impl.presentation.execution.ExecutionTimerView
|
||||
android:id="@+id/swapExecutionTimer"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/swapExecutionToolbar" />
|
||||
|
||||
<TextSwitcher
|
||||
android:id="@+id/swapExecutionTitleSwitcher"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="16dp"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/swapExecutionTimer"
|
||||
tools:background="@color/container_background"
|
||||
tools:minHeight="40dp"
|
||||
tools:minWidth="200dp" />
|
||||
|
||||
<TextSwitcher
|
||||
android:id="@+id/swapExecutionSubtitleSwitcher"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginHorizontal="16dp"
|
||||
android:layout_marginTop="4dp"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/swapExecutionTitleSwitcher"
|
||||
tools:background="@color/container_background"
|
||||
tools:minHeight="20dp"
|
||||
tools:minWidth="300dp" />
|
||||
|
||||
<FrameLayout
|
||||
android:id="@+id/swapExecutionStepContainer"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginHorizontal="16dp"
|
||||
android:layout_marginTop="24dp"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/swapExecutionSubtitleSwitcher"
|
||||
tools:background="@color/block_background">
|
||||
|
||||
<com.facebook.shimmer.ShimmerFrameLayout
|
||||
android:id="@+id/swapExecutionStepShimmer"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/swapExecutionStepLabel"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginHorizontal="16dp"
|
||||
android:layout_marginVertical="14dp"
|
||||
android:textColor="@color/text_secondary"
|
||||
tools:text="3 of 3 operations" />
|
||||
</com.facebook.shimmer.ShimmerFrameLayout>
|
||||
</FrameLayout>
|
||||
|
||||
<io.novafoundation.nova.feature_swap_api.presentation.view.SwapAssetsView
|
||||
android:id="@+id/swapExecutionAssets"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginHorizontal="16dp"
|
||||
android:layout_marginTop="24dp"
|
||||
app:layout_constraintTop_toBottomOf="@id/swapExecutionStepContainer" />
|
||||
|
||||
<io.novafoundation.nova.common.view.ExpandableView
|
||||
android:id="@+id/swapExecutionDetails"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="24dp"
|
||||
app:chevronId="@+id/swapExecutionDetailsChevron"
|
||||
app:expandableId="@+id/swapExecutionDetailsContainer"
|
||||
app:layout_constraintTop_toBottomOf="@+id/swapExecutionAssets">
|
||||
|
||||
<TextView
|
||||
style="@style/TextAppearance.NovaFoundation.Regular.Footnote"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginHorizontal="16dp"
|
||||
android:layout_marginStart="16dp"
|
||||
android:text="@string/fragment_swap_main_settings_details_title"
|
||||
android:textColor="@color/text_secondary"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/swapExecutionDetailsChevron"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="@+id/swapExecutionDetailsChevron" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/swapExecutionDetailsChevron"
|
||||
android:layout_width="24dp"
|
||||
android:layout_height="24dp"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:scaleType="centerInside"
|
||||
android:src="@drawable/ic_chevron_up"
|
||||
app:layout_constraintBottom_toTopOf="@+id/swapExecutionReceiveInput"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/swapExecutionPayInput"
|
||||
app:tint="@color/icon_secondary" />
|
||||
|
||||
<FrameLayout
|
||||
android:id="@+id/swapExecutionDetailsContainer"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingHorizontal="16dp"
|
||||
android:paddingTop="8dp"
|
||||
app:layout_constraintTop_toBottomOf="@+id/swapExecutionDetailsChevron">
|
||||
|
||||
<io.novafoundation.nova.common.view.TableView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<io.novafoundation.nova.common.view.TableCellView
|
||||
android:id="@+id/swapExecutionRate"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
app:title="@string/swap_rate_title"
|
||||
app:titleIcon="@drawable/ic_info" />
|
||||
|
||||
<io.novafoundation.nova.common.view.TableCellView
|
||||
android:id="@+id/swapExecutionPriceDifference"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
app:title="@string/swap_price_difference_title"
|
||||
app:titleIcon="@drawable/ic_info" />
|
||||
|
||||
<io.novafoundation.nova.common.view.TableCellView
|
||||
android:id="@+id/swapExecutionSlippage"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
app:title="@string/swap_slippage_title"
|
||||
app:titleIcon="@drawable/ic_info" />
|
||||
|
||||
<io.novafoundation.nova.feature_swap_impl.presentation.common.route.SwapRouteTableCellView
|
||||
android:id="@+id/swapExecutionRoute"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
app:titleIcon="@drawable/ic_info" />
|
||||
|
||||
<io.novafoundation.nova.feature_wallet_api.presentation.view.FeeView
|
||||
android:id="@+id/swapExecutionNetworkFee"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
app:title="@string/common_total_fee"
|
||||
app:titleIcon="@drawable/ic_info" />
|
||||
|
||||
</io.novafoundation.nova.common.view.TableView>
|
||||
|
||||
</FrameLayout>
|
||||
</io.novafoundation.nova.common.view.ExpandableView>
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
</ScrollView>
|
||||
|
||||
<io.novafoundation.nova.common.view.PrimaryButtonV2
|
||||
android:id="@+id/swapExecutionActionButton"
|
||||
style="@style/Widget.Nova.MaterialButton.Primary"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="bottom"
|
||||
android:layout_marginHorizontal="16dp"
|
||||
android:layout_marginBottom="16dp"
|
||||
android:visibility="gone"
|
||||
tools:text="Done" />
|
||||
</FrameLayout>
|
||||
@@ -0,0 +1,43 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:id="@+id/swapFeeContainer"
|
||||
android:orientation="vertical"
|
||||
android:paddingHorizontal="16dp">
|
||||
|
||||
<View
|
||||
style="@style/Widget.Nova.Puller"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:layout_marginBottom="8dp" />
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center_vertical"
|
||||
android:orientation="horizontal"
|
||||
android:paddingVertical="10dp">
|
||||
|
||||
<TextView
|
||||
style="@style/TextAppearance.NovaFoundation.SemiBold.Body"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:layout_weight="1"
|
||||
android:text="@string/common_total_fee" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/swapFeeTotal"
|
||||
style="@style/TextAppearance.NovaFoundation.Regular.SubHeadline"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
tools:text="$0.56" />
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/swapFeeContent"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical" />
|
||||
</LinearLayout>
|
||||
@@ -0,0 +1,61 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout 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">
|
||||
|
||||
<io.novafoundation.nova.common.view.Toolbar
|
||||
android:id="@+id/swapOptionsToolbar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
app:dividerVisible="false"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:textRight="@string/common_reset"
|
||||
app:titleText="@string/swap_settings_title" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/swapOptionsSlippageTitle"
|
||||
style="@style/TextAppearance.NovaFoundation.SemiBold.Body"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginHorizontal="16dp"
|
||||
android:layout_marginTop="16dp"
|
||||
android:drawablePadding="8dp"
|
||||
android:text="@string/swap_slippage"
|
||||
android:textColor="@color/text_primary"
|
||||
app:drawableEndCompat="@drawable/ic_info"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/swapOptionsToolbar"
|
||||
tools:drawableEnd="@drawable/ic_info" />
|
||||
|
||||
<io.novafoundation.nova.common.view.TipsInputField
|
||||
android:id="@+id/swapOptionsSlippageInput"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginHorizontal="16dp"
|
||||
android:layout_marginTop="12dp"
|
||||
android:inputType="numberDecimal"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/swapOptionsSlippageTitle"
|
||||
app:postfix="@string/common_percent" />
|
||||
|
||||
<io.novafoundation.nova.common.view.AlertView
|
||||
android:id="@+id/swapOptionsAlert"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginHorizontal="16dp"
|
||||
android:layout_marginTop="12dp"
|
||||
app:layout_constraintTop_toBottomOf="@+id/swapOptionsSlippageInput" />
|
||||
|
||||
<io.novafoundation.nova.common.view.PrimaryButton
|
||||
android:id="@+id/swapOptionsApplyButton"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginHorizontal="16dp"
|
||||
android:layout_marginBottom="24dp"
|
||||
android:text="@string/common_apply"
|
||||
app:layout_constraintBottom_toBottomOf="parent" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
@@ -0,0 +1,33 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<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:orientation="vertical"
|
||||
android:paddingBottom="12dp"
|
||||
tools:background="@color/secondary_screen_background">
|
||||
|
||||
<io.novafoundation.nova.common.view.Toolbar
|
||||
android:id="@+id/swapRouteBack"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
app:dividerVisible="false" />
|
||||
|
||||
<TextView
|
||||
style="@style/TextAppearance.NovaFoundation.Bold.Title1"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginHorizontal="16dp"
|
||||
android:layout_marginTop="16dp"
|
||||
android:text="@string/swap_route" />
|
||||
|
||||
<TextView
|
||||
style="@style/TextAppearance.NovaFoundation.Regular.SubHeadline"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginHorizontal="16dp"
|
||||
android:layout_marginTop="8dp"
|
||||
android:text="@string/swap_route_description"
|
||||
android:textColor="@color/text_secondary" />
|
||||
</LinearLayout>
|
||||
@@ -0,0 +1,94 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout 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"
|
||||
tools:background="@color/secondary_screen_background">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/itemRouteSwapTitle"
|
||||
style="@style/TextAppearance.NovaFoundation.Regular.SubHeadline"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginHorizontal="16dp"
|
||||
android:layout_marginTop="13dp"
|
||||
android:text="@string/swap_route_segment_swap_title"
|
||||
android:textColor="@color/text_primary"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintHorizontal_bias="0"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<io.novafoundation.nova.feature_swap_impl.presentation.route.view.TokenAmountView
|
||||
android:id="@+id/itemRouteSwapAmountFrom"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="12dp"
|
||||
app:layout_constrainedWidth="true"
|
||||
app:layout_constraintEnd_toStartOf="@id/itemRouteSwapArrow"
|
||||
app:layout_constraintHorizontal_bias="0.0"
|
||||
app:layout_constraintHorizontal_chainStyle="packed"
|
||||
app:layout_constraintStart_toStartOf="@+id/itemRouteSwapTitle"
|
||||
app:layout_constraintTop_toBottomOf="@id/itemRouteSwapTitle" />
|
||||
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/itemRouteSwapArrow"
|
||||
android:layout_width="16dp"
|
||||
android:layout_height="16dp"
|
||||
android:layout_marginStart="4dp"
|
||||
android:src="@drawable/ic_arrow_right"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/itemRouteSwapAmountFrom"
|
||||
app:layout_constraintEnd_toStartOf="@+id/guideline"
|
||||
app:layout_constraintStart_toEndOf="@+id/itemRouteSwapAmountFrom"
|
||||
app:layout_constraintTop_toTopOf="@+id/itemRouteSwapAmountFrom"
|
||||
app:tint="@color/icon_secondary" />
|
||||
|
||||
<io.novafoundation.nova.feature_swap_impl.presentation.route.view.TokenAmountView
|
||||
android:id="@+id/itemRouteSwapAmountTo"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="4dp"
|
||||
android:layout_marginEnd="16dp"
|
||||
app:layout_constrainedWidth="true"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/itemRouteSwapAmountFrom"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintHorizontal_bias="0.0"
|
||||
app:layout_constraintStart_toEndOf="@+id/itemRouteSwapArrow"
|
||||
app:layout_constraintTop_toTopOf="@+id/itemRouteSwapAmountFrom" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/itemRouteSwapFee"
|
||||
style="@style/TextAppearance.NovaFoundation.Regular.Caption1"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginVertical="15dp"
|
||||
android:textColor="@color/text_secondary"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toStartOf="@+id/itemRouteSwapAmountFrom"
|
||||
app:layout_constraintTop_toBottomOf="@+id/itemRouteSwapAmountFrom"
|
||||
tools:text="Fee: $0.416" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/itemRouteSwapChain"
|
||||
style="@style/TextAppearance.NovaFoundation.Regular.Caption1"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginVertical="15dp"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:includeFontPadding="false"
|
||||
android:textColor="@color/text_secondary"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/itemRouteSwapAmountFrom"
|
||||
tools:text="Hydration" />
|
||||
|
||||
<androidx.constraintlayout.widget.Guideline
|
||||
android:id="@+id/guideline"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
app:layout_constraintGuide_percent="0.56" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
@@ -0,0 +1,81 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout 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"
|
||||
tools:background="@color/secondary_screen_background">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/itemRouteTransferTitle"
|
||||
style="@style/TextAppearance.NovaFoundation.Regular.SubHeadline"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginHorizontal="16dp"
|
||||
android:layout_marginTop="13dp"
|
||||
android:text="@string/swap_route_segment_transfer_title"
|
||||
android:textColor="@color/text_primary"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintHorizontal_bias="0"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<io.novafoundation.nova.feature_swap_impl.presentation.route.view.TokenAmountView
|
||||
android:id="@+id/itemRouteTransferAmount"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="12dp"
|
||||
app:layout_constraintStart_toStartOf="@+id/itemRouteTransferTitle"
|
||||
app:layout_constraintTop_toBottomOf="@id/itemRouteTransferTitle" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/itemRouteTransferFee"
|
||||
style="@style/TextAppearance.NovaFoundation.Regular.Caption1"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginVertical="15dp"
|
||||
android:textColor="@color/text_secondary"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toStartOf="@+id/itemRouteTransferAmount"
|
||||
app:layout_constraintTop_toBottomOf="@+id/itemRouteTransferAmount"
|
||||
tools:text="Fee: $0.416" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/itemRouteTransferFrom"
|
||||
style="@style/TextAppearance.NovaFoundation.Regular.Caption1"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="4dp"
|
||||
android:includeFontPadding="false"
|
||||
android:textColor="@color/text_secondary"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/itemRouteTransferTo"
|
||||
app:layout_constraintEnd_toStartOf="@+id/itemRouteTransferArrow"
|
||||
app:layout_constraintTop_toTopOf="@+id/itemRouteTransferTo"
|
||||
tools:text="Polkadot" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/itemRouteTransferArrow"
|
||||
android:layout_width="12dp"
|
||||
android:layout_height="12dp"
|
||||
android:layout_marginEnd="4dp"
|
||||
android:src="@drawable/ic_arrow_right"
|
||||
app:layout_constraintBottom_toBottomOf="@id/itemRouteTransferTo"
|
||||
app:layout_constraintEnd_toStartOf="@id/itemRouteTransferTo"
|
||||
app:layout_constraintTop_toTopOf="@id/itemRouteTransferTo"
|
||||
app:tint="@color/icon_secondary" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/itemRouteTransferTo"
|
||||
style="@style/TextAppearance.NovaFoundation.Regular.Caption1"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginVertical="15dp"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:includeFontPadding="false"
|
||||
android:textColor="@color/text_secondary"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/itemRouteTransferAmount"
|
||||
tools:text="Hydration" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
@@ -0,0 +1,67 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<merge 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:clipChildren="false"
|
||||
tools:background="@color/secondary_screen_background"
|
||||
tools:parentTag="androidx.constraintlayout.widget.ConstraintLayout">
|
||||
|
||||
<View
|
||||
android:id="@+id/executionBackground"
|
||||
android:layout_width="64dp"
|
||||
android:layout_height="64dp"
|
||||
android:background="@drawable/bg_container_with_border_circle"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/executionProgress"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
android:src="@drawable/ic_container_timer_animated"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/executionBackground"
|
||||
app:layout_constraintEnd_toEndOf="@+id/executionBackground"
|
||||
app:layout_constraintStart_toStartOf="@+id/executionBackground"
|
||||
app:layout_constraintTop_toTopOf="@+id/executionBackground" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/executionResult"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
android:src="@drawable/ic_execution_result_success"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/executionBackground"
|
||||
app:layout_constraintEnd_toEndOf="@+id/executionBackground"
|
||||
app:layout_constraintStart_toStartOf="@+id/executionBackground"
|
||||
app:layout_constraintTop_toTopOf="@+id/executionBackground" />
|
||||
|
||||
<TextSwitcher
|
||||
android:id="@+id/executionTimeSwitcher"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:minHeight="20dp"
|
||||
android:textColor="@color/text_primary"
|
||||
app:layout_constraintBottom_toTopOf="@+id/executionTimeSeconds"
|
||||
app:layout_constraintEnd_toEndOf="@+id/executionProgress"
|
||||
app:layout_constraintStart_toStartOf="@+id/executionProgress"
|
||||
app:layout_constraintTop_toTopOf="@+id/executionProgress"
|
||||
app:layout_constraintVertical_chainStyle="packed" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/executionTimeSeconds"
|
||||
style="@style/TextAppearance.NovaFoundation.Regular.Caption1"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:includeFontPadding="false"
|
||||
android:text="@string/common_sec"
|
||||
android:textColor="@color/text_secondary"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/executionProgress"
|
||||
app:layout_constraintEnd_toEndOf="@+id/executionProgress"
|
||||
app:layout_constraintStart_toStartOf="@+id/executionProgress"
|
||||
app:layout_constraintTop_toBottomOf="@+id/executionTimeSwitcher" />
|
||||
|
||||
</merge>
|
||||
@@ -0,0 +1,139 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<merge 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"
|
||||
tools:parentTag="androidx.constraintlayout.widget.ConstraintLayout">
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:id="@+id/swapAmountInputContainer"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
tools:background="@color/input_background">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/swapAmountInputImage"
|
||||
android:layout_width="40dp"
|
||||
android:layout_height="40dp"
|
||||
android:layout_marginStart="12dp"
|
||||
android:layout_marginTop="16dp"
|
||||
android:layout_marginBottom="16dp"
|
||||
android:scaleType="centerInside"
|
||||
android:background="@drawable/bg_token_container"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
tools:src="@drawable/ic_token_dot_colored" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/swapAmountInputSubtitleImage"
|
||||
android:layout_width="12dp"
|
||||
android:layout_height="12dp"
|
||||
android:layout_marginEnd="12dp"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/swapAmountInputSubtitle"
|
||||
app:layout_constraintStart_toEndOf="@+id/swapAmountInputImageBarier"
|
||||
app:layout_constraintTop_toTopOf="@+id/swapAmountInputSubtitle"
|
||||
tools:src="@drawable/ic_pezkuwi_logo" />
|
||||
|
||||
<androidx.constraintlayout.widget.Barrier
|
||||
android:id="@+id/swapAmountInputImageBarier"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="match_parent"
|
||||
app:barrierDirection="end"
|
||||
app:barrierMargin="12dp"
|
||||
app:constraint_referenced_ids="swapAmountInputImage" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/swapAmountInputToken"
|
||||
style="@style/TextAppearance.NovaFoundation.SemiBold.Body"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="12dp"
|
||||
android:includeFontPadding="false"
|
||||
android:textColor="@color/text_primary"
|
||||
app:layout_constraintBottom_toTopOf="@+id/swapAmountInputSubtitle"
|
||||
app:layout_constraintStart_toEndOf="@id/swapAmountInputImage"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintVertical_chainStyle="packed"
|
||||
tools:text="KSM" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/swapAmountInputSubtitle"
|
||||
style="@style/TextAppearance.NovaFoundation.Regular.Footnote"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="8dp"
|
||||
android:layout_marginTop="4dp"
|
||||
android:includeFontPadding="false"
|
||||
android:text="@string/fragment_swap_main_settings_select_token"
|
||||
android:textColor="@color/text_secondary"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toEndOf="@+id/swapAmountInputSubtitleImage"
|
||||
app:layout_constraintTop_toBottomOf="@+id/swapAmountInputToken"
|
||||
app:layout_goneMarginStart="0dp" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/swapAmountInputChevron"
|
||||
android:layout_width="20dp"
|
||||
android:layout_height="20dp"
|
||||
android:src="@drawable/ic_chevron_right"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/swapAmountInputToken"
|
||||
app:layout_constraintStart_toEndOf="@+id/swapAmountInputToken"
|
||||
app:layout_constraintTop_toTopOf="@+id/swapAmountInputToken"
|
||||
app:tint="@color/icon_primary" />
|
||||
|
||||
<EditText
|
||||
android:id="@+id/swapAmountInputField"
|
||||
style="@style/TextAppearance.NovaFoundation.Regular.Title2"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
android:layout_marginStart="16dp"
|
||||
android:background="@null"
|
||||
android:gravity="end"
|
||||
android:hint="0"
|
||||
android:inputType="numberDecimal"
|
||||
android:paddingTop="10dp"
|
||||
android:paddingEnd="16dp"
|
||||
android:paddingBottom="10dp"
|
||||
android:saveEnabled="false"
|
||||
android:textColor="@color/text_primary"
|
||||
android:textColorHint="@color/hint_text"
|
||||
android:textCursorDrawable="@null"
|
||||
android:textStyle="bold"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintHorizontal_bias="1.0"
|
||||
app:layout_constraintStart_toEndOf="@+id/swapAmountInputChevron"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
tools:text="4.508614" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/swapAmountInputFiat"
|
||||
style="@style/TextAppearance.NovaFoundation.Regular.Footnote"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:layout_marginBottom="12dp"
|
||||
android:singleLine="true"
|
||||
android:textColor="@color/text_secondary"
|
||||
app:layout_constrainedWidth="true"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
tools:text="135.87$" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/swapAmountInputError"
|
||||
style="@style/TextAppearance.NovaFoundation.Regular.Caption1"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="8dp"
|
||||
android:textColor="@color/text_negative"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/swapAmountInputContainer" />
|
||||
|
||||
</merge>
|
||||
@@ -0,0 +1,28 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<merge xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
tools:gravity="center_vertical"
|
||||
tools:orientation="horizontal"
|
||||
tools:parentTag="android.widget.LinearLayout">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/viewTokenAmountIcon"
|
||||
android:layout_width="24dp"
|
||||
android:layout_height="24dp"
|
||||
android:layout_marginEnd="4dp"
|
||||
android:background="@drawable/bg_token_container"
|
||||
tools:padding="3dp"
|
||||
tools:src="@drawable/ic_token_ksm" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/viewTokenAmountAmount"
|
||||
style="@style/TextAppearance.NovaFoundation.SemiBold.Body"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:ellipsize="end"
|
||||
android:singleLine="true"
|
||||
android:textColor="@color/text_primary"
|
||||
tools:text="900 DOT" />
|
||||
</merge>
|
||||
@@ -0,0 +1,10 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<declare-styleable name="SwapRouteView">
|
||||
<attr name="SwapRouteView_displayChainName" format="boolean" />
|
||||
</declare-styleable>
|
||||
|
||||
<declare-styleable name="SwapRouteTableCellView">
|
||||
<attr name="SwapRouteView_displayChainName" />
|
||||
</declare-styleable>
|
||||
</resources>
|
||||
Reference in New Issue
Block a user