package com.example.myapplication;

import android.content.Intent;
import android.database.Cursor;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import java.util.ArrayList;

/**
 * MainActivity5 — "Favorilerim" ekranı.
 * MainActivity3'e çok benzer; tek farkı sadece favori=1 olan tarifleri gösterir.
 * Karta tıklanınca yine MainActivity4 (detay) açılır.
 * ❤️ butonuna basınca o tarifin favori etiketi gösterilir.
 */
public class MainActivity5 extends AppCompatActivity {

    ListView listView;  // Favori tariflerin listeleneceği bileşen
    DatabaseHelper db;  // Veritabanı yardımcı nesnesi

    // Sadece favori tariflerin bilgileri bu listelerde tutulur
    ArrayList<String> fAdlar = new ArrayList<>();  // Favori yemek adları
    ArrayList<String> fMallar = new ArrayList<>(); // Favori malzemeler
    ArrayList<String> fYaplar = new ArrayList<>(); // Favori yapılışlar

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main5); // activity_main5.xml tasarımını yükle

        // ListView bileşenini XML'den bul ve bağla
        listView = findViewById(R.id.liste_view_favori);

        db = new DatabaseHelper(this);

        // ── FAVORİ TARİFLERİ VERİTABANINDAN ÇEK ───────────────────────────
        // favorileriGetir() → WHERE favori = 1 sorgusunu çalıştırır
        Cursor c = db.favorileriGetir();

        if (c != null) {
            // Cursor'ı satır satır ilerlet ve listelere ekle
            while (c.moveToNext()) {
                fAdlar.add(c.getString(1));  // "ad" sütunu
                fMallar.add(c.getString(2)); // "malzeme" sütunu
                fYaplar.add(c.getString(3)); // "yapilis" sütunu
            }
            c.close(); // Cursor'ı kapat — bellek sızıntısını önle
        }

        // Özel adaptörü ListView'a bağla
        listView.setAdapter(new CustomAdapter());
    }

    /**
     * CustomAdapter — Favori tariflerin her satırını oluşturan iç sınıf.
     * MainActivity3'teki ile aynı mantık; fark olarak buton metni "❤️" olarak sabit.
     */
    class CustomAdapter extends BaseAdapter {

        @Override public int getCount() { return fAdlar.size(); }  // Favori sayısı
        @Override public Object getItem(int i) { return null; }
        @Override public long getItemId(int i) { return 0; }

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {

            // Geri dönüştürülecek view yoksa XML'den yeni oluştur
            if (convertView == null) {
                convertView = getLayoutInflater().inflate(R.layout.list_item_layout, null);
            }

            // Satırdaki bileşenleri bul ve bağla
            TextView tv  = convertView.findViewById(R.id.txtYemekAdi);   // Yemek adı
            Button btn   = convertView.findViewById(R.id.btnFavoriEkle); // ❤️ butonu

            // Bu sıradaki favori yemeğin adını yaz
            tv.setText(fAdlar.get(position));

            // Favoriler sayfasında buton "❤️" işareti gösterir
            // (Buraya "Favoriden Çıkar" işlevi de eklenebilir)
            btn.setText("❤️");

            // ── KART TIKLANINCA DETAY SAYFASINA GİT ───────────────────────
            convertView.setOnClickListener(v -> {
                Intent intent = new Intent(MainActivity5.this, MainActivity4.class);

                // Seçilen favori tarifin bilgilerini detay sayfasına gönder
                intent.putExtra("pAd",  fAdlar.get(position));
                intent.putExtra("pMal", fMallar.get(position));
                intent.putExtra("pYap", fYaplar.get(position));

                startActivity(intent);
            });

            return convertView; // Hazır satırı ListView'a teslim et
        }
    }
}