diff --git a/app/src/main/java/com/example/bdkipoc/transaction/CreateTransactionActivity.java b/app/src/main/java/com/example/bdkipoc/transaction/CreateTransactionActivity.java
index 6b1386e..8e3a4b5 100644
--- a/app/src/main/java/com/example/bdkipoc/transaction/CreateTransactionActivity.java
+++ b/app/src/main/java/com/example/bdkipoc/transaction/CreateTransactionActivity.java
@@ -9,13 +9,13 @@ import android.view.View;
import android.widget.Button;
import android.widget.FrameLayout;
import android.widget.ImageView;
+import android.widget.LinearLayout;
import android.widget.ProgressBar;
import android.widget.TextView;
import android.widget.Toast;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
-import androidx.appcompat.widget.Toolbar;
import com.example.bdkipoc.R;
import com.example.bdkipoc.transaction.managers.CardScannerManager;
@@ -29,7 +29,7 @@ import java.util.Locale;
import com.example.bdkipoc.kredit.CreditCardActivity;
/**
- * CreateTransactionActivity - Refactored with Manager Classes
+ * CreateTransactionActivity - Updated UI to match screenshot design
* Handles amount input and card scanning in one screen
* Located in transaction package
*/
@@ -46,9 +46,11 @@ public class CreateTransactionActivity extends AppCompatActivity implements
private Button btnConfirm;
private Button btnToggleMode;
private ProgressBar progressBar;
+ private LinearLayout backNavigation;
- // Amount Input Keypad
- private Button btn1, btn2, btn3, btn4, btn5, btn6, btn7, btn8, btn9, btn0, btn00, btnClear;
+ // Amount Input Keypad (now TextViews)
+ private TextView btn1, btn2, btn3, btn4, btn5, btn6, btn7, btn8, btn9, btn0, btn00;
+ private ImageView btnClear;
// State Management
private String transactionAmount = "0";
@@ -77,22 +79,15 @@ public class CreateTransactionActivity extends AppCompatActivity implements
}
private void initViews() {
- // Setup Toolbar
- Toolbar toolbar = findViewById(R.id.toolbar);
- setSupportActionBar(toolbar);
- if (getSupportActionBar() != null) {
- getSupportActionBar().setDisplayHomeAsUpEnabled(true);
- getSupportActionBar().setTitle("Input Nominal Transaksi");
- }
-
// Initialize amount input UI components
tvAmountDisplay = findViewById(R.id.tv_amount_display);
tvModeIndicator = findViewById(R.id.tv_mode_indicator);
btnConfirm = findViewById(R.id.btn_confirm);
btnToggleMode = findViewById(R.id.btn_toggle_mode);
progressBar = findViewById(R.id.progress_bar);
+ backNavigation = findViewById(R.id.back_navigation);
- // Initialize keypad buttons
+ // Initialize keypad buttons (now TextViews)
btn1 = findViewById(R.id.btn_1);
btn2 = findViewById(R.id.btn_2);
btn3 = findViewById(R.id.btn_3);
@@ -126,10 +121,16 @@ public class CreateTransactionActivity extends AppCompatActivity implements
}
private void setupListeners() {
- // Keypad number listeners
+ // Back navigation listener
+ backNavigation.setOnClickListener(v -> {
+ cleanup();
+ finish();
+ });
+
+ // Keypad number listeners for TextViews
View.OnClickListener numberClickListener = v -> {
- Button btn = (Button) v;
- String number = btn.getText().toString();
+ TextView textView = (TextView) v;
+ String number = textView.getText().toString();
appendToAmount(number);
};
@@ -145,13 +146,13 @@ public class CreateTransactionActivity extends AppCompatActivity implements
btn0.setOnClickListener(numberClickListener);
btn00.setOnClickListener(numberClickListener);
- // Clear button
+ // Clear button (ImageView)
btnClear.setOnClickListener(v -> clearAmount());
// Confirm button - shows modal and starts scanning
btnConfirm.setOnClickListener(v -> handleConfirmAmount());
- // Toggle mode button
+ // Toggle mode button (hidden but functional)
btnToggleMode.setOnClickListener(v -> toggleEMVMode());
// Modal overlay click to close (only if not processing)
@@ -184,11 +185,18 @@ public class CreateTransactionActivity extends AppCompatActivity implements
private void updateAmountDisplay() {
if (tvAmountDisplay != null) {
- long amountCents = Long.parseLong(transactionAmount);
- double amountRupiah = amountCents / 100.0;
- NumberFormat formatter = NumberFormat.getCurrencyInstance(new Locale("id", "ID"));
- String formattedAmount = formatter.format(amountRupiah);
- tvAmountDisplay.setText(formattedAmount);
+ if (transactionAmount.equals("0")) {
+ tvAmountDisplay.setText("");
+ } else {
+ // Format the number with thousand separators but without currency symbol
+ long amountCents = Long.parseLong(transactionAmount);
+
+ // Format as integer with thousand separators
+ NumberFormat formatter = NumberFormat.getNumberInstance(new Locale("id", "ID"));
+ String formattedAmount = formatter.format(amountCents);
+
+ tvAmountDisplay.setText(formattedAmount);
+ }
}
}
@@ -465,10 +473,9 @@ public class CreateTransactionActivity extends AppCompatActivity implements
}
@Override
- public boolean onSupportNavigateUp() {
+ public void onBackPressed() {
cleanup();
- finish();
- return true;
+ super.onBackPressed();
}
@Override
diff --git a/app/src/main/res/layout/activity_create_transaction.xml b/app/src/main/res/layout/activity_create_transaction.xml
index 5f20624..5bd7e52 100644
--- a/app/src/main/res/layout/activity_create_transaction.xml
+++ b/app/src/main/res/layout/activity_create_transaction.xml
@@ -4,220 +4,298 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
- android:background="@color/colorBackground"
- tools:context=".kredit.CreateTransactionActivity">
+ android:background="#FFFFFF"
+ tools:context=".transaction.CreateTransactionActivity">
+ android:fillViewport="true"
+ android:overScrollMode="never"
+ android:scrollbars="none"
+ android:background="#FFFFFF">
-
+
+
+
+
+
+
+
+
+
+ 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">
-
-
+
+
+
+
+
+
+
+
+
+
-
+ android:padding="20dp">
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+ android:text="TOTAL PEMBAYARAN"
+ android:textColor="@android:color/white"
+ android:textSize="18sp"
+ android:textStyle="bold"
+ android:fontFamily="@font/inter"
+ android:layout_marginBottom="24dp" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
+
+ android:focusable="true"
+ android:elevation="100dp">
+ app:tint="#E31937" />