Safepoint Transaction-1
This commit is contained in:
parent
ece79942c1
commit
f5d9e53118
@ -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
|
||||
|
@ -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">
|
||||
|
||||
<!-- Main Content -->
|
||||
<ScrollView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:fillViewport="true">
|
||||
android:fillViewport="true"
|
||||
android:overScrollMode="never"
|
||||
android:scrollbars="none"
|
||||
android:background="#FFFFFF">
|
||||
|
||||
<LinearLayout
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="#FFFFFF">
|
||||
|
||||
<!-- 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="vertical">
|
||||
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">
|
||||
|
||||
<!-- Toolbar -->
|
||||
<androidx.appcompat.widget.Toolbar
|
||||
android:id="@+id/toolbar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="?attr/actionBarSize"
|
||||
android:background="@color/primary_blue"
|
||||
android:theme="@style/CustomToolbarTheme"
|
||||
app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />
|
||||
<!-- Back Arrow -->
|
||||
<ImageView
|
||||
android:id="@+id/backArrow"
|
||||
android:layout_width="16dp"
|
||||
android:layout_height="16dp"
|
||||
android:src="@drawable/ic_arrow_back"
|
||||
android:contentDescription="Back" />
|
||||
|
||||
<!-- Title Text -->
|
||||
<TextView
|
||||
android:id="@+id/toolbarTitle"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="8dp"
|
||||
android:text="Kembali"
|
||||
android:textColor="@android:color/white"
|
||||
android:textSize="12sp"
|
||||
android:fontFamily="@font/inter"
|
||||
android:textStyle="normal" />
|
||||
|
||||
</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">
|
||||
|
||||
<!-- Content Container -->
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical"
|
||||
android:padding="16dp">
|
||||
android:padding="20dp">
|
||||
|
||||
<!-- Header Section -->
|
||||
<androidx.cardview.widget.CardView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="24dp"
|
||||
app:cardCornerRadius="12dp"
|
||||
app:cardElevation="4dp">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:padding="20dp">
|
||||
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="MASUKKAN NOMINAL"
|
||||
android:textSize="18sp"
|
||||
android:textStyle="bold"
|
||||
android:textColor="#333333"
|
||||
android:gravity="center"
|
||||
android:layout_marginBottom="16dp" />
|
||||
|
||||
<!-- Amount Display -->
|
||||
<TextView
|
||||
android:id="@+id/tv_amount_display"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="Rp 0,00"
|
||||
style="@style/AmountDisplayStyle"
|
||||
android:layout_marginBottom="8dp" />
|
||||
|
||||
<!-- Mode Indicator -->
|
||||
<TextView
|
||||
android:id="@+id/tv_mode_indicator"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="Current Mode: EMV Mode (Full Card Data)"
|
||||
style="@style/ModeIndicatorStyle" />
|
||||
|
||||
</LinearLayout>
|
||||
</androidx.cardview.widget.CardView>
|
||||
|
||||
<!-- Mode Toggle Button -->
|
||||
<Button
|
||||
android:id="@+id/btn_toggle_mode"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="48dp"
|
||||
android:layout_marginBottom="24dp"
|
||||
android:text="Switch to Simple"
|
||||
style="@style/OutlineButton" />
|
||||
|
||||
<!-- Keypad Section -->
|
||||
<androidx.cardview.widget.CardView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="24dp"
|
||||
app:cardCornerRadius="12dp"
|
||||
app:cardElevation="4dp">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:padding="16dp">
|
||||
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="Keypad Input"
|
||||
android:textSize="16sp"
|
||||
android:textStyle="bold"
|
||||
android:textColor="#333333"
|
||||
android:gravity="center"
|
||||
android:layout_marginBottom="16dp" />
|
||||
|
||||
<!-- Keypad Grid -->
|
||||
<GridLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:columnCount="3"
|
||||
android:rowCount="4"
|
||||
android:layout_gravity="center">
|
||||
|
||||
<!-- Row 1: 1, 2, 3 -->
|
||||
<Button
|
||||
android:id="@+id/btn_1"
|
||||
style="@style/KeypadButton"
|
||||
android:text="1" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/btn_2"
|
||||
style="@style/KeypadButton"
|
||||
android:text="2" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/btn_3"
|
||||
style="@style/KeypadButton"
|
||||
android:text="3" />
|
||||
|
||||
<!-- Row 2: 4, 5, 6 -->
|
||||
<Button
|
||||
android:id="@+id/btn_4"
|
||||
style="@style/KeypadButton"
|
||||
android:text="4" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/btn_5"
|
||||
style="@style/KeypadButton"
|
||||
android:text="5" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/btn_6"
|
||||
style="@style/KeypadButton"
|
||||
android:text="6" />
|
||||
|
||||
<!-- Row 3: 7, 8, 9 -->
|
||||
<Button
|
||||
android:id="@+id/btn_7"
|
||||
style="@style/KeypadButton"
|
||||
android:text="7" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/btn_8"
|
||||
style="@style/KeypadButton"
|
||||
android:text="8" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/btn_9"
|
||||
style="@style/KeypadButton"
|
||||
android:text="9" />
|
||||
|
||||
<!-- Row 4: 00, 0, Clear -->
|
||||
<Button
|
||||
android:id="@+id/btn_00"
|
||||
style="@style/KeypadButton"
|
||||
android:text="00" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/btn_0"
|
||||
style="@style/KeypadButton"
|
||||
android:text="0" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/btn_clear"
|
||||
style="@style/KeypadButtonSecondary"
|
||||
android:text="⌫" />
|
||||
|
||||
</GridLayout>
|
||||
</LinearLayout>
|
||||
</androidx.cardview.widget.CardView>
|
||||
|
||||
<!-- Confirm Button -->
|
||||
<Button
|
||||
android:id="@+id/btn_confirm"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="56dp"
|
||||
android:text="KONFIRMASI NOMINAL"
|
||||
style="@style/PrimaryButton"
|
||||
android:layout_marginBottom="16dp" />
|
||||
|
||||
<!-- Instructions -->
|
||||
<!-- Title -->
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="• Gunakan keypad untuk memasukkan nominal\n• Minimal transaksi Rp 1,00\n• Pilih mode EMV untuk data lengkap kartu"
|
||||
style="@style/HintTextStyle" />
|
||||
android:text="TOTAL PEMBAYARAN"
|
||||
android:textColor="@android:color/white"
|
||||
android:textSize="18sp"
|
||||
android:textStyle="bold"
|
||||
android:fontFamily="@font/inter"
|
||||
android:layout_marginBottom="24dp" />
|
||||
|
||||
<!-- Amount Input Section -->
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal"
|
||||
android:layout_marginBottom="8dp">
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="RP"
|
||||
android:textColor="@android:color/white"
|
||||
android:textSize="20sp"
|
||||
android:textStyle="bold"
|
||||
android:fontFamily="@font/inter"
|
||||
android:layout_marginEnd="8dp"
|
||||
android:layout_gravity="bottom" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_amount_display"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:background="@android:color/transparent"
|
||||
android:textColor="@android:color/white"
|
||||
android:textSize="20sp"
|
||||
android:textStyle="bold"
|
||||
android:fontFamily="@font/inter"
|
||||
android:text=""
|
||||
android:gravity="start"
|
||||
android:paddingBottom="4dp" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<!-- White Underline -->
|
||||
<View
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="2dp"
|
||||
android:background="@android:color/white"
|
||||
android:layout_marginBottom="16dp" />
|
||||
|
||||
<!-- Description -->
|
||||
<TextView
|
||||
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:fontFamily="@font/inter"
|
||||
android:alpha="0.9" />
|
||||
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
|
||||
</androidx.cardview.widget.CardView>
|
||||
|
||||
<!-- 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="24dp"
|
||||
android:layout_marginStart="16dp"
|
||||
android:layout_marginEnd="16dp"
|
||||
app:layout_constraintTop_toBottomOf="@id/paymentCard">
|
||||
|
||||
<!-- Row 1: 1, 2, 3 -->
|
||||
<TextView
|
||||
android:id="@+id/btn_1"
|
||||
style="@style/NumpadButton"
|
||||
android:text="1" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/btn_2"
|
||||
style="@style/NumpadButton"
|
||||
android:text="2" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/btn_3"
|
||||
style="@style/NumpadButton"
|
||||
android:text="3" />
|
||||
|
||||
<!-- Row 2: 4, 5, 6 -->
|
||||
<TextView
|
||||
android:id="@+id/btn_4"
|
||||
style="@style/NumpadButton"
|
||||
android:text="4" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/btn_5"
|
||||
style="@style/NumpadButton"
|
||||
android:text="5" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/btn_6"
|
||||
style="@style/NumpadButton"
|
||||
android:text="6" />
|
||||
|
||||
<!-- Row 3: 7, 8, 9 -->
|
||||
<TextView
|
||||
android:id="@+id/btn_7"
|
||||
style="@style/NumpadButton"
|
||||
android:text="7" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/btn_8"
|
||||
style="@style/NumpadButton"
|
||||
android:text="8" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/btn_9"
|
||||
style="@style/NumpadButton"
|
||||
android:text="9" />
|
||||
|
||||
<!-- Row 4: 000, 0, Delete -->
|
||||
<TextView
|
||||
android:id="@+id/btn_00"
|
||||
style="@style/NumpadButton"
|
||||
android:text="000" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/btn_0"
|
||||
style="@style/NumpadButton"
|
||||
android:text="0" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/btn_clear"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="60dp"
|
||||
android:layout_columnWeight="1"
|
||||
android:layout_margin="8dp"
|
||||
android:background="?attr/selectableItemBackgroundBorderless"
|
||||
android:src="@drawable/ic_backspace"
|
||||
android:scaleType="center"
|
||||
android:contentDescription="Delete" />
|
||||
|
||||
</GridLayout>
|
||||
|
||||
<!-- Confirmation Button -->
|
||||
<com.google.android.material.button.MaterialButton
|
||||
android:id="@+id/btn_confirm"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="48dp"
|
||||
android:text="Konfirmasi"
|
||||
android:textColor="#FFFFFF"
|
||||
android:textSize="16sp"
|
||||
android:textStyle="bold"
|
||||
android:fontFamily="@font/inter"
|
||||
android:layout_marginStart="16dp"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:layout_marginTop="24dp"
|
||||
android:layout_marginBottom="24dp"
|
||||
android:enabled="true"
|
||||
app:backgroundTint="#DE0701"
|
||||
app:cornerRadius="8dp"
|
||||
app:rippleColor="#B3000000"
|
||||
app:layout_constraintTop_toBottomOf="@id/numpad_grid"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintVertical_bias="1" />
|
||||
|
||||
<!-- Hidden Mode Indicator and Toggle (for compatibility with existing code) -->
|
||||
<TextView
|
||||
android:id="@+id/tv_mode_indicator"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/btn_toggle_mode"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<!-- Hidden Progress Bar for Card Scanning -->
|
||||
<ProgressBar
|
||||
android:id="@+id/progress_bar"
|
||||
style="?android:attr/progressBarStyle"
|
||||
android:layout_width="48dp"
|
||||
android:layout_height="48dp"
|
||||
android:layout_gravity="center"
|
||||
android:visibility="gone"
|
||||
android:indeterminateTint="#E31937"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
</ScrollView>
|
||||
|
||||
<!-- Hidden Progress Bar for Card Scanning -->
|
||||
<ProgressBar
|
||||
android:id="@+id/progress_bar"
|
||||
style="?android:attr/progressBarStyle"
|
||||
android:layout_width="48dp"
|
||||
android:layout_height="48dp"
|
||||
android:layout_gravity="center"
|
||||
android:visibility="gone"
|
||||
android:indeterminateTint="@color/primary_blue" />
|
||||
|
||||
<!-- Modal Overlay with Blur Effect for Card Scanning -->
|
||||
<!-- Modal Overlay with Blur Effect for Card Scanning - MOVED TO TOP LEVEL -->
|
||||
<FrameLayout
|
||||
android:id="@+id/modal_overlay"
|
||||
android:layout_width="match_parent"
|
||||
@ -225,7 +303,8 @@
|
||||
android:background="#80000000"
|
||||
android:visibility="gone"
|
||||
android:clickable="true"
|
||||
android:focusable="true">
|
||||
android:focusable="true"
|
||||
android:elevation="100dp">
|
||||
|
||||
<!-- Modal Content -->
|
||||
<androidx.cardview.widget.CardView
|
||||
@ -235,7 +314,7 @@
|
||||
android:layout_gravity="center"
|
||||
android:layout_margin="32dp"
|
||||
app:cardCornerRadius="16dp"
|
||||
app:cardElevation="8dp"
|
||||
app:cardElevation="20dp"
|
||||
app:cardBackgroundColor="@android:color/white">
|
||||
|
||||
<LinearLayout
|
||||
@ -254,7 +333,7 @@
|
||||
android:layout_marginBottom="24dp"
|
||||
android:scaleType="fitCenter"
|
||||
android:adjustViewBounds="true"
|
||||
app:tint="@color/primary_blue" />
|
||||
app:tint="#E31937" />
|
||||
|
||||
<!-- Main Text -->
|
||||
<TextView
|
||||
|
Loading…
x
Reference in New Issue
Block a user