package com.example.noteszapisdobazy;

import android.os.Bundle;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

import androidx.activity.EdgeToEdge;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;

import java.util.List;

public class MainActivity extends AppCompatActivity {

    private NotesDbHelper dbHelper;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        EdgeToEdge.enable(this);
        setContentView(R.layout.activity_main);
        ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> {
            Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
            v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
            return insets;
        });

        dbHelper = new NotesDbHelper(this);
        EditText editText = findViewById(R.id.editTextNote);
        EditText output = findViewById(R.id.editTextOutput);
        Button buttonSave = findViewById(R.id.buttonSave);
        Button buttonShow = findViewById(R.id.buttonShow);

        buttonSave.setOnClickListener(v -> {
            String text = editText.getText().toString().trim();
            if (text.isEmpty()) {
                Toast.makeText(this, "Pole tekstowe jest puste", Toast.LENGTH_SHORT).show();
                return;
            }
            long id = dbHelper.insertNote(text);
            if (id > 0) {
                Toast.makeText(this, "Zapisano (id=" + id + ")", Toast.LENGTH_SHORT).show();
                editText.getText().clear();
            } else {
                Toast.makeText(this, "Błąd zapisu", Toast.LENGTH_SHORT).show();
            }
        });

        buttonShow.setOnClickListener(v -> {
            List<String> notes = dbHelper.getAllNotes();
            if (notes.isEmpty()) {
                output.setText("Brak wpisów w bazie.");
            } else {
                //StringBuilder jest mutowalny
                //Stare obiekty usuwa Garbage Collector
                StringBuilder sb = new StringBuilder();
                for (String n : notes) {
                    sb.append(n).append('\n');
                }
                output.setText(sb.toString());
            }
        });

    }
}