package com.u9porn.ui.kedouwo; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.support.v4.widget.SwipeRefreshLayout; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import com.helper.loadviewhelper.load.LoadViewHelper; import com.sdsmdg.tastytoast.TastyToast; import com.u9porn.R; import com.u9porn.adapter.KeDouAdapter; import com.u9porn.constants.Keys; import com.u9porn.data.model.kedouwo.KeDouModel; import com.u9porn.ui.MvpFragment; import com.u9porn.ui.kedouwo.play.KeDouPlayActivity; import com.u9porn.utils.AppUtils; import java.util.List; import javax.inject.Inject; import butterknife.BindView; import butterknife.ButterKnife; import butterknife.Unbinder; /** * Created by alex * Des: * Date: 2019/8/27. */ public class KeDouFragment extends MvpFragment<KeDouView,KeDouPresenter> implements KeDouView, SwipeRefreshLayout.OnRefreshListener { @BindView(R.id.recyclerView_kedou) RecyclerView recyclerViewKeDou; @BindView(R.id.contentView) SwipeRefreshLayout contentView; Unbinder unbinder; private LoadViewHelper helper; @Inject protected KeDouPresenter mKeDouPresenter; private KeDouAdapter keDouAdapter; public static KeDouFragment getInstance() { return new KeDouFragment(); } @Override public void onAttach(Activity activity) { super.onAttach(activity); //因为用的FragmentPagerAdapter不会缓存状态,fragment切换回onCreateView->onDestroyView 此处初始化adapter防止adapter被重复创建 keDouAdapter = new KeDouAdapter(R.layout.item_kedouwo); } @Nullable @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { return inflater.inflate(R.layout.fragment_kedou, container, false); } @Override public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); unbinder = ButterKnife.bind(this, view); contentView.setOnRefreshListener(this); recyclerViewKeDou.setLayoutManager(new LinearLayoutManager(getContext())); recyclerViewKeDou.setAdapter(keDouAdapter); helper = new LoadViewHelper(recyclerViewKeDou); helper.setListener(() -> loadData(false)); keDouAdapter.setOnItemClickListener((adapter, view1, position) -> { KeDouModel keDouModel = (KeDouModel) adapter.getItem(position); if (keDouModel == null) { return; } Intent intent = new Intent(context, KeDouPlayActivity.class); intent.putExtra(Keys.KEY_INTENT_KEDOUWO_ITEM, keDouModel); startActivityWithAnimation(intent); }); keDouAdapter.setOnLoadMoreListener(() -> loadData(false), recyclerViewKeDou); AppUtils.setColorSchemeColors(context, contentView); } @Override protected void onLazyLoadOnce() { loadData(false); } @Override public void onDestroyView() { super.onDestroyView(); unbinder.unbind(); } @Override public void showLoading(boolean pullToRefresh) { contentView.setRefreshing(false); helper.showLoading(); } @Override public void showContent() { contentView.setRefreshing(false); helper.showContent(); } @Override public void showMessage(String msg, int type) { super.showMessage(msg,type); } @Override public void showError(String message) { contentView.setRefreshing(false); showMessage(message, TastyToast.ERROR); helper.showError(); } @NonNull @Override public KeDouPresenter createPresenter() { return mKeDouPresenter; } @Override public void onRefresh() { loadData(true); } private void loadData(boolean pullToRefresh) { mKeDouPresenter.videoList(category.getCategoryValue(), pullToRefresh); } @Override public void setData(List<KeDouModel> keDouModelList) { keDouAdapter.setNewData(keDouModelList); } @Override public void loadMoreFailed() { keDouAdapter.loadMoreFail(); } @Override public void noMoreData() { keDouAdapter.loadMoreEnd(); } @Override public void setMoreData(List<KeDouModel> keDouModelList) { keDouAdapter.addData(keDouModelList); keDouAdapter.loadMoreComplete(); } }