package com.metis.commentpart.fragment; import android.os.Bundle; import android.support.annotation.Nullable; 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.metis.base.fragment.BaseFragment; import com.metis.base.manager.AccountManager; import com.metis.base.manager.RequestCallback; import com.metis.base.module.Footer; import com.metis.base.module.User; import com.metis.base.widget.adapter.delegate.FooterDelegate; import com.metis.base.widget.callback.OnScrollBottomListener; import com.metis.commentpart.R; import com.metis.commentpart.adapter.StatusAdapter; import com.metis.commentpart.adapter.TeacherDecoration; import com.metis.commentpart.adapter.delegate.TeacherBtnDelegate; import com.metis.commentpart.manager.StatusManager; import com.metis.commentpart.module.Teacher; import com.metis.msnetworklib.contract.ReturnInfo; import java.util.ArrayList; import java.util.List; /** * Created by Beak on 2015/8/4. */ public class TeacherListFragment extends BaseFragment { private RecyclerView mTeacherRv = null; private StatusAdapter mAdapter = null; private int mTeacherFilter = 0; private int mIndex = 1; private Footer mFooter = null; private FooterDelegate mFooterDelegate = null; private boolean isLoading = false; @Nullable @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { return inflater.inflate(R.layout.fragment_teacher_list, null, true); } @Override public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); mTeacherRv = (RecyclerView)view.findViewById(R.id.teacher_recycler_view); mTeacherRv.setLayoutManager(new LinearLayoutManager(getActivity())); mTeacherRv.addItemDecoration(new TeacherDecoration()); mAdapter = new StatusAdapter(getActivity()); mTeacherRv.setAdapter(mAdapter); mTeacherRv.addOnScrollListener(new OnScrollBottomListener() { @Override public void onScrollBottom(RecyclerView recyclerView, int newState) { if (!isLoading) { loadData(mIndex + 1); } } }); } @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); mFooter = new Footer(Footer.STATE_WAITTING); mFooterDelegate = new FooterDelegate(mFooter); mAdapter.addDataItem(mFooterDelegate); mAdapter.notifyDataSetChanged(); loadData(1); } public void setTeacherFilter (int filter) { mTeacherFilter = filter; } public void refresh () { } private void loadData (final int index) { User me = AccountManager.getInstance(getActivity()).getMe(); String session = ""; if (me != null) { session = me.getCookie(); } mFooter.setState(Footer.STATE_WAITTING); mAdapter.notifyDataSetChanged(); isLoading = true; StatusManager.getInstance(getActivity()).getAssessTeacher(mTeacherFilter, "", session, index, new RequestCallback<List<Teacher>>() { @Override public void callback(ReturnInfo<List<Teacher>> returnInfo, String callbackId) { isLoading = false; if (!isAlive()) { return; } if (returnInfo.isSuccess()) { List<Teacher> teacherList = returnInfo.getData(); List<TeacherBtnDelegate> delegateList = new ArrayList<TeacherBtnDelegate>(); if (teacherList != null && !teacherList.isEmpty()) { final int length = teacherList.size(); for (int i = 0; i < length; i++) { delegateList.add(new TeacherBtnDelegate(teacherList.get(i))); } mAdapter.addDataList(mAdapter.getItemCount() - 1, delegateList); mFooter.setState(Footer.STATE_SUCCESS); } else { mFooter.setState(Footer.STATE_NO_MORE); } mIndex = index; } else { mFooter.setState(Footer.STATE_FAILED); } mAdapter.notifyDataSetChanged(); } }); } }