253 lines
17 KiB
XML
253 lines
17 KiB
XML
<?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"
|
||
android:layout_width="match_parent"
|
||
android:layout_height="match_parent"
|
||
android:orientation="vertical"
|
||
android:background="?attr/colorSurface">
|
||
|
||
<!-- ══════════════════════════════════════════════════════════════════════ -->
|
||
<!-- Renderable receipt card -->
|
||
<!-- ══════════════════════════════════════════════════════════════════════ -->
|
||
<LinearLayout
|
||
android:id="@+id/receiptCard"
|
||
android:layout_width="match_parent"
|
||
android:layout_height="wrap_content"
|
||
android:layout_marginHorizontal="24dp"
|
||
android:orientation="vertical"
|
||
android:background="#FFFFFF">
|
||
|
||
<!-- BML icon (bmlicon.jpg, centered, ~52dp ≈ 146/1080*360dp) -->
|
||
<ImageView
|
||
android:layout_width="52dp"
|
||
android:layout_height="52dp"
|
||
android:layout_gravity="center_horizontal"
|
||
android:layout_marginTop="20dp"
|
||
android:src="@drawable/bml_icon"
|
||
android:scaleType="fitCenter"
|
||
android:adjustViewBounds="true"
|
||
android:contentDescription="@null" />
|
||
|
||
<!-- Success message — NunitoSans 27.5px → 14sp, #2D2D2D -->
|
||
<TextView
|
||
android:layout_width="wrap_content"
|
||
android:layout_height="wrap_content"
|
||
android:layout_gravity="center_horizontal"
|
||
android:layout_marginHorizontal="32dp"
|
||
android:layout_marginTop="14dp"
|
||
android:layout_marginBottom="20dp"
|
||
android:id="@+id/tvMessage"
|
||
android:textSize="14sp"
|
||
android:textColor="#2D2D2D"
|
||
android:fontFamily="@font/nunito_sans"
|
||
android:gravity="center" />
|
||
|
||
<!-- ══════════════════════════════════════════════════════════════════ -->
|
||
<!-- Amount / wave section -->
|
||
<!-- receiptwave.png fills this FrameLayout; text overlays center. -->
|
||
<!-- Matches: drawImage(receiptwave, 0, 368, 1080, 155) clipped to -->
|
||
<!-- y=379–488 visible; amount at y=355 (above wave), ccy at y=438. -->
|
||
<!-- ══════════════════════════════════════════════════════════════════ -->
|
||
<FrameLayout
|
||
android:layout_width="match_parent"
|
||
android:layout_height="70dp">
|
||
|
||
<ImageView
|
||
android:layout_width="match_parent"
|
||
android:layout_height="match_parent"
|
||
android:src="@drawable/receiptwave"
|
||
android:scaleType="fitXY"
|
||
android:contentDescription="@null" />
|
||
|
||
<TextView
|
||
android:id="@+id/tvAmountValue"
|
||
android:layout_width="wrap_content"
|
||
android:layout_height="wrap_content"
|
||
android:layout_gravity="center"
|
||
android:layout_marginBottom="13dp"
|
||
android:textSize="42sp"
|
||
android:textColor="#242424"
|
||
android:fontFamily="@font/sofia_pro"
|
||
android:gravity="center" />
|
||
|
||
</FrameLayout>
|
||
|
||
<!-- Currency — floats below wave on transparent background -->
|
||
<TextView
|
||
android:id="@+id/tvAmountCurrency"
|
||
android:layout_width="wrap_content"
|
||
android:layout_height="wrap_content"
|
||
android:layout_gravity="center_horizontal"
|
||
android:layout_marginTop="-19dp"
|
||
android:layout_marginBottom="0dp"
|
||
android:textSize="20sp"
|
||
android:textColor="#7E7E7E"
|
||
android:fontFamily="@font/sofia_pro"
|
||
android:gravity="center" />
|
||
|
||
<!-- ══════════════════════════════════════════════════════════════════ -->
|
||
<!-- Body rows -->
|
||
<!-- Labels: SofiaPro 28px → 13sp, #000000, left-aligned -->
|
||
<!-- Values: SofiaPro 35px → 15sp, #808080, right-aligned -->
|
||
<!-- Divider: #E9E9E9, 1dp, margins 20dp each side -->
|
||
<!-- ══════════════════════════════════════════════════════════════════ -->
|
||
<LinearLayout
|
||
android:layout_width="match_parent"
|
||
android:layout_height="wrap_content"
|
||
android:orientation="vertical"
|
||
android:layout_marginHorizontal="20dp"
|
||
android:paddingTop="6dp">
|
||
|
||
<!-- Status (value = green #8BC155) -->
|
||
<LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:gravity="center_vertical" android:paddingVertical="13dp">
|
||
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Status" android:textSize="13sp" android:textColor="#000000" android:fontFamily="@font/sofia_pro" />
|
||
<View android:layout_width="0dp" android:layout_height="1dp" android:layout_weight="1" />
|
||
<TextView android:id="@+id/tvStatus" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="SUCCESS" android:textSize="15sp" android:textColor="#8BC155" android:fontFamily="@font/sofia_pro" />
|
||
</LinearLayout>
|
||
<View android:layout_width="match_parent" android:layout_height="1dp" android:background="#E9E9E9" />
|
||
|
||
<!-- Message (value wraps if long) -->
|
||
<LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:gravity="center_vertical" android:paddingVertical="13dp">
|
||
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Message" android:textSize="13sp" android:textColor="#000000" android:fontFamily="@font/sofia_pro" />
|
||
<View android:layout_width="0dp" android:layout_height="1dp" android:layout_weight="1" />
|
||
<TextView android:id="@+id/tvMessageRow" android:layout_width="0dp" android:layout_weight="1.4" android:layout_height="wrap_content" android:textSize="15sp" android:textColor="#808080" android:fontFamily="@font/sofia_pro" android:gravity="end" />
|
||
</LinearLayout>
|
||
<View android:layout_width="match_parent" android:layout_height="1dp" android:background="#E9E9E9" />
|
||
|
||
<!-- Reference -->
|
||
<LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:gravity="center_vertical" android:paddingVertical="13dp">
|
||
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Reference" android:textSize="13sp" android:textColor="#000000" android:fontFamily="@font/sofia_pro" />
|
||
<View android:layout_width="0dp" android:layout_height="1dp" android:layout_weight="1" />
|
||
<TextView android:id="@+id/tvReference" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="15sp" android:textColor="#808080" android:fontFamily="@font/sofia_pro" />
|
||
</LinearLayout>
|
||
<View android:layout_width="match_parent" android:layout_height="1dp" android:background="#E9E9E9" />
|
||
|
||
<!-- Transaction date -->
|
||
<LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:gravity="center_vertical" android:paddingVertical="13dp">
|
||
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Transaction date" android:textSize="13sp" android:textColor="#000000" android:fontFamily="@font/sofia_pro" />
|
||
<View android:layout_width="0dp" android:layout_height="1dp" android:layout_weight="1" />
|
||
<TextView android:id="@+id/tvTransactionDate" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="15sp" android:textColor="#808080" android:fontFamily="@font/sofia_pro" />
|
||
</LinearLayout>
|
||
<View android:layout_width="match_parent" android:layout_height="1dp" android:background="#E9E9E9" />
|
||
|
||
<!-- From (value uppercase) -->
|
||
<LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:gravity="center_vertical" android:paddingVertical="13dp">
|
||
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="From" android:textSize="13sp" android:textColor="#000000" android:fontFamily="@font/sofia_pro" />
|
||
<View android:layout_width="0dp" android:layout_height="1dp" android:layout_weight="1" />
|
||
<TextView android:id="@+id/tvFrom" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="15sp" android:textColor="#808080" android:fontFamily="@font/sofia_pro" android:textAllCaps="false" />
|
||
</LinearLayout>
|
||
<View android:layout_width="match_parent" android:layout_height="1dp" android:background="#E9E9E9" />
|
||
|
||
<!-- To (stacked name + account) -->
|
||
<LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:gravity="center_vertical" android:paddingVertical="13dp">
|
||
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="To" android:textSize="13sp" android:textColor="#000000" android:fontFamily="@font/sofia_pro" />
|
||
<View android:layout_width="0dp" android:layout_height="1dp" android:layout_weight="1" />
|
||
<LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical" android:gravity="end">
|
||
<TextView android:id="@+id/tvToName" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="15sp" android:textColor="#808080" android:fontFamily="@font/sofia_pro" android:gravity="end" />
|
||
<TextView android:id="@+id/tvToAccount" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="2dp" android:textSize="15sp" android:textColor="#808080" android:fontFamily="@font/sofia_pro" android:gravity="end" />
|
||
</LinearLayout>
|
||
</LinearLayout>
|
||
<View android:layout_width="match_parent" android:layout_height="1dp" android:background="#E9E9E9" />
|
||
|
||
<!-- Amount (value = green #8BC155) -->
|
||
<LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:gravity="center_vertical" android:paddingVertical="13dp">
|
||
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Amount" android:textSize="13sp" android:textColor="#000000" android:fontFamily="@font/sofia_pro" />
|
||
<View android:layout_width="0dp" android:layout_height="1dp" android:layout_weight="1" />
|
||
<TextView android:id="@+id/tvAmountRow" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="15sp" android:textColor="#8BC155" android:fontFamily="@font/sofia_pro" />
|
||
</LinearLayout>
|
||
|
||
<!-- Remarks (hidden when empty) -->
|
||
<View android:id="@+id/remarksDivider" android:layout_width="match_parent" android:layout_height="1dp" android:background="#E9E9E9" android:visibility="gone" />
|
||
<LinearLayout android:id="@+id/remarksRow" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:gravity="center_vertical" android:paddingVertical="13dp" android:visibility="gone">
|
||
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Remarks" android:textSize="13sp" android:textColor="#000000" android:fontFamily="@font/sofia_pro" />
|
||
<View android:layout_width="0dp" android:layout_height="1dp" android:layout_weight="1" />
|
||
<TextView android:id="@+id/tvRemarks" android:layout_width="0dp" android:layout_weight="1.4" android:layout_height="wrap_content" android:textSize="15sp" android:textColor="#808080" android:fontFamily="@font/sofia_pro" android:gravity="end" />
|
||
</LinearLayout>
|
||
|
||
</LinearLayout>
|
||
|
||
<!-- ══════════════════════════════════════════════════════════════════ -->
|
||
<!-- Footer — bottom wave + #F5F5F5 bg + "Bank of Maldives" -->
|
||
<!-- 113px gap ≈ 38dp, then wave overlaps, then footer rect 157px≈52dp-->
|
||
<!-- ══════════════════════════════════════════════════════════════════ -->
|
||
|
||
<!-- Gap between last row and footer wave (113px / 3 ≈ 38dp) -->
|
||
<View android:layout_width="match_parent" android:layout_height="38dp" />
|
||
|
||
<!-- Bottom wave — sits on top of footer, extends slightly upward -->
|
||
<ImageView
|
||
android:layout_width="match_parent"
|
||
android:layout_height="wrap_content"
|
||
android:src="@drawable/bottom_receipt_wave"
|
||
android:scaleType="fitXY"
|
||
android:adjustViewBounds="true"
|
||
android:layout_marginTop="-4dp"
|
||
android:contentDescription="@null" />
|
||
|
||
<!-- Footer — #F5F5F5, "Bank of Maldives" centered -->
|
||
<LinearLayout
|
||
android:layout_width="match_parent"
|
||
android:layout_height="wrap_content"
|
||
android:orientation="vertical"
|
||
android:gravity="center"
|
||
android:background="#F5F5F5"
|
||
android:paddingVertical="22dp">
|
||
|
||
<TextView
|
||
android:layout_width="wrap_content"
|
||
android:layout_height="wrap_content"
|
||
android:text="Bank of Maldives"
|
||
android:textSize="13sp"
|
||
android:textColor="#848484"
|
||
android:fontFamily="@font/sofia_pro"
|
||
android:gravity="center" />
|
||
|
||
</LinearLayout>
|
||
|
||
</LinearLayout>
|
||
|
||
<!-- ══════════════════════════════════════════════════════════════════════ -->
|
||
<!-- Action buttons — outside renderable area -->
|
||
<!-- ══════════════════════════════════════════════════════════════════════ -->
|
||
<LinearLayout
|
||
android:layout_width="match_parent"
|
||
android:layout_height="wrap_content"
|
||
android:orientation="horizontal"
|
||
android:background="?attr/colorSurface"
|
||
android:paddingHorizontal="12dp"
|
||
android:paddingTop="8dp"
|
||
android:paddingBottom="12dp">
|
||
|
||
<com.google.android.material.button.MaterialButton
|
||
android:id="@+id/btnShare"
|
||
style="@style/Widget.Material3.Button.OutlinedButton"
|
||
android:layout_width="0dp"
|
||
android:layout_height="wrap_content"
|
||
android:layout_weight="1"
|
||
android:layout_marginEnd="4dp"
|
||
android:text="Share"
|
||
app:icon="@drawable/ic_share" />
|
||
|
||
<com.google.android.material.button.MaterialButton
|
||
android:id="@+id/btnSave"
|
||
style="@style/Widget.Material3.Button.OutlinedButton"
|
||
android:layout_width="0dp"
|
||
android:layout_height="wrap_content"
|
||
android:layout_weight="1"
|
||
android:layout_marginHorizontal="4dp"
|
||
android:text="Save"
|
||
app:icon="@drawable/ic_save" />
|
||
|
||
<com.google.android.material.button.MaterialButton
|
||
android:id="@+id/btnDone"
|
||
android:layout_width="0dp"
|
||
android:layout_height="wrap_content"
|
||
android:layout_weight="1"
|
||
android:layout_marginStart="4dp"
|
||
android:text="Done" />
|
||
|
||
</LinearLayout>
|
||
|
||
</LinearLayout>
|