Search in sources :

Example 1 with Item

use of com.rengwuxian.rxjavasamples.model.Item in project RxJavaSamples by rengwuxian.

the class GankBeautyResultToItemsMapper method call.

@Override
public List<Item> call(GankBeautyResult gankBeautyResult) {
    List<GankBeauty> gankBeauties = gankBeautyResult.beauties;
    List<Item> items = new ArrayList<>(gankBeauties.size());
    SimpleDateFormat inputFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SS'Z'");
    SimpleDateFormat outputFormat = new SimpleDateFormat("yy/MM/dd HH:mm:ss");
    for (GankBeauty gankBeauty : gankBeauties) {
        Item item = new Item();
        try {
            Date date = inputFormat.parse(gankBeauty.createdAt);
            item.description = outputFormat.format(date);
        } catch (ParseException e) {
            e.printStackTrace();
            item.description = "unknown date";
        }
        item.imageUrl = gankBeauty.url;
        items.add(item);
    }
    return items;
}
Also used : Item(com.rengwuxian.rxjavasamples.model.Item) GankBeauty(com.rengwuxian.rxjavasamples.model.GankBeauty) ArrayList(java.util.ArrayList) ParseException(java.text.ParseException) SimpleDateFormat(java.text.SimpleDateFormat) Date(java.util.Date)

Example 2 with Item

use of com.rengwuxian.rxjavasamples.model.Item in project RxJavaSamples by rengwuxian.

the class GankBeautyResultToItemsMapper method apply.

@Override
public List<Item> apply(GankBeautyResult gankBeautyResult) {
    List<GankBeauty> gankBeauties = gankBeautyResult.beauties;
    List<Item> items = new ArrayList<>(gankBeauties.size());
    SimpleDateFormat inputFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SS'Z'");
    SimpleDateFormat outputFormat = new SimpleDateFormat("yy/MM/dd HH:mm:ss");
    for (GankBeauty gankBeauty : gankBeauties) {
        Item item = new Item();
        try {
            Date date = inputFormat.parse(gankBeauty.createdAt);
            item.description = outputFormat.format(date);
        } catch (ParseException e) {
            e.printStackTrace();
            item.description = "unknown date";
        }
        item.imageUrl = gankBeauty.url;
        items.add(item);
    }
    return items;
}
Also used : Item(com.rengwuxian.rxjavasamples.model.Item) GankBeauty(com.rengwuxian.rxjavasamples.model.GankBeauty) ArrayList(java.util.ArrayList) ParseException(java.text.ParseException) SimpleDateFormat(java.text.SimpleDateFormat) Date(java.util.Date)

Example 3 with Item

use of com.rengwuxian.rxjavasamples.model.Item in project RxJavaSamples by rengwuxian.

the class ItemListAdapter method onBindViewHolder.

@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
    DebounceViewHolder debounceViewHolder = (DebounceViewHolder) holder;
    Item image = images.get(position);
    Glide.with(holder.itemView.getContext()).load(image.imageUrl).into(debounceViewHolder.imageIv);
    debounceViewHolder.descriptionTv.setText(image.description);
}
Also used : Item(com.rengwuxian.rxjavasamples.model.Item)

Example 4 with Item

use of com.rengwuxian.rxjavasamples.model.Item in project RxJavaSamples by rengwuxian.

the class ZipFragment method load.

@OnClick(R.id.zipLoadBt)
void load() {
    swipeRefreshLayout.setRefreshing(true);
    unsubscribe();
    disposable = Observable.zip(Network.getGankApi().getBeauties(200, 1).map(GankBeautyResultToItemsMapper.getInstance()), Network.getZhuangbiApi().search("装逼"), new BiFunction<List<Item>, List<ZhuangbiImage>, List<Item>>() {

        @Override
        public List<Item> apply(List<Item> gankItems, List<ZhuangbiImage> zhuangbiImages) {
            List<Item> items = new ArrayList<Item>();
            for (int i = 0; i < gankItems.size() / 2 && i < zhuangbiImages.size(); i++) {
                items.add(gankItems.get(i * 2));
                items.add(gankItems.get(i * 2 + 1));
                Item zhuangbiItem = new Item();
                ZhuangbiImage zhuangbiImage = zhuangbiImages.get(i);
                zhuangbiItem.description = zhuangbiImage.description;
                zhuangbiItem.imageUrl = zhuangbiImage.image_url;
                items.add(zhuangbiItem);
            }
            return items;
        }
    }).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Consumer<List<Item>>() {

        @Override
        public void accept(@NonNull List<Item> items) throws Exception {
            swipeRefreshLayout.setRefreshing(false);
            adapter.setItems(items);
        }
    }, new Consumer<Throwable>() {

        @Override
        public void accept(@NonNull Throwable throwable) throws Exception {
            swipeRefreshLayout.setRefreshing(false);
            Toast.makeText(getActivity(), R.string.loading_failed, Toast.LENGTH_SHORT).show();
        }
    });
}
Also used : Item(com.rengwuxian.rxjavasamples.model.Item) Consumer(io.reactivex.functions.Consumer) NonNull(io.reactivex.annotations.NonNull) ArrayList(java.util.ArrayList) List(java.util.List) ZhuangbiImage(com.rengwuxian.rxjavasamples.model.ZhuangbiImage) OnClick(butterknife.OnClick)

Aggregations

Item (com.rengwuxian.rxjavasamples.model.Item)4 ArrayList (java.util.ArrayList)3 GankBeauty (com.rengwuxian.rxjavasamples.model.GankBeauty)2 ParseException (java.text.ParseException)2 SimpleDateFormat (java.text.SimpleDateFormat)2 Date (java.util.Date)2 OnClick (butterknife.OnClick)1 ZhuangbiImage (com.rengwuxian.rxjavasamples.model.ZhuangbiImage)1 NonNull (io.reactivex.annotations.NonNull)1 Consumer (io.reactivex.functions.Consumer)1 List (java.util.List)1