386 lines
17 KiB
XML
386 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">
|
|
|
|
<ScrollView
|
|
android:id="@+id/receiptContainer"
|
|
android:layout_width="match_parent"
|
|
android:layout_height="0dp"
|
|
android:layout_weight="1"
|
|
android:overScrollMode="never"
|
|
android:scrollbars="none">
|
|
|
|
<!-- ════════════════════════════════════════════════════════════════════ -->
|
|
<!-- Renderable receipt card -->
|
|
<!-- ════════════════════════════════════════════════════════════════════ -->
|
|
<LinearLayout
|
|
android:id="@+id/receiptCard"
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content"
|
|
android:orientation="vertical"
|
|
android:background="#FFFFFF">
|
|
|
|
<!-- Top: m-faisaa logo on white -->
|
|
<ImageView
|
|
android:layout_width="78dp"
|
|
android:layout_height="102dp"
|
|
android:layout_gravity="center_horizontal"
|
|
android:layout_marginTop="42dp"
|
|
android:src="@drawable/mfaisaa_logo_with_text"
|
|
android:contentDescription="@null" />
|
|
|
|
<!-- White→gray fade leading into the top zigzag tear -->
|
|
<View
|
|
android:layout_width="match_parent"
|
|
android:layout_height="38dp"
|
|
android:layout_marginTop="22dp"
|
|
android:background="@drawable/bg_mfaisa_receipt_gradient_top" />
|
|
|
|
<!-- Top zigzag tear: white teeth poking up into the gray fade above -->
|
|
<ImageView
|
|
android:layout_width="match_parent"
|
|
android:layout_height="20dp"
|
|
android:scaleType="fitXY"
|
|
android:src="@drawable/receipt_mfaisa_top"
|
|
android:contentDescription="@null" />
|
|
|
|
<!-- ════════════════════════════════════════════════════════════════ -->
|
|
<!-- Receipt body -->
|
|
<!-- ════════════════════════════════════════════════════════════════ -->
|
|
<LinearLayout
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content"
|
|
android:orientation="vertical"
|
|
android:background="#FFFFFF"
|
|
android:paddingHorizontal="24dp"
|
|
android:paddingTop="40dp"
|
|
android:paddingBottom="32dp">
|
|
|
|
<!-- Total amount row with green check -->
|
|
<LinearLayout
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content"
|
|
android:orientation="horizontal"
|
|
android:gravity="center_vertical">
|
|
|
|
<LinearLayout
|
|
android:layout_width="0dp"
|
|
android:layout_height="wrap_content"
|
|
android:layout_weight="1"
|
|
android:orientation="vertical">
|
|
|
|
<TextView
|
|
android:layout_width="wrap_content"
|
|
android:layout_height="wrap_content"
|
|
android:text="Total Amount"
|
|
android:textSize="13sp"
|
|
android:textStyle="bold"
|
|
android:textColor="#7A7A7A"
|
|
android:fontFamily="@font/nunito_sans" />
|
|
|
|
<TextView
|
|
android:id="@+id/tvAmount"
|
|
android:layout_width="wrap_content"
|
|
android:layout_height="wrap_content"
|
|
android:layout_marginTop="4dp"
|
|
android:textSize="30sp"
|
|
android:textStyle="bold"
|
|
android:textColor="#A2D40A"
|
|
android:fontFamily="@font/nunito_sans" />
|
|
|
|
</LinearLayout>
|
|
|
|
<ImageView
|
|
android:layout_width="28dp"
|
|
android:layout_height="28dp"
|
|
android:src="@drawable/ic_mfaisa_receipt_check"
|
|
android:contentDescription="@null" />
|
|
|
|
</LinearLayout>
|
|
|
|
<View
|
|
android:layout_width="match_parent"
|
|
android:layout_height="1dp"
|
|
android:layout_marginTop="20dp"
|
|
android:background="#EAEAEA" />
|
|
|
|
<!-- Status -->
|
|
<LinearLayout
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content"
|
|
android:orientation="vertical"
|
|
android:paddingVertical="14dp">
|
|
|
|
<TextView
|
|
android:layout_width="wrap_content"
|
|
android:layout_height="wrap_content"
|
|
android:text="Status"
|
|
android:textSize="13sp"
|
|
android:textStyle="bold"
|
|
android:textColor="#7A7A7A"
|
|
android:fontFamily="@font/nunito_sans" />
|
|
|
|
<TextView
|
|
android:id="@+id/tvStatus"
|
|
android:layout_width="wrap_content"
|
|
android:layout_height="wrap_content"
|
|
android:layout_marginTop="2dp"
|
|
android:text="Success"
|
|
android:textSize="15sp"
|
|
android:textStyle="bold"
|
|
android:textColor="#7A7A7A"
|
|
android:fontFamily="@font/nunito_sans" />
|
|
|
|
</LinearLayout>
|
|
|
|
<View
|
|
android:layout_width="match_parent"
|
|
android:layout_height="1dp"
|
|
android:background="#EAEAEA" />
|
|
|
|
<!-- Transaction type -->
|
|
<LinearLayout
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content"
|
|
android:orientation="vertical"
|
|
android:paddingVertical="14dp">
|
|
|
|
<TextView
|
|
android:layout_width="wrap_content"
|
|
android:layout_height="wrap_content"
|
|
android:text="Transaction type"
|
|
android:textSize="13sp"
|
|
android:textStyle="bold"
|
|
android:textColor="#7A7A7A"
|
|
android:fontFamily="@font/nunito_sans" />
|
|
|
|
<TextView
|
|
android:id="@+id/tvTransactionType"
|
|
android:layout_width="wrap_content"
|
|
android:layout_height="wrap_content"
|
|
android:layout_marginTop="2dp"
|
|
android:textSize="15sp"
|
|
android:textStyle="bold"
|
|
android:textColor="#7A7A7A"
|
|
android:fontFamily="@font/nunito_sans" />
|
|
|
|
</LinearLayout>
|
|
|
|
<View
|
|
android:layout_width="match_parent"
|
|
android:layout_height="1dp"
|
|
android:background="#EAEAEA" />
|
|
|
|
<!-- From -->
|
|
<LinearLayout
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content"
|
|
android:orientation="vertical"
|
|
android:paddingVertical="14dp">
|
|
|
|
<TextView
|
|
android:layout_width="wrap_content"
|
|
android:layout_height="wrap_content"
|
|
android:text="From"
|
|
android:textSize="13sp"
|
|
android:textStyle="bold"
|
|
android:textColor="#7A7A7A"
|
|
android:fontFamily="@font/nunito_sans" />
|
|
|
|
<TextView
|
|
android:id="@+id/tvFromName"
|
|
android:layout_width="wrap_content"
|
|
android:layout_height="wrap_content"
|
|
android:layout_marginTop="2dp"
|
|
android:textSize="15sp"
|
|
android:textStyle="bold"
|
|
android:textColor="#7A7A7A"
|
|
android:fontFamily="@font/nunito_sans" />
|
|
|
|
<TextView
|
|
android:id="@+id/tvFromMsisdn"
|
|
android:layout_width="wrap_content"
|
|
android:layout_height="wrap_content"
|
|
android:layout_marginTop="2dp"
|
|
android:textSize="15sp"
|
|
android:textStyle="bold"
|
|
android:textColor="#7A7A7A"
|
|
android:fontFamily="@font/nunito_sans" />
|
|
|
|
</LinearLayout>
|
|
|
|
<View
|
|
android:layout_width="match_parent"
|
|
android:layout_height="1dp"
|
|
android:background="#EAEAEA" />
|
|
|
|
<!-- To -->
|
|
<LinearLayout
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content"
|
|
android:orientation="vertical"
|
|
android:paddingVertical="14dp">
|
|
|
|
<TextView
|
|
android:layout_width="wrap_content"
|
|
android:layout_height="wrap_content"
|
|
android:text="To"
|
|
android:textSize="13sp"
|
|
android:textStyle="bold"
|
|
android:textColor="#7A7A7A"
|
|
android:fontFamily="@font/nunito_sans" />
|
|
|
|
<TextView
|
|
android:id="@+id/tvToName"
|
|
android:layout_width="wrap_content"
|
|
android:layout_height="wrap_content"
|
|
android:layout_marginTop="2dp"
|
|
android:textSize="15sp"
|
|
android:textStyle="bold"
|
|
android:textColor="#7A7A7A"
|
|
android:fontFamily="@font/nunito_sans" />
|
|
|
|
<TextView
|
|
android:id="@+id/tvToMsisdn"
|
|
android:layout_width="wrap_content"
|
|
android:layout_height="wrap_content"
|
|
android:layout_marginTop="2dp"
|
|
android:textSize="15sp"
|
|
android:textStyle="bold"
|
|
android:textColor="#7A7A7A"
|
|
android:fontFamily="@font/nunito_sans" />
|
|
|
|
</LinearLayout>
|
|
|
|
<View
|
|
android:layout_width="match_parent"
|
|
android:layout_height="1dp"
|
|
android:background="#EAEAEA" />
|
|
|
|
<!-- Date & Time -->
|
|
<LinearLayout
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content"
|
|
android:orientation="vertical"
|
|
android:paddingVertical="14dp">
|
|
|
|
<TextView
|
|
android:layout_width="wrap_content"
|
|
android:layout_height="wrap_content"
|
|
android:text="Date & Time"
|
|
android:textSize="13sp"
|
|
android:textStyle="bold"
|
|
android:textColor="#7A7A7A"
|
|
android:fontFamily="@font/nunito_sans" />
|
|
|
|
<TextView
|
|
android:id="@+id/tvDateTime"
|
|
android:layout_width="wrap_content"
|
|
android:layout_height="wrap_content"
|
|
android:layout_marginTop="2dp"
|
|
android:textSize="15sp"
|
|
android:textStyle="bold"
|
|
android:textColor="#7A7A7A"
|
|
android:fontFamily="@font/nunito_sans" />
|
|
|
|
</LinearLayout>
|
|
|
|
<!-- Remarks (hidden when empty) -->
|
|
<View
|
|
android:id="@+id/remarksDivider"
|
|
android:layout_width="match_parent"
|
|
android:layout_height="1dp"
|
|
android:background="#EAEAEA"
|
|
android:visibility="gone" />
|
|
|
|
<LinearLayout
|
|
android:id="@+id/remarksRow"
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content"
|
|
android:orientation="vertical"
|
|
android:paddingVertical="14dp"
|
|
android:visibility="gone">
|
|
|
|
<TextView
|
|
android:layout_width="wrap_content"
|
|
android:layout_height="wrap_content"
|
|
android:text="Remarks"
|
|
android:textSize="13sp"
|
|
android:textStyle="bold"
|
|
android:textColor="#7A7A7A"
|
|
android:fontFamily="@font/nunito_sans" />
|
|
|
|
<TextView
|
|
android:id="@+id/tvRemarks"
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content"
|
|
android:layout_marginTop="2dp"
|
|
android:textSize="15sp"
|
|
android:textStyle="bold"
|
|
android:textColor="#7A7A7A"
|
|
android:fontFamily="@font/nunito_sans" />
|
|
|
|
</LinearLayout>
|
|
|
|
</LinearLayout>
|
|
|
|
<!-- Bottom zigzag tear: white teeth poking down into the gray fade below -->
|
|
<ImageView
|
|
android:layout_width="match_parent"
|
|
android:layout_height="20dp"
|
|
android:scaleType="fitXY"
|
|
android:src="@drawable/receipt_mfaisa_bottom"
|
|
android:contentDescription="@null" />
|
|
|
|
<!-- Gray→white fade trailing the bottom zigzag -->
|
|
<View
|
|
android:layout_width="match_parent"
|
|
android:layout_height="40dp"
|
|
android:background="@drawable/bg_mfaisa_receipt_gradient_bottom" />
|
|
|
|
</LinearLayout>
|
|
|
|
</ScrollView>
|
|
|
|
<!-- ════════════════════════════════════════════════════════════════════════ -->
|
|
<!-- Action buttons — outside renderable area -->
|
|
<!-- ════════════════════════════════════════════════════════════════════════ -->
|
|
<LinearLayout
|
|
android:id="@+id/btnRow"
|
|
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_marginStart="4dp"
|
|
android:text="Save"
|
|
app:icon="@drawable/ic_save" />
|
|
|
|
</LinearLayout>
|
|
|
|
</LinearLayout>
|