Search in sources :

Example 1 with Review

use of me.zhanghai.android.douya.network.api.info.frodo.Review in project Douya by DreaminginCodeZH.

the class BaseReviewListResource method onLoadFinished.

private void onLoadFinished(boolean more, int count, boolean successful, List<Review> response, VolleyError error) {
    getListener().onLoadReviewListFinished(getRequestCode());
    if (successful) {
        if (more) {
            append(response);
            getListener().onReviewListAppended(getRequestCode(), Collections.unmodifiableList(response));
        } else {
            set(response);
            getListener().onReviewListChanged(getRequestCode(), Collections.unmodifiableList(get()));
        }
        for (Review review : response) {
            EventBusUtils.postAsync(new ReviewUpdatedEvent(review, this));
        }
    } else {
        getListener().onLoadReviewListError(getRequestCode(), error);
    }
}
Also used : ReviewUpdatedEvent(me.zhanghai.android.douya.eventbus.ReviewUpdatedEvent) Review(me.zhanghai.android.douya.network.api.info.frodo.Review)

Example 2 with Review

use of me.zhanghai.android.douya.network.api.info.frodo.Review in project Douya by DreaminginCodeZH.

the class BaseReviewListResource method onReviewUpdated.

@Subscribe(threadMode = ThreadMode.MAIN)
public void onReviewUpdated(ReviewUpdatedEvent event) {
    if (event.isFromMyself(this) || isEmpty()) {
        return;
    }
    List<Review> reviewList = get();
    for (int i = 0, size = reviewList.size(); i < size; ++i) {
        Review review = reviewList.get(i);
        if (review.id == event.review.id) {
            reviewList.set(i, event.review);
            getListener().onReviewChanged(getRequestCode(), i, reviewList.get(i));
        }
    }
}
Also used : Review(me.zhanghai.android.douya.network.api.info.frodo.Review) Subscribe(org.greenrobot.eventbus.Subscribe)

Example 3 with Review

use of me.zhanghai.android.douya.network.api.info.frodo.Review in project Douya by DreaminginCodeZH.

the class ProfileReviewsLayout method bind.

public void bind(final User user, List<Review> reviewList) {
    final Context context = getContext();
    OnClickListener viewMoreListener = new OnClickListener() {

        @Override
        public void onClick(View view) {
            // TODO
            UriHandler.open(StringUtils.formatUs("https://www.douban.com/people/%s/reviews", user.getIdOrUid()), context);
        //context.startActivity(ReviewListActivity.makeIntent(mUser, context));
        }
    };
    mTitleText.setOnClickListener(viewMoreListener);
    mViewMoreText.setOnClickListener(viewMoreListener);
    int i = 0;
    for (final Review review : reviewList) {
        if (i >= REVIEW_COUNT_MAX) {
            break;
        }
        if (i >= mReviewList.getChildCount()) {
            LayoutInflater.from(context).inflate(R.layout.profile_review_item, mReviewList);
        }
        View reviewLayout = mReviewList.getChildAt(i);
        ReviewLayoutHolder holder = (ReviewLayoutHolder) reviewLayout.getTag();
        if (holder == null) {
            holder = new ReviewLayoutHolder(reviewLayout);
            reviewLayout.setTag(holder);
            ViewUtils.setTextViewLinkClickable(holder.titleText);
        }
        String coverUrl = review.cover;
        if (TextUtils.isEmpty(coverUrl) && review.item != null && review.item.cover != null) {
            coverUrl = review.item.cover.getNormal();
        }
        if (!TextUtils.isEmpty(coverUrl)) {
            holder.coverImage.setVisibility(VISIBLE);
            ImageUtils.loadImage(holder.coverImage, coverUrl);
        } else {
            holder.coverImage.setVisibility(GONE);
        }
        holder.titleText.setText(review.title);
        holder.abstractText.setText(review.abstract_);
        reviewLayout.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View view) {
                // TODO
                UriHandler.open(StringUtils.formatUs("https://www.douban.com/review/%d", review.id), context);
            //context.startActivity(ReviewActivity.makeIntent(review, context));
            }
        });
        ++i;
    }
    ViewUtils.setVisibleOrGone(mReviewList, i != 0);
    ViewUtils.setVisibleOrGone(mEmptyView, i == 0);
    //if (mUser.reviewCount > i) {
    if (reviewList.size() > i) {
        mViewMoreText.setText(R.string.view_more);
    } else {
        mViewMoreText.setVisibility(GONE);
    }
    for (int count = mReviewList.getChildCount(); i < count; ++i) {
        ViewUtils.setVisibleOrGone(mReviewList.getChildAt(i), false);
    }
}
Also used : Context(android.content.Context) Review(me.zhanghai.android.douya.network.api.info.frodo.Review) ImageView(android.widget.ImageView) BindView(butterknife.BindView) TextView(android.widget.TextView) View(android.view.View) FriendlyCardView(me.zhanghai.android.douya.ui.FriendlyCardView)

Example 4 with Review

use of me.zhanghai.android.douya.network.api.info.frodo.Review in project Douya by DreaminginCodeZH.

the class BaseReviewListResource method onReviewDeleted.

@Subscribe(threadMode = ThreadMode.MAIN)
public void onReviewDeleted(ReviewDeletedEvent event) {
    if (event.isFromMyself(this) || isEmpty()) {
        return;
    }
    List<Review> reviewList = get();
    for (int i = 0, size = reviewList.size(); i < size; ) {
        Review review = reviewList.get(i);
        if (review.id == event.reviewId) {
            reviewList.remove(i);
            getListener().onReviewRemoved(getRequestCode(), i);
            --size;
        } else {
            ++i;
        }
    }
}
Also used : Review(me.zhanghai.android.douya.network.api.info.frodo.Review) Subscribe(org.greenrobot.eventbus.Subscribe)

Aggregations

Review (me.zhanghai.android.douya.network.api.info.frodo.Review)4 Subscribe (org.greenrobot.eventbus.Subscribe)2 Context (android.content.Context)1 View (android.view.View)1 ImageView (android.widget.ImageView)1 TextView (android.widget.TextView)1 BindView (butterknife.BindView)1 ReviewUpdatedEvent (me.zhanghai.android.douya.eventbus.ReviewUpdatedEvent)1 FriendlyCardView (me.zhanghai.android.douya.ui.FriendlyCardView)1