improve button lainnya

This commit is contained in:
riz081 2025-05-23 01:04:54 +07:00
parent c55af6141f
commit a07e7a99ac
2 changed files with 626 additions and 478 deletions

View File

@ -2,31 +2,64 @@ package com.example.bdkipoc;
import android.content.Intent; import android.content.Intent;
import android.os.Bundle; import android.os.Bundle;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast; import android.widget.Toast;
import android.view.animation.AccelerateDecelerateInterpolator;
import android.view.WindowManager;
import androidx.activity.EdgeToEdge; import androidx.activity.EdgeToEdge;
import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.app.AppCompatActivity;
import androidx.cardview.widget.CardView; import androidx.cardview.widget.CardView;
import androidx.constraintlayout.widget.ConstraintLayout;
import androidx.core.graphics.Insets; import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat; import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat; import androidx.core.view.WindowInsetsCompat;
import com.google.android.material.button.MaterialButton;
public class MainActivity extends AppCompatActivity { public class MainActivity extends AppCompatActivity {
private boolean isExpanded = false;
private CardView cardBantuan, cardInfoToko;
private MaterialButton btnLainnya;
@Override @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);
}
}
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
// Enable hardware acceleration for smoother scrolling
getWindow().setFlags(
WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED,
WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED
);
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
EdgeToEdge.enable(this); EdgeToEdge.enable(this);
setContentView(R.layout.activity_main); setContentView(R.layout.activity_main);
// Ganti findViewById(R.id.main) dengan findViewById(R.id.merchant_card)
// atau root layout yang ada di XML
ViewCompat.setOnApplyWindowInsetsListener(findViewById(android.R.id.content), (v, insets) -> { ViewCompat.setOnApplyWindowInsetsListener(findViewById(android.R.id.content), (v, insets) -> {
Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars()); Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom); v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
return insets; return insets;
}); });
// Initialize views
cardBantuan = findViewById(R.id.card_bantuan);
cardInfoToko = findViewById(R.id.card_info_toko);
btnLainnya = findViewById(R.id.btn_lainnya);
// Setup menu listeners // Setup menu listeners
setupMenuListeners(); setupMenuListeners();
} }
@ -42,40 +75,72 @@ public class MainActivity extends AppCompatActivity {
R.id.card_cetak_ulang, R.id.card_cetak_ulang,
R.id.card_refund, R.id.card_refund,
R.id.card_settlement, R.id.card_settlement,
R.id.card_histori R.id.card_histori,
R.id.card_bantuan,
R.id.card_info_toko
}; };
// Cara 1: Menggunakan loop dengan if-else
for (int cardId : cardIds) { for (int cardId : cardIds) {
CardView cardView = findViewById(cardId); CardView cardView = findViewById(cardId);
cardView.setOnClickListener(v -> { cardView.setOnClickListener(v -> {
if (cardId == R.id.card_kartu_kredit) { if (cardId == R.id.card_kartu_kredit) {
// Arahkan ke PaymentActivity untuk Transfer
startActivity(new Intent(MainActivity.this, PaymentActivity.class)); startActivity(new Intent(MainActivity.this, PaymentActivity.class));
} else if (cardId == R.id.card_kartu_debit) { } else if (cardId == R.id.card_kartu_debit) {
Toast.makeText(this, "Kartu Debit Diklik", Toast.LENGTH_SHORT).show(); Toast.makeText(this, "Kartu Debit Diklik", Toast.LENGTH_SHORT).show();
} else if (cardId == R.id.card_qris) { } else if (cardId == R.id.card_qris) {
// Arahkan ke TransactionActivity untuk QRIS
startActivity(new Intent(MainActivity.this, TransactionActivity.class)); startActivity(new Intent(MainActivity.this, TransactionActivity.class));
} else if (cardId == R.id.card_transfer) { } else if (cardId == R.id.card_bantuan) {
Toast.makeText(this, "Transfer Diklik", Toast.LENGTH_SHORT).show(); Toast.makeText(this, "Bantuan Diklik", Toast.LENGTH_SHORT).show();
} else if (cardId == R.id.card_uang_elektronik) { } else if (cardId == R.id.card_info_toko) {
Toast.makeText(this, "Uang Elektronik Diklik", Toast.LENGTH_SHORT).show(); Toast.makeText(this, "Info Toko Diklik", Toast.LENGTH_SHORT).show();
} else if (cardId == R.id.card_cetak_ulang) { } else {
Toast.makeText(this, "Cetak Ulang Diklik", Toast.LENGTH_SHORT).show(); // Simplified version - just show the card ID
} else if (cardId == R.id.card_refund) { Toast.makeText(this, "Menu Diklik: " + cardId, Toast.LENGTH_SHORT).show();
Toast.makeText(this, "Refund Diklik", Toast.LENGTH_SHORT).show();
} else if (cardId == R.id.card_settlement) {
Toast.makeText(this, "Settlement Diklik", Toast.LENGTH_SHORT).show();
} else if (cardId == R.id.card_histori) {
Toast.makeText(this, "Histori Diklik", Toast.LENGTH_SHORT).show();
} }
}); });
} }
// Lainnya button listener btnLainnya.setOnClickListener(v -> {
findViewById(R.id.btn_lainnya).setOnClickListener(v -> isExpanded = !isExpanded;
Toast.makeText(this, "Lainnya Diklik", Toast.LENGTH_SHORT).show()
); 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();
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();
btnLainnya.setText("Lainnya");
}
});
} }
} }

File diff suppressed because it is too large Load Diff