package net.oschina.gitapp.ui.fragments; import java.util.List; import android.os.Bundle; import android.util.Log; import android.widget.BaseAdapter; import net.oschina.gitapp.AppException; import net.oschina.gitapp.R; import net.oschina.gitapp.adapter.ProjectCommitListAdapter; import net.oschina.gitapp.bean.Commit; import net.oschina.gitapp.bean.CommonList; import net.oschina.gitapp.bean.Project; import net.oschina.gitapp.bean.MessageData; import net.oschina.gitapp.common.Contanst; import net.oschina.gitapp.common.StringUtils; import net.oschina.gitapp.common.UIHelper; import net.oschina.gitapp.ui.basefragment.BaseSwipeRefreshFragment; /** * 项目commits列表Fragment * @created 2014-05-26 * @author 火蚁(http://my.oschina.net/LittleDY) * * 最后更新 * 更新者 */ public class ProjectCommitListFragment extends BaseSwipeRefreshFragment<Commit, CommonList<Commit>> { private Project mProject; public static ProjectCommitListFragment newInstance(Project project) { ProjectCommitListFragment fragment = new ProjectCommitListFragment(); Bundle args = new Bundle(); args.putSerializable(Contanst.PROJECT, project); fragment.setArguments(args); return fragment; } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Bundle args = getArguments(); if (args != null) { mProject = (Project) args.getSerializable(Contanst.PROJECT); } setUserVisibleHint(true); } @Override public BaseAdapter getAdapter(List<Commit> list) { return new ProjectCommitListAdapter(getActivity(), list, R.layout.projectcommit_listitem); } @Override public MessageData<CommonList<Commit>> asyncLoadList(int page, boolean reflash) { MessageData<CommonList<Commit>> msg = null; try { CommonList<Commit> list = mApplication.getProjectCommitList(StringUtils.toInt(mProject.getId()), page, reflash, "master"); msg = new MessageData<CommonList<Commit>>(list); } catch (AppException e) { e.makeToast(mApplication); e.printStackTrace(); msg = new MessageData<CommonList<Commit>>(e); } return msg; } @Override public void onItemClick(int position, Commit commit) { UIHelper.showCommitDetail(getActivity(), mProject, commit); } }