Vedroid36
3/18/2014 - 1:19 PM

gistfile1.java

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);
    }
}