package tellh.com.gitclub.presentation.view.fragment.explore; import android.support.v7.widget.RecyclerView; import com.tellh.nolistadapter.adapter.RecyclerViewAdapter; import com.tellh.nolistadapter.viewbinder.utils.EasyEmptyRecyclerViewBinder; import java.util.ArrayList; import java.util.List; import tellh.com.gitclub.R; import tellh.com.gitclub.common.utils.StringUtils; import tellh.com.gitclub.model.entity.RepositoryInfo; import tellh.com.gitclub.model.entity.Trending; import tellh.com.gitclub.model.entity.UserEntity; import tellh.com.gitclub.presentation.view.adapter.viewbinder.ErrorViewBinder; import tellh.com.gitclub.presentation.view.adapter.viewbinder.RepoListItemViewBinder; import tellh.com.gitclub.presentation.view.fragment.ListFragment; import static tellh.com.gitclub.presentation.contract.ExploreContract.OnGetTrendingListener; import static tellh.com.gitclub.presentation.contract.ExploreContract.OnListFragmentInteractListener; import static tellh.com.gitclub.presentation.contract.ExploreContract.TRENDING; /** * Created by tlh on 2016/9/5 :) */ public class TrendingListFragment extends ListFragment implements OnGetTrendingListener { private OnListFragmentInteractListener mListener; private RecyclerViewAdapter adapter; public static TrendingListFragment newInstance() { return new TrendingListFragment(); } @Override protected RecyclerView.Adapter getListAdapter() { adapter = RecyclerViewAdapter.builder() .addItemType(new RepoListItemViewBinder(mListener.getPresenter())) .setErrorView(new ErrorViewBinder(this)) .setEmptyView(new EasyEmptyRecyclerViewBinder(R.layout.empty_view)) .build(); return adapter; } @Override protected int getLayoutId() { return R.layout.frag_items_list; } @Override public void onRefresh() { super.onRefresh(); mListener.onFetchData(TRENDING, 1); } void setListFragmentInteractListener(OnListFragmentInteractListener listener) { mListener = listener; } @Override public void onDetach() { super.onDetach(); mListener = null; } @Override public void onGet(List<Trending> trendings) { ArrayList<RepositoryInfo> repos = new ArrayList<>(); for (Trending trending : trendings) { RepositoryInfo repositoryInfo = new RepositoryInfo(); repositoryInfo.setName(trending.getName()); repositoryInfo.setFull_name(StringUtils.append(trending.getOwner(), "/", trending.getName())); //user UserEntity userEntity = new UserEntity(); userEntity.setLogin(trending.getOwner()); userEntity.setAvatar_url(trending.getAvatarUrl()); repositoryInfo.setOwner(userEntity); repositoryInfo.setDescription(trending.getDescription()); repositoryInfo.setStars(trending.getStars()); repositoryInfo.setForks_count(trending.getForks()); repos.add(repositoryInfo); } adapter.refresh(repos); hideLoading(); } }