package licola.demo.com.huabandemo.Module.Follow; import android.content.Context; import android.os.Bundle; import android.view.View; import java.util.List; import butterknife.BindString; import licola.demo.com.huabandemo.API.Fragment.OnBoardFragmentInteractionListener; import licola.demo.com.huabandemo.API.Fragment.OnRefreshFragmentInteractionListener; import licola.demo.com.huabandemo.API.HttpsAPI.FollowingAPI; import licola.demo.com.huabandemo.Adapter.RecyclerBoardAdapter; import licola.demo.com.huabandemo.Base.BaseRecyclerHeadFragment; import licola.demo.com.huabandemo.Entity.BoardPinsBean; import licola.demo.com.huabandemo.HttpUtils.RetrofitClient; import licola.demo.com.huabandemo.R; import licola.demo.com.huabandemo.Util.Logger; import rx.Subscription; import rx.android.schedulers.AndroidSchedulers; import rx.functions.Action0; import rx.functions.Action1; import rx.schedulers.Schedulers; /** * Created by LiCola on 2016/04/04 21:39 */ public class FollowBoardFragment extends BaseRecyclerHeadFragment<RecyclerBoardAdapter, List<BoardPinsBean>> { private static final String TAG = "FollowBoardFragment"; @BindString(R.string.snack_message_not_notify) String mStringNotNotify; private int mIndex = 1;//联网的起始页 默认1 private OnBoardFragmentInteractionListener<BoardPinsBean> mListener; private OnRefreshFragmentInteractionListener mRefreshListener; @Override protected String getTAG() { return this.toString(); } public static FollowBoardFragment newInstance() { return new FollowBoardFragment(); } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // if (savedInstanceState!=null){ // mAuthorization=savedInstanceState.getString("key1"); // Logger.d(mAuthorization); // } } // @Override // public void onSaveInstanceState(Bundle outState) { // super.onSaveInstanceState(outState); // outState.putString("key1",mAuthorization); // Logger.d(); // } @Override protected Subscription getHttpFirst() { return RetrofitClient.createService(FollowingAPI.class) .httpsMyFollowingBoardRx(mAuthorization, mIndex, mLimit) .map(followingBoardListBean -> followingBoardListBean.getBoards()) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .filter(getFilterFunc1()) .subscribe(new Action1<List<BoardPinsBean>>() { @Override public void call(List<BoardPinsBean> boardPinsBeen) { Logger.d(); mAdapter.addListNotify(boardPinsBeen); mIndex++; } }, getErrorAction(), getCompleteAction()); } private Action1<Throwable> getErrorAction() { return throwable -> { Logger.d(throwable.toString()); checkException(throwable); mRefreshListener.OnRefreshState(false); }; } private Action0 getCompleteAction() { return () -> { Logger.d(); mRefreshListener.OnRefreshState(false); }; } @Override protected Subscription getHttpScroll() { return getHttpFirst(); } @Override protected void initListener() { super.initListener(); mAdapter.setOnClickItemListener(new RecyclerBoardAdapter.onAdapterListener() { @Override public void onClickImage(BoardPinsBean bean, View view) { Logger.d(); mListener.onClickBoardItemImage(bean, view); } @Override public void onClickTextInfo(BoardPinsBean bean, View view) { Logger.d(); mListener.onClickBoardItemImage(bean, view); } }); } @Override protected View getHeadView() { return null; } @Override protected int getAdapterPosition() { return mAdapter.getAdapterPosition(); } @Override protected RecyclerBoardAdapter setAdapter() { return new RecyclerBoardAdapter(mRecyclerView); } @Override public void onAttach(Context context) { super.onAttach(context); if ((context instanceof OnBoardFragmentInteractionListener) && (context instanceof OnRefreshFragmentInteractionListener)) { mListener = (OnBoardFragmentInteractionListener<BoardPinsBean>) context; mRefreshListener = (OnRefreshFragmentInteractionListener) context; } else { throwRuntimeException(context); } if (context instanceof FollowActivity) { String a=((FollowActivity) context).mAuthorization; if (a!=null){ mAuthorization=a; } Logger.d(mAuthorization); } } }