redesign pin and pattern UI, add settings for changing lock and enable/disable biometrics and add button to lock app from any screen
Auto Tag on Version Change / check-version (push) Successful in 3s

This commit is contained in:
2026-05-15 02:52:20 +05:00
parent 8d1869bafa
commit 81a67b2406
10 changed files with 219 additions and 49 deletions
+11
View File
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24"
android:tint="?attr/colorControlNormal">
<path
android:fillColor="@android:color/white"
android:pathData="M18,8h-1V6c0-2.76-2.24-5-5-5S7,3.24 7,6v2H6c-1.1,0-2,0.9-2,2v10c0,1.1 0.9,2 2,2h12c1.1,0 2,-0.9 2,-2V10c0,-1.1-0.9,-2-2,-2zm-6,9c-1.1,0-2,-0.9-2,-2s0.9,-2 2,-2 2,0.9 2,2-0.9,2-2,2zm3.1,-9H8.9V6c0,-1.71 1.39,-3.1 3.1,-3.1 1.71,0 3.1,1.39 3.1,3.1v2z" />
</vector>
+38 -17
View File
@@ -11,11 +11,16 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingTop="48dp"
android:paddingHorizontal="16dp"
android:paddingBottom="16dp"
android:paddingHorizontal="24dp"
android:paddingBottom="40dp"
android:visibility="gone">
<!-- Top spacer: equal weight to bottom spacer centers the title between screen top and numpad -->
<View
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
@@ -31,8 +36,13 @@
android:text="@string/unlock_pin_subtitle"
android:textAppearance="?attr/textAppearanceBodyMedium"
android:textColor="?attr/colorOnSurfaceVariant"
android:gravity="center"
android:layout_marginBottom="24dp" />
android:gravity="center" />
<!-- Bottom spacer: equal weight centers title in the space above the numpad -->
<View
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1" />
<TextView
android:id="@+id/tvLockPinDots"
@@ -42,14 +52,14 @@
android:textSize="26sp"
android:letterSpacing="0.3"
android:textColor="?attr/colorPrimary"
android:layout_marginBottom="20dp" />
android:layout_marginBottom="24dp" />
<LinearLayout
android:id="@+id/lockNumpadContainer"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:orientation="vertical" />
android:layout_height="wrap_content"
android:orientation="vertical"
android:gravity="center_horizontal" />
<com.google.android.material.button.MaterialButton
android:id="@+id/btnLockBiometricFromPin"
@@ -57,7 +67,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="4dp"
android:layout_marginTop="8dp"
android:text="@string/use_biometrics"
android:visibility="gone" />
@@ -69,12 +79,16 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingTop="48dp"
android:paddingHorizontal="32dp"
android:paddingBottom="16dp"
android:gravity="center_horizontal"
android:paddingHorizontal="24dp"
android:paddingBottom="40dp"
android:visibility="gone">
<!-- Top spacer: equal weight to bottom spacer centers the title -->
<View
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
@@ -90,8 +104,13 @@
android:text="@string/unlock_pattern_subtitle"
android:textAppearance="?attr/textAppearanceBodyMedium"
android:textColor="?attr/colorOnSurfaceVariant"
android:gravity="center"
android:layout_marginBottom="24dp" />
android:gravity="center" />
<!-- Bottom spacer: equal weight centers title in the space above the pattern -->
<View
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1" />
<TextView
android:id="@+id/tvPatternHint"
@@ -106,13 +125,15 @@
android:id="@+id/lockPatternView"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1" />
android:layout_weight="2"
android:layout_gravity="center_horizontal" />
<com.google.android.material.button.MaterialButton
android:id="@+id/btnLockBiometricFromPattern"
style="@style/Widget.Material3.Button.TextButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="8dp"
android:text="@string/use_biometrics"
android:visibility="gone" />
@@ -138,11 +138,15 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingTop="32dp"
android:paddingHorizontal="16dp"
android:paddingBottom="8dp"
android:paddingHorizontal="24dp"
android:paddingBottom="40dp"
android:visibility="gone">
<View
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1" />
<TextView
android:id="@+id/tvPinTitle"
android:layout_width="match_parent"
@@ -159,8 +163,12 @@
android:text="@string/pin_min_digits"
android:textAppearance="?attr/textAppearanceBodySmall"
android:textColor="?attr/colorOnSurfaceVariant"
android:gravity="center"
android:layout_marginBottom="20dp" />
android:gravity="center" />
<View
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1" />
<TextView
android:id="@+id/tvPinDots"
@@ -170,14 +178,14 @@
android:textSize="26sp"
android:letterSpacing="0.3"
android:textColor="?attr/colorPrimary"
android:layout_marginBottom="20dp" />
android:layout_marginBottom="24dp" />
<LinearLayout
android:id="@+id/numpadContainer"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:orientation="vertical" />
android:layout_height="wrap_content"
android:orientation="vertical"
android:gravity="center_horizontal" />
<com.google.android.material.button.MaterialButton
android:id="@+id/btnPinBack"
@@ -185,7 +193,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="4dp"
android:layout_marginTop="8dp"
android:text="@string/back" />
</LinearLayout>
@@ -196,12 +204,15 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingTop="32dp"
android:paddingHorizontal="32dp"
android:paddingBottom="8dp"
android:gravity="center_horizontal"
android:paddingHorizontal="24dp"
android:paddingBottom="40dp"
android:visibility="gone">
<View
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1" />
<TextView
android:id="@+id/tvPatternTitle"
android:layout_width="match_parent"
@@ -219,20 +230,26 @@
android:text="@string/pattern_min_dots"
android:textAppearance="?attr/textAppearanceBodySmall"
android:textColor="?attr/colorOnSurfaceVariant"
android:gravity="center"
android:layout_marginBottom="16dp" />
android:gravity="center" />
<View
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1" />
<sh.sar.basedbank.ui.onboarding.PatternView
android:id="@+id/patternView"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1" />
android:layout_weight="2"
android:layout_gravity="center_horizontal" />
<com.google.android.material.button.MaterialButton
android:id="@+id/btnPatternBack"
style="@style/Widget.Material3.Button.TextButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="8dp"
android:text="@string/back" />
@@ -85,6 +85,45 @@
</com.google.android.material.button.MaterialButtonToggleGroup>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/settings_security"
android:textAppearance="?attr/textAppearanceTitleMedium"
android:layout_marginTop="24dp"
android:layout_marginBottom="12dp" />
<com.google.android.material.button.MaterialButton
android:id="@+id/btnChangeLock"
style="@style/Widget.Material3.Button.OutlinedButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/settings_change_lock" />
<LinearLayout
android:id="@+id/rowBiometrics"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:gravity="center_vertical"
android:layout_marginTop="16dp"
android:visibility="gone">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/settings_biometrics"
android:textAppearance="?attr/textAppearanceBodyLarge"
android:textColor="?attr/colorOnSurface" />
<com.google.android.material.materialswitch.MaterialSwitch
android:id="@+id/switchBiometrics"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
</LinearLayout>
</ScrollView>
+11
View File
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/action_lock"
android:icon="@drawable/ic_lock"
android:title="@string/action_lock"
app:showAsAction="always" />
</menu>
+6
View File
@@ -82,7 +82,13 @@
<string name="transfer">Transfer</string>
<string name="pay_mv_qr">PayMV QR</string>
<!-- Toolbar -->
<string name="action_lock">Lock app</string>
<!-- Settings -->
<string name="settings_security">Security</string>
<string name="settings_change_lock">Change PIN / Pattern</string>
<string name="settings_biometrics">Use Biometrics</string>
<string name="theme">Theme</string>
<string name="theme_system">System</string>
<string name="theme_light">Light</string>