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:
2026-02-12 05:19:41 +03:00
commit a294aa1a6b
7687 changed files with 441811 additions and 0 deletions
@@ -0,0 +1,142 @@
<?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/confirmSignExtinsicToolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:dividerVisible="false"
app:homeButtonVisible="false"
app:titleText="@string/common_sign_request" />
<ScrollView
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="16dp"
android:gravity="center_horizontal"
android:orientation="vertical">
<ImageView
android:id="@+id/confirmSignExtinsicIcon"
style="@style/Widget.Nova.Icon.Big"
android:layout_marginTop="24dp"
tools:src="@drawable/ic_earth" />
<TextView
android:id="@+id/confirmSignExtinsicTitle"
style="@style/TextAppearance.NovaFoundation.SemiBold.Title3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="24dp"
android:gravity="center_horizontal"
android:text="@string/common_confirm_title"
android:textColor="@color/text_primary" />
<TextView
android:id="@+id/confirmSignExtinsicSubTitle"
style="@style/TextAppearance.NovaFoundation.Regular.Footnote"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:gravity="center_horizontal"
android:text="@string/dapp_confirm_sign_extrinsic_subtitle"
android:textColor="@color/text_secondary" />
<io.novafoundation.nova.common.view.TableView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="24dp">
<io.novafoundation.nova.common.view.TableCellView
android:id="@+id/confirmSignExtinsicDappUrl"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:title="@string/dapp_dapp" />
</io.novafoundation.nova.common.view.TableView>
<io.novafoundation.nova.common.view.TableView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp">
<io.novafoundation.nova.common.view.TableCellView
android:id="@+id/confirmSignExtinsicWallet"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:title="@string/tabbar_wallet_title" />
<io.novafoundation.nova.common.view.TableCellView
android:id="@+id/confirmSignExtinsicAccount"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:title="@string/common_account_address" />
<io.novafoundation.nova.common.view.TableCellView
android:id="@+id/confirmSignExtinsicNetwork"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:title="@string/common_network" />
<io.novafoundation.nova.feature_wallet_api.presentation.view.FeeView
android:id="@+id/confirmSignExtinsicFee"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:title="@string/network_fee" />
</io.novafoundation.nova.common.view.TableView>
<io.novafoundation.nova.common.view.GoNextView
android:id="@+id/confirmSignExtinsicDetails"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:text="@string/transaction_details_title"
android:textAppearance="@style/GoNextTransactionDetailsTextAppearance"
app:actionIcon="@drawable/ic_chevron_right"
app:dividerVisible="false"
tools:background="@color/block_background" />
</LinearLayout>
</ScrollView>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:layout_marginBottom="16dp"
android:orientation="horizontal">
<io.novafoundation.nova.common.view.PrimaryButton
android:id="@+id/confirmDAppActionReject"
style="@style/Widget.Nova.Button"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:layout_weight="1"
android:text="@string/common_reject"
android:theme="@style/NegativeAccent"
app:appearance="secondary" />
<io.novafoundation.nova.common.view.PrimaryButton
android:id="@+id/confirmDAppActionAllow"
style="@style/Widget.Nova.Button"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="16dp"
android:layout_weight="1"
android:text="@string/common_allow"
android:theme="@style/AccentBlue" />
</LinearLayout>
</LinearLayout>
@@ -0,0 +1,55 @@
<?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:id="@+id/signExtrinsicContainer"
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/signExtrinsicToolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:contentBackground="@android:color/transparent"
app:dividerVisible="false"
app:homeButtonIcon="@drawable/ic_close"
app:titleText="@string/transaction_details_title" />
<androidx.core.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:orientation="vertical">
<TextView
style="@style/TextAppearance.NovaFoundation.Regular.Caption1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:text="@string/dapp_sign_extrinsic_details_subtitle"
android:textColor="@color/text_secondary" />
<TextView
android:id="@+id/extrinsicDetailsContent"
style="@style/TextAppearance.NovaFoundation.Regular.Monospace"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:background="@drawable/extrinsic_details_background"
android:padding="12dp"
android:textColor="@color/text_primary"
tools:text="@tools:sample/lorem[200]" />
<Space
android:layout_width="match_parent"
android:layout_height="24dp" />
</LinearLayout>
</androidx.core.widget.NestedScrollView>
</LinearLayout>