From 1799e7eb0e0bd7369a1a2965939dd58651b756a6 Mon Sep 17 00:00:00 2001 From: riz081 Date: Fri, 30 May 2025 20:17:43 +0700 Subject: [PATCH] adjustment --- .../com/example/bdkipoc/MainActivity.java | 255 +++++++++++---- app/src/main/res/drawable/ic_help.png | Bin 0 -> 2448 bytes app/src/main/res/drawable/ic_store_info.png | Bin 0 -> 1270 bytes app/src/main/res/layout/activity_main.xml | 297 +++++++++++++----- 4 files changed, 403 insertions(+), 149 deletions(-) create mode 100644 app/src/main/res/drawable/ic_help.png create mode 100644 app/src/main/res/drawable/ic_store_info.png diff --git a/app/src/main/java/com/example/bdkipoc/MainActivity.java b/app/src/main/java/com/example/bdkipoc/MainActivity.java index 9e0c089..1a3db64 100644 --- a/app/src/main/java/com/example/bdkipoc/MainActivity.java +++ b/app/src/main/java/com/example/bdkipoc/MainActivity.java @@ -21,23 +21,24 @@ import com.google.android.material.button.MaterialButton; public class MainActivity extends AppCompatActivity { - private boolean isExpanded = false; - private CardView cardBantuan, cardInfoToko; + private boolean isExpanded = false; // False = showing only 9 main menus, True = showing all 15 menus private MaterialButton btnLainnya; @Override public void onWindowFocusChanged(boolean hasFocus) { - super.onWindowFocusChanged(hasFocus); - if (hasFocus) { - getWindow().getDecorView().setSystemUiVisibility( - View.SYSTEM_UI_FLAG_LAYOUT_STABLE - | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION - | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN - | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION - | View.SYSTEM_UI_FLAG_FULLSCREEN - | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY); + super.onWindowFocusChanged(hasFocus); + if (hasFocus) { + getWindow().getDecorView().setSystemUiVisibility( + View.SYSTEM_UI_FLAG_LAYOUT_STABLE + | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION + | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN + | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION + | View.SYSTEM_UI_FLAG_FULLSCREEN + | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY); + } } -} + + @Override protected void onCreate(Bundle savedInstanceState) { // Enable hardware acceleration for smoother scrolling getWindow().setFlags( @@ -56,91 +57,211 @@ public class MainActivity extends AppCompatActivity { }); // Initialize views - cardBantuan = findViewById(R.id.card_bantuan); - cardInfoToko = findViewById(R.id.card_info_toko); btnLainnya = findViewById(R.id.btn_lainnya); + // Check if we're returning from a completed transaction + checkTransactionCompletion(); + + // Setup initial state - 9 main menus visible, 6 dummy menus hidden + setupInitialMenuState(); + // Setup menu listeners setupMenuListeners(); } + private void setupInitialMenuState() { + // 9 main menus should always be visible + CardView cardBantuan = findViewById(R.id.card_bantuan); + CardView cardInfoToko = findViewById(R.id.card_info_toko); + + if (cardBantuan != null) { + cardBantuan.setVisibility(View.VISIBLE); + } + if (cardInfoToko != null) { + cardInfoToko.setVisibility(View.VISIBLE); + } + + // 6 dummy menus should be hidden initially + CardView[] dummyCards = { + findViewById(R.id.card_dummy_menu_1), + findViewById(R.id.card_dummy_menu_2), + findViewById(R.id.card_dummy_menu_3), + findViewById(R.id.card_dummy_menu_4), + findViewById(R.id.card_dummy_menu_5), + findViewById(R.id.card_dummy_menu_6) + }; + + for (CardView card : dummyCards) { + if (card != null) { + card.setVisibility(View.GONE); + } + } + + // Set initial button text + isExpanded = false; + btnLainnya.setText("Lainnya"); + } + + private void checkTransactionCompletion() { + Intent intent = getIntent(); + if (intent != null) { + boolean transactionCompleted = intent.getBooleanExtra("transaction_completed", false); + String transactionAmount = intent.getStringExtra("transaction_amount"); + + if (transactionCompleted) { + if (transactionAmount != null) { + Toast.makeText(this, "Transaksi berhasil! Jumlah: Rp " + formatCurrency(transactionAmount), Toast.LENGTH_LONG).show(); + } else { + Toast.makeText(this, "Transaksi berhasil diselesaikan!", Toast.LENGTH_LONG).show(); + } + } + } + } + + private String formatCurrency(String amount) { + try { + long amountValue = Long.parseLong(amount); + return String.format("%,d", amountValue).replace(',', '.'); + } catch (NumberFormatException e) { + return amount; + } + } + private void setupMenuListeners() { - // Card IDs to set up listeners + // Card IDs to set up listeners - Total 15 menu items int[] cardIds = { + // Row 1 (Always visible - 3 items) R.id.card_kartu_kredit, R.id.card_kartu_debit, R.id.card_qris, - R.id.card_transfer, + // Row 2 (Always visible - 3 items) R.id.card_uang_elektronik, R.id.card_cetak_ulang, - R.id.card_refund, R.id.card_settlement, + // Row 3 (Always visible - 3 items) R.id.card_histori, R.id.card_bantuan, - R.id.card_info_toko + R.id.card_info_toko, + // Row 4 (Hidden initially - 3 items) + R.id.card_dummy_menu_1, + R.id.card_dummy_menu_2, + R.id.card_dummy_menu_3, + // Row 5 (Hidden initially - 3 items) + R.id.card_dummy_menu_4, + R.id.card_dummy_menu_5, + R.id.card_dummy_menu_6 }; + // Set up click listeners for all cards for (int cardId : cardIds) { CardView cardView = findViewById(cardId); - cardView.setOnClickListener(v -> { - if (cardId == R.id.card_kartu_kredit) { - startActivity(new Intent(MainActivity.this, PaymentActivity.class)); - } else if (cardId == R.id.card_kartu_debit) { - startActivity(new Intent(MainActivity.this, PaymentActivity.class)); - } else if (cardId == R.id.card_qris) { - startActivity(new Intent(MainActivity.this, QrisActivity.class)); - } else if (cardId == R.id.card_bantuan) { - startActivity(new Intent(MainActivity.this, TransactionActivity.class)); - } else if (cardId == R.id.card_info_toko) { - Toast.makeText(this, "Info Toko Diklik", Toast.LENGTH_SHORT).show(); - } else { - // Simplified version - just show the card ID - Toast.makeText(this, "Menu Diklik: " + cardId, Toast.LENGTH_SHORT).show(); - } - }); + if (cardView != null) { + cardView.setOnClickListener(v -> { + if (cardId == R.id.card_kartu_kredit) { + startActivity(new Intent(MainActivity.this, PaymentActivity.class)); + } else if (cardId == R.id.card_kartu_debit) { + startActivity(new Intent(MainActivity.this, PaymentActivity.class)); + } else if (cardId == R.id.card_qris) { + startActivity(new Intent(MainActivity.this, QrisActivity.class)); + } else if (cardId == R.id.card_uang_elektronik) { + startActivity(new Intent(MainActivity.this, PaymentActivity.class)); + } else if (cardId == R.id.card_cetak_ulang) { + startActivity(new Intent(MainActivity.this, TransactionActivity.class)); + } else if (cardId == R.id.card_settlement) { + Toast.makeText(this, "Settlement - Coming Soon", Toast.LENGTH_SHORT).show(); + } else if (cardId == R.id.card_histori) { + Toast.makeText(this, "Histori - Coming Soon", Toast.LENGTH_SHORT).show(); + } else if (cardId == R.id.card_bantuan) { + Toast.makeText(this, "Bantuan - Coming Soon", Toast.LENGTH_SHORT).show(); + } else if (cardId == R.id.card_info_toko) { + Toast.makeText(this, "Info Toko - Coming Soon", Toast.LENGTH_SHORT).show(); + } else if (cardId == R.id.card_dummy_menu_1) { + Toast.makeText(this, "Dummy Menu 1 - Coming Soon", Toast.LENGTH_SHORT).show(); + } else if (cardId == R.id.card_dummy_menu_2) { + Toast.makeText(this, "Dummy Menu 2 - Coming Soon", Toast.LENGTH_SHORT).show(); + } else if (cardId == R.id.card_dummy_menu_3) { + Toast.makeText(this, "Dummy Menu 3 - Coming Soon", Toast.LENGTH_SHORT).show(); + } else if (cardId == R.id.card_dummy_menu_4) { + Toast.makeText(this, "Dummy Menu 4 - Coming Soon", Toast.LENGTH_SHORT).show(); + } else if (cardId == R.id.card_dummy_menu_5) { + Toast.makeText(this, "Dummy Menu 5 - Coming Soon", Toast.LENGTH_SHORT).show(); + } else if (cardId == R.id.card_dummy_menu_6) { + Toast.makeText(this, "Dummy Menu 6 - Coming Soon", Toast.LENGTH_SHORT).show(); + } else { + // Fallback for any other cards + Toast.makeText(this, "Menu Diklik: " + getResources().getResourceEntryName(cardId), Toast.LENGTH_SHORT).show(); + } + }); + } } + // Get references to ONLY the dummy cards that need to be toggled + CardView[] toggleableCards = { + findViewById(R.id.card_dummy_menu_1), + findViewById(R.id.card_dummy_menu_2), + findViewById(R.id.card_dummy_menu_3), + findViewById(R.id.card_dummy_menu_4), + findViewById(R.id.card_dummy_menu_5), + findViewById(R.id.card_dummy_menu_6) + }; + + // Set up "Lainnya" button click listener btnLainnya.setOnClickListener(v -> { isExpanded = !isExpanded; if (isExpanded) { - // Show additional menus with animation - cardBantuan.setVisibility(View.VISIBLE); - cardInfoToko.setVisibility(View.VISIBLE); - cardBantuan.setAlpha(0f); - cardInfoToko.setAlpha(0f); - - cardBantuan.animate() - .alpha(1f) - .setDuration(300) - .setInterpolator(new AccelerateDecelerateInterpolator()) - .start(); - - cardInfoToko.animate() - .alpha(1f) - .setDuration(300) - .setInterpolator(new AccelerateDecelerateInterpolator()) - .start(); - + // Show the 6 dummy menus with animation + for (CardView card : toggleableCards) { + if (card != null) { + card.setVisibility(View.VISIBLE); + card.setAlpha(0f); + card.animate() + .alpha(1f) + .setDuration(300) + .setInterpolator(new AccelerateDecelerateInterpolator()) + .start(); + } + } btnLainnya.setText("Tampilkan Lebih Sedikit"); } else { - // Hide additional menus with animation - cardBantuan.animate() - .alpha(0f) - .setDuration(300) - .setInterpolator(new AccelerateDecelerateInterpolator()) - .withEndAction(() -> cardBantuan.setVisibility(View.GONE)) - .start(); - - cardInfoToko.animate() - .alpha(0f) - .setDuration(300) - .setInterpolator(new AccelerateDecelerateInterpolator()) - .withEndAction(() -> cardInfoToko.setVisibility(View.GONE)) - .start(); - + // Hide the 6 dummy menus with animation + for (CardView card : toggleableCards) { + if (card != null) { + card.animate() + .alpha(0f) + .setDuration(300) + .setInterpolator(new AccelerateDecelerateInterpolator()) + .withEndAction(() -> card.setVisibility(View.GONE)) + .start(); + } + } btnLainnya.setText("Lainnya"); } }); + + // Set up scan dan bayar card click listener + LinearLayout scanBayarContent = findViewById(R.id.scan_bayar_content); + if (scanBayarContent != null) { + scanBayarContent.setOnClickListener(v -> { + // Navigate to QRIS payment activity + startActivity(new Intent(MainActivity.this, QrisActivity.class)); + }); + } + } + + @Override + protected void onNewIntent(Intent intent) { + super.onNewIntent(intent); + setIntent(intent); + // Check for transaction completion when returning to MainActivity + checkTransactionCompletion(); + } + + @Override + protected void onResume() { + super.onResume(); + // Clear any transaction completion flags to avoid repeated messages + getIntent().removeExtra("transaction_completed"); + getIntent().removeExtra("transaction_amount"); } } \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_help.png b/app/src/main/res/drawable/ic_help.png new file mode 100644 index 0000000000000000000000000000000000000000..e150607b888b1323e0aec252627facce81717cb2 GIT binary patch literal 2448 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 6e244f8..e48be2d 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -111,12 +111,12 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:columnCount="3" - android:rowCount="3" + android:rowCount="5" android:background="@android:color/white" android:padding="8dp" app:layout_constraintTop_toBottomOf="@id/merchant_card"> - + - - - - - - - - - - - - - - + - - - - - - - - - - - - - - + - @@ -445,7 +372,7 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -498,7 +631,7 @@ android:id="@+id/btn_lainnya" android:layout_width="match_parent" android:layout_height="wrap_content" - android:text="Lainnya" + android:text="Tampilkan Lebih Sedikit" android:textColor="#DE0701" android:backgroundTint="#FFFFFF" android:textAllCaps="false"