diff options
author | Docile-Alligator <chineseperson5@gmail.com> | 2022-03-06 07:09:57 +0000 |
---|---|---|
committer | Docile-Alligator <chineseperson5@gmail.com> | 2022-03-06 07:09:57 +0000 |
commit | 53755d438168f3830dba2dad9ae63d7262909fc3 (patch) | |
tree | 3322f0367c9d70f737a21fbbf89cb02d44b625e6 /app/src/main | |
parent | 141abc654a66c003351091d9df9f94229d9eb9ce (diff) | |
download | infinity-for-reddit-53755d438168f3830dba2dad9ae63d7262909fc3.tar infinity-for-reddit-53755d438168f3830dba2dad9ae63d7262909fc3.tar.gz infinity-for-reddit-53755d438168f3830dba2dad9ae63d7262909fc3.tar.bz2 infinity-for-reddit-53755d438168f3830dba2dad9ae63d7262909fc3.tar.lz infinity-for-reddit-53755d438168f3830dba2dad9ae63d7262909fc3.tar.xz infinity-for-reddit-53755d438168f3830dba2dad9ae63d7262909fc3.tar.zst infinity-for-reddit-53755d438168f3830dba2dad9ae63d7262909fc3.zip |
Version 5.1.9-beta1. Fix low resolution post previews when showing them for the first time in PostDetailRecyclerViewAdapter.
Diffstat (limited to 'app/src/main')
2 files changed, 33 insertions, 8 deletions
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/adapters/MessageRecyclerViewAdapter.java b/app/src/main/java/ml/docilealligator/infinityforreddit/adapters/MessageRecyclerViewAdapter.java index d558d500..33add2f0 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/adapters/MessageRecyclerViewAdapter.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/adapters/MessageRecyclerViewAdapter.java @@ -187,7 +187,7 @@ public class MessageRecyclerViewAdapter extends PagedListAdapter<Message, Recycl ((DataViewHolder) holder).subjectTextView.setText(subject); mMarkwon.setMarkdown(((DataViewHolder) holder).contentCustomMarkwonView, displayedMessage.getBody()); - ((DataViewHolder) holder).itemView.setOnClickListener(view -> { + holder.itemView.setOnClickListener(view -> { if (mMessageType == FetchMessage.MESSAGE_TYPE_INBOX && message.getContext() != null && !message.getContext().equals("")) { Uri uri = Uri.parse(message.getContext()); @@ -202,7 +202,7 @@ public class MessageRecyclerViewAdapter extends PagedListAdapter<Message, Recycl } if (displayedMessage.isNew()) { - ((DataViewHolder) holder).itemView.setBackgroundColor(mMessageBackgroundColor); + holder.itemView.setBackgroundColor(mMessageBackgroundColor); message.setNew(false); ReadMessage.readMessage(mOauthRetrofit, mAccessToken, message.getFullname(), @@ -214,7 +214,7 @@ public class MessageRecyclerViewAdapter extends PagedListAdapter<Message, Recycl @Override public void readFailed() { message.setNew(true); - ((DataViewHolder) holder).itemView.setBackgroundColor(mUnreadMessageBackgroundColor); + holder.itemView.setBackgroundColor(mUnreadMessageBackgroundColor); } }); } @@ -228,7 +228,7 @@ public class MessageRecyclerViewAdapter extends PagedListAdapter<Message, Recycl ((DataViewHolder) holder).contentCustomMarkwonView.setOnClickListener(view -> { if (((DataViewHolder) holder).contentCustomMarkwonView.getSelectionStart() == -1 && ((DataViewHolder) holder).contentCustomMarkwonView.getSelectionEnd() == -1) { - ((DataViewHolder) holder).itemView.performClick(); + holder.itemView.performClick(); } }); } diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/adapters/PostDetailRecyclerViewAdapter.java b/app/src/main/java/ml/docilealligator/infinityforreddit/adapters/PostDetailRecyclerViewAdapter.java index 983c887a..1d72ec32 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/adapters/PostDetailRecyclerViewAdapter.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/adapters/PostDetailRecyclerViewAdapter.java @@ -19,6 +19,7 @@ import android.text.util.Linkify; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import android.view.ViewTreeObserver; import android.widget.ImageView; import android.widget.ProgressBar; import android.widget.RelativeLayout; @@ -717,7 +718,13 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter<Recycler Post.Preview preview = getSuitablePreview(mPost.getPreviews()); if (preview != null) { ((PostDetailVideoAndGifPreviewHolder) holder).mImageView.setRatio((float) preview.getPreviewHeight() / (float) preview.getPreviewWidth()); - loadImage((PostDetailVideoAndGifPreviewHolder) holder, preview); + ((PostDetailVideoAndGifPreviewHolder) holder).mImageView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { + @Override + public void onGlobalLayout() { + ((PostDetailVideoAndGifPreviewHolder) holder).mImageView.getViewTreeObserver().removeOnGlobalLayoutListener(this); + loadImage((PostDetailVideoAndGifPreviewHolder) holder, preview); + } + }); } } else if (holder instanceof PostDetailImageAndGifAutoplayViewHolder) { if (!mHidePostType) { @@ -737,7 +744,13 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter<Recycler } else { ((PostDetailImageAndGifAutoplayViewHolder) holder).mImageView.setRatio((float) preview.getPreviewHeight() / (float) preview.getPreviewWidth()); } - loadImage((PostDetailImageAndGifAutoplayViewHolder) holder, preview); + ((PostDetailImageAndGifAutoplayViewHolder) holder).mImageView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { + @Override + public void onGlobalLayout() { + ((PostDetailImageAndGifAutoplayViewHolder) holder).mImageView.getViewTreeObserver().removeOnGlobalLayoutListener(this); + loadImage((PostDetailImageAndGifAutoplayViewHolder) holder, preview); + } + }); } } else if (holder instanceof PostDetailLinkViewHolder) { String domain = Uri.parse(mPost.getUrl()).getHost(); @@ -745,7 +758,13 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter<Recycler Post.Preview preview = getSuitablePreview(mPost.getPreviews()); if (preview != null) { ((PostDetailLinkViewHolder) holder).mImageView.setRatio((float) preview.getPreviewHeight() / (float) preview.getPreviewWidth()); - loadImage((PostDetailLinkViewHolder) holder, preview); + ((PostDetailLinkViewHolder) holder).mImageView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { + @Override + public void onGlobalLayout() { + ((PostDetailLinkViewHolder) holder).mImageView.getViewTreeObserver().removeOnGlobalLayoutListener(this); + loadImage((PostDetailLinkViewHolder) holder, preview); + } + }); } } else if (holder instanceof PostDetailNoPreviewViewHolder) { @@ -812,7 +831,13 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter<Recycler ((PostDetailGalleryViewHolder) holder).mImageView .setRatio((float) preview.getPreviewHeight() / preview.getPreviewWidth()); - loadImage((PostDetailGalleryViewHolder) holder, preview); + ((PostDetailGalleryViewHolder) holder).mImageView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { + @Override + public void onGlobalLayout() { + ((PostDetailGalleryViewHolder) holder).mImageView.getViewTreeObserver().removeOnGlobalLayoutListener(this); + loadImage((PostDetailGalleryViewHolder) holder, preview); + } + }); loadCaptionPreview((PostDetailGalleryViewHolder) holder, preview); } else { |