package net.oschina.gitapp.ui.fragments;
import java.util.List;
import android.os.Bundle;
import android.widget.BaseAdapter;
import net.oschina.gitapp.AppException;
import net.oschina.gitapp.R;
import net.oschina.gitapp.adapter.ExploreListProjectAdapter;
import net.oschina.gitapp.bean.CommonList;
import net.oschina.gitapp.bean.MessageData;
import net.oschina.gitapp.bean.Project;
import net.oschina.gitapp.bean.User;
import net.oschina.gitapp.common.Contanst;
import net.oschina.gitapp.common.UIHelper;
import net.oschina.gitapp.ui.basefragment.BaseSwipeRefreshFragment;
/**
* 用户watch项目列表
* @created 2014-08-27
* @author 火蚁(http://my.oschina.net/LittleDY)
*
* 最后更新
* 更新者
*/
public class WatchProjectListFragment extends BaseSwipeRefreshFragment<Project, CommonList<Project>> {
private User mUser;
public static WatchProjectListFragment newInstance(User user) {
WatchProjectListFragment fragment = new WatchProjectListFragment();
Bundle bundle = new Bundle();
bundle.putSerializable(Contanst.USER, user);
fragment.setArguments(bundle);
return fragment;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Bundle args = getArguments();
if (args != null) {
mUser = (User) args.getSerializable(Contanst.USER);
}
setUserVisibleHint(true);
}
@Override
public BaseAdapter getAdapter(List<Project> list) {
return new ExploreListProjectAdapter(mApplication, list, R.layout.exploreproject_listitem);
}
@Override
public MessageData<CommonList<Project>> asyncLoadList(int page,
boolean refresh) {
MessageData<CommonList<Project>> msg = null;
try {
CommonList<Project> list = mApplication.getWatchProjectList(mUser.getId(), page, refresh);
msg = new MessageData<CommonList<Project>>(list);
} catch (AppException e) {
e.makeToast(mApplication);
e.printStackTrace();
msg = new MessageData<CommonList<Project>>(e);
}
return msg;
}
@Override
public void onItemClick(int position, Project project) {
UIHelper.showProjectDetail(mApplication, null, project.getId());
}
}