306 lines
12 KiB
XML
306 lines
12 KiB
XML
<?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:layout_height="match_parent"
|
||
android:fillViewport="true"
|
||
android:overScrollMode="never"
|
||
android:scrollbars="none"
|
||
android:background="#FFFFFF">
|
||
|
||
<androidx.constraintlayout.widget.ConstraintLayout
|
||
android:layout_width="match_parent"
|
||
android:layout_height="match_parent"
|
||
android:background="#FFFFFF"
|
||
tools:context=".QrisActivity">
|
||
|
||
<!-- Red Status Bar -->
|
||
<View
|
||
android:id="@+id/red_status_bar"
|
||
android:layout_width="match_parent"
|
||
android:layout_height="24dp"
|
||
android:background="#E31937"
|
||
app:layout_constraintTop_toTopOf="parent"/>
|
||
|
||
<!-- Red Background Header -->
|
||
<View
|
||
android:id="@+id/red_header_background"
|
||
android:layout_width="match_parent"
|
||
android:layout_height="160dp"
|
||
android:background="#E31937"
|
||
app:layout_constraintTop_toBottomOf="@id/red_status_bar"/>
|
||
|
||
<!-- Back Navigation -->
|
||
<LinearLayout
|
||
android:id="@+id/back_navigation"
|
||
android:layout_width="wrap_content"
|
||
android:layout_height="wrap_content"
|
||
android:orientation="horizontal"
|
||
android:gravity="center_vertical"
|
||
android:layout_marginStart="16dp"
|
||
android:layout_marginBottom="5dp"
|
||
android:background="?attr/selectableItemBackgroundBorderless"
|
||
android:padding="8dp"
|
||
app:layout_constraintStart_toStartOf="parent"
|
||
app:layout_constraintTop_toBottomOf="@id/red_status_bar">
|
||
|
||
<!-- Back Arrow -->
|
||
<TextView
|
||
android:layout_width="wrap_content"
|
||
android:layout_height="wrap_content"
|
||
android:text="‹"
|
||
android:textColor="@android:color/white"
|
||
android:textSize="18sp"
|
||
android:textStyle="bold"
|
||
android:layout_marginEnd="8dp" />
|
||
|
||
<!-- Title Text -->
|
||
<TextView
|
||
android:id="@+id/toolbarTitle"
|
||
android:layout_width="wrap_content"
|
||
android:layout_height="wrap_content"
|
||
android:text="Kembali"
|
||
android:textColor="@android:color/white"
|
||
android:textSize="12sp"
|
||
android:textStyle="normal" />
|
||
|
||
<!-- Hidden back arrow for Java compatibility -->
|
||
<ImageView
|
||
android:id="@+id/backArrow"
|
||
android:layout_width="0dp"
|
||
android:layout_height="0dp"
|
||
android:visibility="gone" />
|
||
</LinearLayout>
|
||
|
||
<!-- Payment Card -->
|
||
<androidx.cardview.widget.CardView
|
||
android:id="@+id/paymentCard"
|
||
android:layout_width="match_parent"
|
||
android:layout_height="191dp"
|
||
android:layout_margin="16dp"
|
||
android:layout_marginTop="5dp"
|
||
app:cardBackgroundColor="#3498DB"
|
||
app:cardCornerRadius="12dp"
|
||
app:cardElevation="8dp"
|
||
app:layout_constraintTop_toBottomOf="@id/back_navigation">
|
||
|
||
<LinearLayout
|
||
android:layout_width="match_parent"
|
||
android:layout_height="match_parent"
|
||
android:orientation="vertical"
|
||
android:padding="20dp">
|
||
|
||
<!-- Title -->
|
||
<TextView
|
||
android:layout_width="match_parent"
|
||
android:layout_height="wrap_content"
|
||
android:text="TOTAL PEMBAYARAN"
|
||
android:textColor="@android:color/white"
|
||
android:textSize="18sp"
|
||
android:textStyle="bold"
|
||
android:layout_marginBottom="24dp"
|
||
android:gravity="center" />
|
||
|
||
<!-- RP Label -->
|
||
<TextView
|
||
android:layout_width="match_parent"
|
||
android:layout_height="wrap_content"
|
||
android:text="RP"
|
||
android:textColor="@android:color/white"
|
||
android:textSize="20sp"
|
||
android:textStyle="bold"
|
||
android:layout_marginBottom="8dp" />
|
||
|
||
<!-- Amount Input Field (initially hidden) -->
|
||
<EditText
|
||
android:id="@+id/editTextAmount"
|
||
android:layout_width="match_parent"
|
||
android:layout_height="wrap_content"
|
||
android:background="@android:color/transparent"
|
||
android:textColor="@android:color/white"
|
||
android:textSize="20sp"
|
||
android:textStyle="bold"
|
||
android:inputType="none"
|
||
android:focusable="false"
|
||
android:clickable="false"
|
||
android:cursorVisible="false"
|
||
android:text=""
|
||
android:gravity="start"
|
||
android:paddingBottom="4dp"
|
||
android:visibility="gone" />
|
||
|
||
<!-- Description Text (always visible initially) -->
|
||
<TextView
|
||
android:id="@+id/descriptionText"
|
||
android:layout_width="match_parent"
|
||
android:layout_height="wrap_content"
|
||
android:text="Pastikan kembali nominal pembayaran pelanggan Anda"
|
||
android:textColor="@android:color/white"
|
||
android:textSize="12sp"
|
||
android:alpha="0.9"
|
||
android:layout_marginBottom="8dp" />
|
||
|
||
<!-- White Underline -->
|
||
<View
|
||
android:layout_width="match_parent"
|
||
android:layout_height="2dp"
|
||
android:background="@android:color/white" />
|
||
|
||
<!-- Hidden Reference ID for internal use -->
|
||
<TextView
|
||
android:id="@+id/referenceIdTextView"
|
||
android:layout_width="match_parent"
|
||
android:layout_height="wrap_content"
|
||
android:text="ref-abcd1234"
|
||
android:textColor="@android:color/white"
|
||
android:textSize="12sp"
|
||
android:visibility="gone" />
|
||
</LinearLayout>
|
||
</androidx.cardview.widget.CardView>
|
||
|
||
<!-- Main Content Layout -->
|
||
<LinearLayout
|
||
android:id="@+id/mainContentLayout"
|
||
android:layout_width="match_parent"
|
||
android:layout_height="wrap_content"
|
||
android:orientation="vertical"
|
||
app:layout_constraintTop_toBottomOf="@id/paymentCard"
|
||
app:layout_constraintBottom_toTopOf="@id/initiatePaymentButton">
|
||
|
||
<!-- Numpad -->
|
||
<GridLayout
|
||
android:id="@+id/numpad_grid"
|
||
android:layout_width="match_parent"
|
||
android:layout_height="wrap_content"
|
||
android:columnCount="3"
|
||
android:rowCount="4"
|
||
android:layout_marginTop="8dp"
|
||
android:layout_marginStart="16dp"
|
||
android:layout_marginEnd="16dp">
|
||
|
||
<!-- Row 1: 1, 2, 3 -->
|
||
<TextView
|
||
android:id="@+id/btn1"
|
||
style="@style/NumpadButton"
|
||
android:text="1" />
|
||
|
||
<TextView
|
||
android:id="@+id/btn2"
|
||
style="@style/NumpadButton"
|
||
android:text="2" />
|
||
|
||
<TextView
|
||
android:id="@+id/btn3"
|
||
style="@style/NumpadButton"
|
||
android:text="3" />
|
||
|
||
<!-- Row 2: 4, 5, 6 -->
|
||
<TextView
|
||
android:id="@+id/btn4"
|
||
style="@style/NumpadButton"
|
||
android:text="4" />
|
||
|
||
<TextView
|
||
android:id="@+id/btn5"
|
||
style="@style/NumpadButton"
|
||
android:text="5" />
|
||
|
||
<TextView
|
||
android:id="@+id/btn6"
|
||
style="@style/NumpadButton"
|
||
android:text="6" />
|
||
|
||
<!-- Row 3: 7, 8, 9 -->
|
||
<TextView
|
||
android:id="@+id/btn7"
|
||
style="@style/NumpadButton"
|
||
android:text="7" />
|
||
|
||
<TextView
|
||
android:id="@+id/btn8"
|
||
style="@style/NumpadButton"
|
||
android:text="8" />
|
||
|
||
<TextView
|
||
android:id="@+id/btn9"
|
||
style="@style/NumpadButton"
|
||
android:text="9" />
|
||
|
||
<!-- Row 4: 000, 0, Delete -->
|
||
<TextView
|
||
android:id="@+id/btn000"
|
||
style="@style/NumpadButton"
|
||
android:text="000" />
|
||
|
||
<TextView
|
||
android:id="@+id/btn0"
|
||
style="@style/NumpadButton"
|
||
android:text="0" />
|
||
|
||
<TextView
|
||
android:id="@+id/btnDelete"
|
||
android:layout_width="0dp"
|
||
android:layout_height="60dp"
|
||
android:layout_columnWeight="1"
|
||
android:layout_margin="8dp"
|
||
android:background="?attr/selectableItemBackgroundBorderless"
|
||
android:gravity="center"
|
||
android:text="⌫"
|
||
android:textColor="@android:color/black"
|
||
android:textSize="28sp"
|
||
android:clickable="true"
|
||
android:focusable="true"
|
||
android:contentDescription="Delete" />
|
||
</GridLayout>
|
||
</LinearLayout>
|
||
|
||
<!-- Confirmation Button -->
|
||
<com.google.android.material.button.MaterialButton
|
||
android:id="@+id/initiatePaymentButton"
|
||
android:layout_width="match_parent"
|
||
android:layout_height="48dp"
|
||
android:text="Konfirmasi"
|
||
android:textColor="#FFFFFF"
|
||
android:textSize="16sp"
|
||
android:textStyle="bold"
|
||
android:layout_marginStart="16dp"
|
||
android:layout_marginEnd="16dp"
|
||
android:layout_marginTop="24dp"
|
||
android:layout_marginBottom="24dp"
|
||
android:enabled="false"
|
||
app:backgroundTint="#DE0701"
|
||
app:cornerRadius="8dp"
|
||
app:rippleColor="#B3000000"
|
||
app:layout_constraintBottom_toBottomOf="parent" />
|
||
|
||
<!-- Progress Bar (For create transaction loading) -->
|
||
<ProgressBar
|
||
android:id="@+id/progressBar"
|
||
android:layout_width="wrap_content"
|
||
android:layout_height="wrap_content"
|
||
android:visibility="gone"
|
||
app:layout_constraintBottom_toBottomOf="parent"
|
||
app:layout_constraintEnd_toEndOf="parent"
|
||
app:layout_constraintStart_toStartOf="parent"
|
||
app:layout_constraintTop_toTopOf="parent" />
|
||
|
||
<!-- Status Text (For create transaction status) -->
|
||
<TextView
|
||
android:id="@+id/statusTextView"
|
||
android:layout_width="match_parent"
|
||
android:layout_height="wrap_content"
|
||
android:layout_margin="16dp"
|
||
android:gravity="center"
|
||
android:text="Ready to make a payment"
|
||
android:textSize="18sp"
|
||
android:textColor="@android:color/black"
|
||
android:visibility="gone"
|
||
app:layout_constraintTop_toBottomOf="@id/progressBar"
|
||
app:layout_constraintStart_toStartOf="parent"
|
||
app:layout_constraintEnd_toEndOf="parent" />
|
||
|
||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||
|
||
</ScrollView> |