package nglauber.android.databinding;
import android.databinding.DataBindingUtil;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Toast;
import java.util.ArrayList;
import java.util.List;
import nglauber.android.databinding.databinding.FragmentListBookBinding;
import nglauber.android.databinding.http.BookTask;
import nglauber.android.databinding.model.Book;
public class BookListFragment extends Fragment {
List<Book> mBooks;
BookAdapter mAdapter;
BookTask mTask;
FragmentListBookBinding mBinding;
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setRetainInstance(true);
mBooks = new ArrayList<>();
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
mBinding = DataBindingUtil.inflate(
inflater, R.layout.fragment_list_book, container, false);
mAdapter = new BookAdapter(mBooks, mListener);
mBinding.listLivro.setAdapter(mAdapter);
return mBinding.getRoot();
}
BookClickListener mListener = new BookClickListener() {
@Override
public void onBookClick(Book book) {
if (getActivity() instanceof BookClickListener){
BookClickListener listener = (BookClickListener)getActivity();
listener.onBookClick(book);
}
}
};
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
if (mTask != null && mTask.getStatus() == AsyncTask.Status.RUNNING) {
mTask.setFragment(this);
}
}
public void setLivros(List<Book> books){
if (books != null) {
mBooks.clear();
mBooks.addAll(books);
}
mAdapter.notifyDataSetChanged();
}
public void search(String term){
mTask = new BookTask(this);
mTask.execute(term);
}
public void showError() {
Toast.makeText(getActivity(), R.string.msg_error_search_books, Toast.LENGTH_SHORT).show();
}
}