package org.plezervikt.allinone;

import android.app.Activity;
import android.app.FragmentManager;
import android.os.Bundle;

import org.plezervikt.allinone.fragments.BookDetailFragment;
import org.plezervikt.allinone.fragments.BookListFragment;
import org.plezervikt.allinone.models.Book;


public class MainActivity extends Activity implements BookListFragment.BookListFragmentCallbacks {

    private BookListFragment listFragment;
    private BookDetailFragment detailFragment;

    private boolean isPhoneLayout;

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

        FragmentManager manager = getFragmentManager();

        if (findViewById(R.id.mobileFragmentLayout) != null) {
            // mobile
            isPhoneLayout = true;
            if(savedInstanceState == null) {
                manager.beginTransaction().add(R.id.mobileFragmentLayout, new BookListFragment()).commit();
            }
        } else {
            // tablet
            isPhoneLayout = false;
            listFragment = (BookListFragment) manager.findFragmentById(R.id.tabletLeftFragment);
            detailFragment = (BookDetailFragment) manager.findFragmentById(R.id.tabletRightFragment);
        }
    }

    @Override
    public void bookSelected(Book book) {
        if (isPhoneLayout) {
            BookDetailFragment b = new BookDetailFragment();

            Bundle args = new Bundle();
            args.putSerializable("book", book);

            b.setArguments(args);

            getFragmentManager()
                    .beginTransaction()
                    .replace(R.id.mobileFragmentLayout, b)
                    .addToBackStack(null)
                    .commit();
        } else {
            detailFragment.fill(book);
        }
    }
}