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,107 @@
<?xml version="1.0" encoding="utf-8"?>
<ScrollView 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:overScrollMode="never"
android:scrollbars="none"
android:layout_height="match_parent"
tools:background="@color/bottom_sheet_background">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
tools:background="@color/bottom_sheet_background">
<ImageView
android:id="@+id/confirmAuthorizeNovaIcon"
style="@style/Widget.Nova.Icon.Big"
android:layout_marginTop="20dp"
android:padding="16dp"
android:src="@drawable/ic_pezkuwi_logo"
app:layout_constraintEnd_toStartOf="@+id/confirmAuthorizeNovaArrow"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintHorizontal_chainStyle="packed"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<ImageView
android:id="@+id/confirmAuthorizeNovaArrow"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:src="@drawable/ic_bidirectonal"
app:layout_constraintBottom_toBottomOf="@+id/confirmAuthorizeNovaIcon"
app:layout_constraintEnd_toStartOf="@+id/confirmAuthorizeDappIcon"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/confirmAuthorizeNovaIcon"
app:layout_constraintTop_toTopOf="@+id/confirmAuthorizeNovaIcon"
app:tint="@color/icon_secondary" />
<ImageView
android:id="@+id/confirmAuthorizeDappIcon"
style="@style/Widget.Nova.Icon.Big"
android:layout_marginTop="20dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/confirmAuthorizeNovaArrow"
app:layout_constraintTop_toTopOf="parent"
tools:src="@drawable/ic_earth" />
<TextView
android:id="@+id/confirmAuthorizeDappTitle"
style="@style/TextAppearance.NovaFoundation.SemiBold.Title3"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginTop="20dp"
android:layout_marginEnd="16dp"
android:gravity="center_horizontal"
android:textColor="@color/text_primary"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/confirmAuthorizeNovaIcon"
tools:text="Allow “Polkadot.js” to access your account addresses?" />
<TextView
android:id="@+id/confirmAuthorizeDappSubTitle"
style="@style/TextAppearance.NovaFoundation.Regular.Footnote"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginTop="12dp"
android:layout_marginEnd="16dp"
android:gravity="center_horizontal"
android:text="@string/dapp_confirm_authorize_subtitle"
android:textColor="@color/text_secondary"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/confirmAuthorizeDappTitle" />
<io.novafoundation.nova.common.view.TableCellView
android:id="@+id/confirmAuthorizeDappWallet"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginTop="24dp"
android:layout_marginEnd="16dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/confirmAuthorizeDappSubTitle"
app:title="@string/tabbar_wallet_title" />
<io.novafoundation.nova.common.view.TableCellView
android:id="@+id/confirmAuthorizeDappDApp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
app:dividerVisible="false"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/confirmAuthorizeDappWallet"
app:title="@string/dapp_dapp" />
</androidx.constraintlayout.widget.ConstraintLayout>
</ScrollView>
@@ -0,0 +1,51 @@
<?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="wrap_content"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
tools:background="@color/bottom_sheet_background">
<ImageView
style="@style/Widget.Nova.Puller"
android:layout_gravity="center_horizontal"
android:layout_marginTop="6dp" />
<FrameLayout
android:id="@+id/confirmInnerContent"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
tools:layout_height="300dp" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="16dp"
android:layout_marginTop="24dp"
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"
app:appearance="secondary"
android:theme="@style/NegativeAccent" />
<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>