package ren.solid.ganhuoio.module.home.fragment; import android.os.Bundle; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.text.TextUtils; import java.util.ArrayList; import java.util.List; import me.drakeet.multitype.MultiTypeAdapter; import ren.solid.ganhuoio.api.GankService; import ren.solid.ganhuoio.bean.DailyList; import ren.solid.ganhuoio.bean.DailyTitle; import ren.solid.ganhuoio.bean.GanHuoData; import ren.solid.library.fragment.base.AbsListFragment; import ren.solid.library.http.HttpResult; import ren.solid.library.http.ServiceFactory; import ren.solid.library.http.subscriber.HttpResultSubscriber; import ren.solid.library.rx.RxUtils; /** * Created by _SOLID * Date:2016/5/18 * Time:15:24 */ public class RecentlyListFragment extends AbsListFragment { private String date; public static RecentlyListFragment newInstance(int year, int month, int day) { RecentlyListFragment fragment = new RecentlyListFragment(); Bundle args = new Bundle(); args.putInt("year", year); args.putInt("month", month); args.putInt("day", day); fragment.setArguments(args); return fragment; } @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); date = getArguments().getInt("year") + "/" + getArguments().getInt("month") + "/" + getArguments().getInt("day"); } @Override protected void customConfig() { disAbleLoadMore(); disAbleRefresh(); } @Override protected MultiTypeAdapter getAdapter() { return new MultiTypeAdapter(getItems()) { @NonNull @Override public Class onFlattenClass(@NonNull Object item) { if (item instanceof GanHuoData) { return GanHuoData.DailyItem.class; } return super.onFlattenClass(item); } }; } @Override @SuppressWarnings("unchecked") public void loadData(final int pageIndex) { if (TextUtils.isEmpty(date)) { showError(new Exception("date is null")); return; } ServiceFactory.getInstance().createService(GankService.class) .getRecentlyGanHuo(date) .compose(this.<HttpResult<DailyList>>bindToLifecycle()) .compose(RxUtils.<HttpResult<DailyList>>defaultSchedulers_single()) .subscribe(new HttpResultSubscriber<DailyList>() { @Override public void _onError(Throwable e) { showError(new Exception(e)); } @Override public void _onSuccess(DailyList recentlyBean) { List list = new ArrayList<>(); if (recentlyBean != null) { if (recentlyBean.get休息视频() != null) { list.add(new DailyTitle("休息视频")); list.addAll(recentlyBean.get休息视频()); } if (recentlyBean.getAndroid() != null) { list.add(new DailyTitle("Android")); list.addAll(recentlyBean.getAndroid()); } if (recentlyBean.getIOS() != null) { list.add(new DailyTitle("iOS")); list.addAll(recentlyBean.getIOS()); } if (recentlyBean.get前端() != null) { list.add(new DailyTitle("前端")); list.addAll(recentlyBean.get前端()); } if (recentlyBean.getApp() != null) { list.add(new DailyTitle("App")); list.addAll(recentlyBean.getApp()); } if (recentlyBean.get瞎推荐() != null) { list.add(new DailyTitle("瞎推荐")); list.addAll(recentlyBean.get瞎推荐()); } } onDataSuccessReceived(pageIndex, list); } }); } @NonNull @Override protected String getEmptyMsg() { return "今日暂无干货"; } }