package net.oschina.gitapp.ui.fragments;
import java.util.List;
import android.os.Bundle;
import android.support.v4.view.MenuItemCompat;
import android.view.ContextMenu;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.BaseAdapter;
import net.oschina.gitapp.AppException;
import net.oschina.gitapp.R;
import net.oschina.gitapp.adapter.ProjectIssuesListAdapter;
import net.oschina.gitapp.bean.CommonList;
import net.oschina.gitapp.bean.Issue;
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 ProjectIssuesListFragment extends BaseSwipeRefreshFragment<Issue, CommonList<Issue>> {
public final int MENU_CREATE_ID = 01;
private Project mProject;
public static ProjectIssuesListFragment newInstance(Project project) {
ProjectIssuesListFragment fragment = new ProjectIssuesListFragment();
Bundle args = new Bundle();
args.putSerializable(Contanst.PROJECT, project);
fragment.setArguments(args);
return fragment;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setHasOptionsMenu(true);
Bundle args = getArguments();
if (args != null) {
mProject = (Project) args.getSerializable(Contanst.PROJECT);
}
super.setUserVisibleHint(true);
}
@Override
public BaseAdapter getAdapter(List<Issue> list) {
return new ProjectIssuesListAdapter(getActivity(), list, R.layout.projectissues_listitem);
}
@Override
public MessageData<CommonList<Issue>> asyncLoadList(int page,
boolean reflash) {
MessageData<CommonList<Issue>> msg = null;
try {
CommonList<Issue> list = mApplication.getProjectIssuesList(StringUtils.toInt(mProject.getId()), page, reflash);
msg = new MessageData<CommonList<Issue>>(list);
} catch (AppException e) {
e.makeToast(mApplication);
e.printStackTrace();
msg = new MessageData<CommonList<Issue>>(e);
}
return msg;
}
@Override
public void onItemClick(int position, Issue issue) {
UIHelper.showIssueDetail(mApplication, mProject, issue, null, null);
}
}