package com.applikey.babybook.fragments;
import android.graphics.Typeface;
import android.os.Bundle;
import android.support.v4.content.Loader;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageButton;
import android.widget.ListView;
import com.applikey.babybook.R;
import com.applikey.babybook.activity.MainActivity;
import com.applikey.babybook.adapters.AlbumsListAdapter;
import com.applikey.babybook.data.model.AlbumModel;
import com.applikey.babybook.loaders.GetAlbumsListLoader;
import com.applikey.babybook.utils.Lo;
import java.util.ArrayList;
/**
* Created by alex on 1/14/14.
*/
public class AlbumsFragment extends BaseFragment {
private final Lo lo = new Lo(AlbumsFragment.this);
private ArrayList<AlbumModel> albumsList;
private AlbumsListAdapter adapter;
private int listTop;
private int listItemIndex;
private boolean isFirstTimeView = true;
private ListView listView;
private ImageButton buttonAddAlbum;
private View footerView;
private Typeface fontGiddyupStd;
private int maxAlbumRecordID;
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
lo.g("onCreate");
fontGiddyupStd = Typeface.createFromAsset(getActivity().getAssets(), "fonts/GiddyupStd.otf");
isFirstTimeView = true;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
lo.g("onCreateView");
View v = inflater.inflate(R.layout.albums_fragment, null);
listView = (ListView) v.findViewById(R.id.albumsListView);
listView.setOnItemClickListener(null);
footerView = inflater.inflate(R.layout.albums_footer, null);
listView.addFooterView(footerView, null, false);
buttonAddAlbum = (ImageButton) v.findViewById(R.id.buttonAddAlbum);
buttonAddAlbum.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
CreateAlbumDialog dialogCreate = CreateAlbumDialog.newInstance(albumsList, maxAlbumRecordID);
dialogCreate.setCancelable(false);
dialogCreate.dialogListener = (MainActivity)getActivity();
dialogCreate.show(getActivity().getSupportFragmentManager(), "");
}
});
refresh();
return v;
}
public void onButtonEditClick(int id, AlbumModel albumItem) {
lo.g("onButtonEditClick, album: " + albumItem.getName());
EditAlbumDialog dialogEdit = EditAlbumDialog.newInstance(id, albumItem, albumsList);
dialogEdit.setCancelable(false);
dialogEdit.dialogListener = (MainActivity)getActivity();
dialogEdit.show(getActivity().getSupportFragmentManager(), "");
}
@Override
public Loader<Object> onCreateLoader(int i, Bundle bundle) {
Loader loader = null;
if (i == MainActivity.getLoaderIdMap().getID(AlbumsFragment.class.getName(), GetAlbumsListLoader.class.getName())) {
loader = new GetAlbumsListLoader(getActivity(), null, null);
}
return loader;
}
@Override
public void onLoadFinished(Loader loader, Object o) {
lo.g("onLoadFinished, loader class: " + loader.getClass().getName());
albumsList = (ArrayList<AlbumModel>)o;
if (loader instanceof GetAlbumsListLoader && this.getActivity() != null) {
//AlbumModel.printModels((ArrayList<AlbumModel>) o);
maxAlbumRecordID = getMaxAlbumIdInList(((ArrayList<AlbumModel>) o));
adapter = new AlbumsListAdapter(this, (ArrayList<AlbumModel>) o, fontGiddyupStd);
listView.setAdapter(adapter);
}
}
private int getMaxAlbumIdInList(ArrayList<AlbumModel> albums) {
int maxId = 0;
for (AlbumModel albumModel : albums){
if (albumModel.getId() > maxId) {
maxId = (int) albumModel.getId();
}
}
return maxId;
}
@Override
public void refresh() {
lo.g("refresh" );
getActivity().getSupportLoaderManager().restartLoader(MainActivity.getLoaderIdMap().getID(AlbumsFragment.class.getName(), GetAlbumsListLoader.class.getName()), null, this);
}
}