package com.llf.common.ui.girl;
import android.support.v4.widget.SwipeRefreshLayout;
import android.support.v7.widget.DefaultItemAnimator;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.MotionEvent;
import android.view.View;
import com.llf.basemodel.base.BaseFragment;
import com.llf.basemodel.commonactivity.WebViewActivity;
import com.llf.basemodel.recycleview.DefaultItemDecoration;
import com.llf.basemodel.recycleview.EndLessOnScrollListener;
import com.llf.common.R;
import com.llf.common.entity.JcodeEntity;
import com.llf.common.ui.girl.adapter.GirlAdapter;
import com.llf.common.ui.girl.contract.GirlContract;
import com.llf.common.ui.girl.presenter.GirlPresenter;
import java.util.ArrayList;
import java.util.List;
import butterknife.Bind;
import butterknife.OnClick;
/**
* Created by llf on 2017/3/15.
* 发现
*/
public class GirlFragment extends BaseFragment implements SwipeRefreshLayout.OnRefreshListener, GirlContract.View {
public static GirlFragment getInstance() {
GirlFragment girlFragment = new GirlFragment();
return girlFragment;
}
@Bind(R.id.recyclerView)
RecyclerView mRecyclerView;
@Bind(R.id.refreshLayout)
SwipeRefreshLayout mRefreshLayout;
private GirlAdapter mAdapter;
private List<JcodeEntity> jcodes = new ArrayList<>();
private GirlPresenter mPresenter;
private int pageIndex = 1;
private boolean mIsRefreshing = false;
private static final String HOST = "http://www.jcodecraeer.com";
@Override
protected int getLayoutId() {
return R.layout.fragment_girl;
}
@Override
protected void initView() {
mPresenter = new GirlPresenter(this);
mRefreshLayout.setColorSchemeResources(R.color.colorPrimary, android.R.color.holo_red_light, android.R.color.holo_orange_light, android.R.color.holo_green_light);
mRefreshLayout.setOnRefreshListener(this);
LinearLayoutManager manager = new LinearLayoutManager(getActivity());
manager.setOrientation(LinearLayoutManager.VERTICAL);
mRecyclerView.setLayoutManager(manager);
mRecyclerView.setHasFixedSize(true);
mRecyclerView.setItemAnimator(new DefaultItemAnimator());
mRecyclerView.addItemDecoration(new DefaultItemDecoration(getActivity()));
mAdapter = new GirlAdapter(jcodes,getActivity());
mAdapter.addFooterView(R.layout.layout_footer);
mAdapter.setOnItemClickLitener(new GirlAdapter.OnItemClickListener() {
@Override
public void onItemClick(int position) {
mPresenter.addRecord(getActivity(), jcodes.get(position));
WebViewActivity.lanuch(getActivity(), HOST + jcodes.get(position).getDetailUrl());
}
});
mRecyclerView.setAdapter(mAdapter);
mRecyclerView.addOnScrollListener(new EndLessOnScrollListener(manager) {
@Override
public void onLoadMore() {
pageIndex++;
mAdapter.setFooterVisible(View.VISIBLE);
mPresenter.loadData("http://www.jcodecraeer.com/plus/list.php?tid=18&TotalResult=1801&PageNo=" + pageIndex);
}
});
mRecyclerView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (mIsRefreshing) {
return true;
} else {
return false;
}
}
});
}
@OnClick(R.id.floatBtn)
public void onViewClicked() {
mRecyclerView.smoothScrollToPosition(0);
}
@Override
protected void lazyFetchData() {
mRefreshLayout.setRefreshing(true);
mPresenter.loadData("http://www.jcodecraeer.com/plus/list.php?tid=18&TotalResult=1801&PageNo=" + pageIndex);
}
@Override
public void onRefresh() {
mIsRefreshing = true;
pageIndex = 1;
jcodes.clear();
mPresenter.loadData("http://www.jcodecraeer.com/plus/list.php?tid=18&TotalResult=1801&PageNo=" + pageIndex);
}
@Override
public void showLoading() {
startProgressDialog();
}
@Override
public void stopLoading() {
stopProgressDialog();
}
@Override
public void showErrorTip(String msg) {
showErrorHint(msg);
mRefreshLayout.setRefreshing(false);
}
@Override
public void returnData(List<JcodeEntity> datas) {
if (pageIndex == 1) {
mIsRefreshing = false;
mRefreshLayout.setRefreshing(false);
} else {
mAdapter.setFooterVisible(View.GONE);
}
jcodes.addAll(datas);
mAdapter.notifyDataSetChanged();
}
@Override
public void onDestroy() {
super.onDestroy();
jcodes.clear();
}
}