package es.ua.eps.filmoteca;

import android.support.v4.app.FragmentTransaction;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

public class MainActivity extends AppCompatActivity implements FilmListFragment.OnItemSelectedListener {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // Comprueba si estamos usando el layout dinámico
        if (findViewById(R.id.fragment_container) != null) {
            // Si se está restaurando, no hace falta cargar el fragmento
            if (savedInstanceState != null)
                return;

            // Creamos el fragmento
            FilmListFragment ppalFragment = new FilmListFragment();

            // Pasamos los extras del intent al fragmento
            ppalFragment.setArguments(getIntent().getExtras());

            // Añadimos el fragmento al contenedor
            getSupportFragmentManager().beginTransaction()
                    .add(R.id.fragment_container, ppalFragment).commit();
        }
    }

    @Override
    public void onItemSelected(int position) {
        FilmDataFragment detalleFragment = (FilmDataFragment)
                getSupportFragmentManager().findFragmentById(R.id.detalle_fragment);

        if (detalleFragment != null) {
            // Tipo estático: actualizamos directamente el fragmento
            detalleFragment.setFilm(position);
        } else {
            // Tipo dinámico: hacemos transición al nuevo fragmento
            detalleFragment = new FilmDataFragment();
            Bundle args = new Bundle();
            args.putInt(FilmDataFragment.EXTRA_FILM_INDEX, position);
            detalleFragment.setArguments(args);

            FragmentTransaction t=getSupportFragmentManager().beginTransaction();
            t.replace(R.id.fragment_container, detalleFragment);
            t.addToBackStack(null);
            t.commit();
        }
    }
}
