package tellh.com.gitclub.presentation.view.adapter.viewbinder; import android.view.View; import android.widget.ProgressBar; import android.widget.TextView; import com.tellh.nolistadapter.IListAdapter; import com.tellh.nolistadapter.adapter.FooterLoadMoreAdapterWrapper; import com.tellh.nolistadapter.viewbinder.base.RecyclerViewBinder; import com.tellh.nolistadapter.viewbinder.sub.FooterRecyclerViewBinder; import tellh.com.gitclub.R; import tellh.com.gitclub.common.config.Constant; import tellh.com.gitclub.common.utils.Utils; import static com.tellh.nolistadapter.adapter.FooterLoadMoreAdapterWrapper.LOADING; import static com.tellh.nolistadapter.adapter.FooterLoadMoreAdapterWrapper.NO_MORE; import static com.tellh.nolistadapter.adapter.FooterLoadMoreAdapterWrapper.PULL_TO_LOAD_MORE; /** * Created by tlh on 2016/10/4 :) */ public class LoadMoreFooterViewBinder extends FooterRecyclerViewBinder<LoadMoreFooterViewBinder.ViewHolder> { private String toLoadText = Utils.getString(R.string.pull_to_load_more); private String noMoreText = Utils.getString(R.string.no_more); private String loadingText = Utils.getString(R.string.loading); private int PER_PAGE = Constant.PER_PAGE; public LoadMoreFooterViewBinder(int PER_PAGE) { this.PER_PAGE = PER_PAGE; } public LoadMoreFooterViewBinder() { } @Override protected void bindFooter(IListAdapter adapter, ViewHolder holder, int position) { FooterLoadMoreAdapterWrapper adapterWrapper = (FooterLoadMoreAdapterWrapper) adapter; int size = adapter.getDisplayList().size(); if (size < PER_PAGE) { holder.tvFooter.setText(noMoreText); holder.progressBar.setVisibility(View.INVISIBLE); return; } switch (adapterWrapper.getFooterStatus()) { case PULL_TO_LOAD_MORE: holder.progressBar.setVisibility(View.VISIBLE); holder.tvFooter.setText(toLoadText); break; case LOADING: holder.progressBar.setVisibility(View.VISIBLE); holder.tvFooter.setText(loadingText); break; case NO_MORE: holder.tvFooter.setText(noMoreText); holder.progressBar.setVisibility(View.INVISIBLE); break; } } @Override public ViewHolder provideViewHolder(View itemView) { return new ViewHolder(itemView); } @Override public int getItemLayoutId(IListAdapter adapter) { return R.layout.footer_load_more; } public static class ViewHolder extends RecyclerViewBinder.ViewHolder { TextView tvFooter; ProgressBar progressBar; public ViewHolder(View rootView) { super(rootView); this.tvFooter = (TextView) rootView.findViewById(R.id.tv_footer); this.progressBar = (ProgressBar) rootView.findViewById(R.id.progressBar); } } }