Search in sources :

Example 1 with NewsService

use of app.main.wangliwei.enablehands.http.NewsService in project EnableHands by LeviWGG.

the class NewsModel method getNewsInfo.

@Override
public void getNewsInfo(final INewsContract.INewsPresenter iNewsPresenter, int id) {
    Retrofit retrofit = new ServiceFactory().create(NewsService.BASE_URL);
    NewsService newsService = retrofit.create(NewsService.class);
    Observable<NewsInfo> observable = newsService.getNewsInfo(id);
    observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).flatMap(new Function<NewsInfo, ObservableSource<List<NewsInfo.T1348647909107Bean>>>() {

        @Override
        public ObservableSource<List<NewsInfo.T1348647909107Bean>> apply(NewsInfo newsInfo) throws Exception {
            return Observable.just(newsInfo.getT1348647909107());
        }
    }).filter(new Predicate<List<NewsInfo.T1348647909107Bean>>() {

        @Override
        public boolean test(List<NewsInfo.T1348647909107Bean> t1348647909107Beans) throws Exception {
            if (t1348647909107Beans.isEmpty()) {
                return false;
            }
            return true;
        }
    }).subscribe(new Consumer<List<NewsInfo.T1348647909107Bean>>() {

        @Override
        public void accept(List<NewsInfo.T1348647909107Bean> t1348647909107Beans) throws Exception {
            // 遍历新闻信息,去掉没有URL的子项
            for (int i = 0; i < t1348647909107Beans.size(); i++) {
                if (t1348647909107Beans.get(i).getUrl() == null) {
                    t1348647909107Beans.remove(i);
                }
            }
            iNewsPresenter.setNewsInfo(t1348647909107Beans);
        }
    });
// return (Observable<T>) observable;
}
Also used : ServiceFactory(app.main.wangliwei.enablehands.http.ServiceFactory) Predicate(io.reactivex.functions.Predicate) Retrofit(retrofit2.Retrofit) ObservableSource(io.reactivex.ObservableSource) NewsInfo(app.main.wangliwei.enablehands.bean.NewsInfo) NewsService(app.main.wangliwei.enablehands.http.NewsService) List(java.util.List)

Aggregations

NewsInfo (app.main.wangliwei.enablehands.bean.NewsInfo)1 NewsService (app.main.wangliwei.enablehands.http.NewsService)1 ServiceFactory (app.main.wangliwei.enablehands.http.ServiceFactory)1 ObservableSource (io.reactivex.ObservableSource)1 Predicate (io.reactivex.functions.Predicate)1 List (java.util.List)1 Retrofit (retrofit2.Retrofit)1