public PhotoHolder(View itemView) { super(itemView); thumbIv = findViewById(R.id.photo_thumb); authorTv = findViewById(R.id.photo_author); options = BitmapTransitionOptions.withCrossFade(); }
@Override public void loadImage(String path, ImageView imageView, ImageType imageType) { Glide.with(imageView) .asBitmap() .load(path) .transition(BitmapTransitionOptions.withCrossFade()) .apply(REQUEST_OPTIONS) .into(imageView); }
private void bindDescription() { final TextView storyComment = header.findViewById(R.id.story_comment); if (!TextUtils.isEmpty(story.comment)) { HtmlUtils.parseMarkdownAndSetText(storyComment, story.comment, markdown, (src, loadingSpan) -> GlideApp.with(DesignerNewsStory.this) .asBitmap() .load(src) .transition(BitmapTransitionOptions.withCrossFade()) .diskCacheStrategy(DiskCacheStrategy.ALL) .into(new ImageSpanTarget(storyComment, loadingSpan))); } else { storyComment.setVisibility(View.GONE); } upvoteStory = header.findViewById(R.id.story_vote_action); upvoteStory.setText(getResources().getQuantityString(R.plurals.upvotes, story.vote_count, NumberFormat.getInstance().format(story.vote_count))); upvoteStory.setOnClickListener(v -> upvoteStory()); final TextView share = header.findViewById(R.id.story_share_action); share.setOnClickListener(v -> { ((AnimatedVectorDrawable) share.getCompoundDrawables()[1]).start(); startActivity(ShareCompat.IntentBuilder.from(DesignerNewsStory.this) .setText(story.url) .setType("text/plain") .setSubject(story.title) .getIntent()); }); TextView storyPosterTime = header.findViewById(R.id.story_poster_time); SpannableString poster = new SpannableString(story.user_display_name.toLowerCase()); poster.setSpan(new TextAppearanceSpan(this, R.style.TextAppearance_CommentAuthor), 0, poster.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); CharSequence job = !TextUtils.isEmpty(story.user_job) ? "\n" + story.user_job.toLowerCase() : ""; CharSequence timeAgo = DateUtils.getRelativeTimeSpanString(story.created_at.getTime(), System.currentTimeMillis(), DateUtils.SECOND_IN_MILLIS) .toString().toLowerCase(); storyPosterTime.setText(TextUtils.concat(poster, job, "\n", timeAgo)); ImageView avatar = header.findViewById(R.id.story_poster_avatar); if (!TextUtils.isEmpty(story.user_portrait_url)) { GlideApp.with(this) .load(story.user_portrait_url) .transition(withCrossFade()) .placeholder(R.drawable.avatar_placeholder) .circleCrop() .into(avatar); } else { avatar.setVisibility(View.GONE); } }