NewsListFragment.java 4.2 KB
Newer Older
门心叼龙's avatar
门心叼龙 已提交
1 2 3 4 5
package com.fly.tour.news.fragment;


import android.content.Context;
import android.os.Bundle;
门心叼龙's avatar
门心叼龙 已提交
6 7
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
门心叼龙's avatar
门心叼龙 已提交
8 9
import android.view.View;

门心叼龙's avatar
门心叼龙 已提交
10
import com.fly.tour.common.base.BaseAdapter;
门心叼龙's avatar
门心叼龙 已提交
11
import com.fly.tour.common.base.BaseFragment;
门心叼龙's avatar
门心叼龙 已提交
12
import com.fly.tour.common.base.BaseRefreshFragment;
门心叼龙's avatar
门心叼龙 已提交
13
import com.fly.tour.common.event.KeyCode;
门心叼龙's avatar
门心叼龙 已提交
14
import com.fly.tour.common.event.me.NewsDetailCurdEvent;
门心叼龙's avatar
门心叼龙 已提交
15
import com.fly.tour.common.mvp.BaseRefreshPresenter;
门心叼龙's avatar
门心叼龙 已提交
16
import com.fly.tour.common.util.log.KLog;
门心叼龙's avatar
门心叼龙 已提交
17
import com.fly.tour.db.entity.NewsDetail;
门心叼龙's avatar
门心叼龙 已提交
18
import com.fly.tour.db.entity.NewsType;
门心叼龙's avatar
门心叼龙 已提交
19
import com.fly.tour.news.NewsDetailActivity;
门心叼龙's avatar
门心叼龙 已提交
20 21
import com.fly.tour.news.adapter.NewsListAdatper;
import com.fly.tour.news.contract.NewsListContract;
门心叼龙's avatar
门心叼龙 已提交
22 23
import com.fly.tour.news.inject.component.DaggerNewsListComponent;
import com.fly.tour.news.inject.module.NewsListModule;
门心叼龙's avatar
门心叼龙 已提交
24 25
import com.fly.tour.news.model.NewsListModel;
import com.fly.tour.news.presenter.NewsListPresenter;
门心叼龙's avatar
门心叼龙 已提交
26 27
import com.fly.tour.trip.R;

门心叼龙's avatar
门心叼龙 已提交
28 29 30
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;

门心叼龙's avatar
门心叼龙 已提交
31 32
import java.util.List;

门心叼龙's avatar
门心叼龙 已提交
33 34 35 36 37 38 39
/**
 * Description: <人工智能><br>
 * Author:      gxl<br>
 * Date:        2018/12/11<br>
 * Version:     V1.0.0<br>
 * Update:     <br>
 */
门心叼龙's avatar
门心叼龙 已提交
40
public class NewsListFragment extends BaseRefreshFragment<NewsListModel,NewsListContract.View<NewsDetail>,NewsListPresenter,NewsDetail> implements NewsListContract.View<NewsDetail>{
门心叼龙's avatar
门心叼龙 已提交
41 42

    private NewsType mNewsType;
门心叼龙's avatar
门心叼龙 已提交
43 44
    private RecyclerView mRecViewNewsDetail;
    private NewsListAdatper mNewsListAdatper;
门心叼龙's avatar
门心叼龙 已提交
45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65

    public static NewsListFragment newInstance(NewsType newsType) {
        NewsListFragment newsListFragment = new NewsListFragment();
        Bundle args = new Bundle();
        args.putParcelable(KeyCode.News.NEWS_TYPE,newsType);
        newsListFragment.setArguments(args);

        return newsListFragment;
    }

    @Override
    public void onAttach(Context context) {
        super.onAttach(context);
        mNewsType = getArguments().getParcelable(KeyCode.News.NEWS_TYPE);
    }

    @Override
    public int onBindLayout() {
        return R.layout.fragment_news_list;
    }

门心叼龙's avatar
门心叼龙 已提交
66 67 68 69 70
    @Override
    public boolean enableLazyData() {
        return true;
    }

门心叼龙's avatar
门心叼龙 已提交
71 72
    @Override
    public void initView(View view) {
门心叼龙's avatar
门心叼龙 已提交
73
        KLog.v("MYTAG","initView start:"+mNewsType.getTypename());
门心叼龙's avatar
门心叼龙 已提交
74 75 76 77
        mRecViewNewsDetail = view.findViewById(R.id.recview_news_list);
        mRecViewNewsDetail.setLayoutManager(new LinearLayoutManager(mActivity));
        mNewsListAdatper = new NewsListAdatper(mActivity);
        mRecViewNewsDetail.setAdapter(mNewsListAdatper);
门心叼龙's avatar
门心叼龙 已提交
78 79 80 81
    }

    @Override
    public void initData() {
门心叼龙's avatar
门心叼龙 已提交
82
        mPresenter.setNewsType(mNewsType.getId());
门心叼龙's avatar
门心叼龙 已提交
83
        KLog.v("MYTAG","initData start:"+mNewsType.getTypename());
门心叼龙's avatar
门心叼龙 已提交
84
        autoLoadData();
门心叼龙's avatar
门心叼龙 已提交
85 86
    }

门心叼龙's avatar
门心叼龙 已提交
87 88 89 90 91 92 93 94 95 96
    @Override
    public void initListener() {
        mNewsListAdatper.setItemClickListener(new BaseAdapter.OnItemClickListener<NewsDetail>() {
            @Override
            public void onItemClick(NewsDetail newsDetail, int position) {
                NewsDetailActivity.startNewsDetailActivity(mActivity,newsDetail.getId());
            }
        });
    }

门心叼龙's avatar
门心叼龙 已提交
97 98 99 100
    @Override
    public String getToolbarTitle() {
        return null;
    }
门心叼龙's avatar
门心叼龙 已提交
101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133

    @Override
    protected int onBindRreshLayout() {
        return R.id.refview_news_list;
    }




    @Override
    public void onRefreshEvent() {
        mPresenter.refreshData();
    }

    @Override
    public void onLoadMoreEvent() {
        mPresenter.loadMoreData();
    }

    @Override
    public void onAutoLoadEvent() {
        mPresenter.refreshData();
    }

    @Override
    public void refreshData(List<NewsDetail> data) {
        mNewsListAdatper.refresh(data);
    }

    @Override
    public void loadMoreData(List<NewsDetail> data) {
        mNewsListAdatper.addAll(data);
    }
门心叼龙's avatar
门心叼龙 已提交
134 135 136 137 138 139
    @Subscribe(threadMode = ThreadMode.MAIN)
    public void onEvent(NewsDetailCurdEvent curdEvent){
        if(curdEvent.getCode() == mNewsType.getId()){
            autoLoadData();
        }
    }
门心叼龙's avatar
门心叼龙 已提交
140 141 142 143 144

    @Override
    public void injectPresenter() {
        DaggerNewsListComponent.builder().newsListModule(new NewsListModule(this)).build().inject(this);
    }
门心叼龙's avatar
门心叼龙 已提交
145
}