Fix issue #469 - Crashes with pinned and Pixelfed

This commit is contained in:
Thomas 2022-11-17 13:43:18 +01:00
parent ba53e174ab
commit a946ea49d1
2 changed files with 31 additions and 24 deletions

View file

@ -32,10 +32,12 @@ public class Tag implements Serializable {
public int getWeight() { public int getWeight() {
int weight = 0; int weight = 0;
for (History h : history) { if (history != null && history.size() > 0) {
try { for (History h : history) {
weight += Integer.parseInt(h.accounts); try {
} catch (Exception ignored) { weight += Integer.parseInt(h.accounts);
} catch (Exception ignored) {
}
} }
} }
return weight; return weight;

View file

@ -2161,30 +2161,35 @@ public class StatusAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>
@Override @Override
public void onGlobalLayout() { public void onGlobalLayout() {
holder.bindingArt.artMedia.getViewTreeObserver().removeOnGlobalLayoutListener(this); holder.bindingArt.artMedia.getViewTreeObserver().removeOnGlobalLayoutListener(this);
float viewWidth = holder.bindingArt.artMedia.getWidth(); if (status.art_attachment.meta != null) {
ConstraintLayout.LayoutParams lp; float viewWidth = holder.bindingArt.artMedia.getWidth();
float mediaH = status.art_attachment.meta.small.height; ConstraintLayout.LayoutParams lp;
float mediaW = status.art_attachment.meta.small.width; float mediaH = status.art_attachment.meta.small.height;
float ratio = 1.0f; float mediaW = status.art_attachment.meta.small.width;
if (mediaW != 0) { float ratio = 1.0f;
ratio = viewWidth / mediaW; if (mediaW != 0) {
ratio = viewWidth / mediaW;
}
lp = new ConstraintLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, (int) (mediaH * ratio));
holder.bindingArt.artMedia.setScaleType(ImageView.ScaleType.FIT_CENTER);
holder.bindingArt.artMedia.setLayoutParams(lp);
} }
lp = new ConstraintLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, (int) (mediaH * ratio));
holder.bindingArt.artMedia.setScaleType(ImageView.ScaleType.FIT_CENTER);
holder.bindingArt.artMedia.setLayoutParams(lp);
} }
}); });
float viewWidth = holder.bindingArt.artMedia.getWidth(); if (status.art_attachment.meta != null) {
ConstraintLayout.LayoutParams lp; float viewWidth = holder.bindingArt.artMedia.getWidth();
float mediaH = status.art_attachment.meta.small.height; ConstraintLayout.LayoutParams lp;
float mediaW = status.art_attachment.meta.small.width; float mediaH = status.art_attachment.meta.small.height;
float ratio = 1.0f; float mediaW = status.art_attachment.meta.small.width;
if (mediaW != 0) { float ratio = 1.0f;
ratio = viewWidth / mediaW; if (mediaW != 0) {
ratio = viewWidth / mediaW;
}
lp = new ConstraintLayout.LayoutParams(ConstraintLayout.LayoutParams.MATCH_PARENT, (int) (mediaH * ratio));
holder.bindingArt.artMedia.setScaleType(ImageView.ScaleType.FIT_CENTER);
holder.bindingArt.artMedia.setLayoutParams(lp);
} }
lp = new ConstraintLayout.LayoutParams(ConstraintLayout.LayoutParams.MATCH_PARENT, (int) (mediaH * ratio));
holder.bindingArt.artMedia.setScaleType(ImageView.ScaleType.FIT_CENTER);
holder.bindingArt.artMedia.setLayoutParams(lp);
Glide.with(holder.bindingArt.artMedia.getContext()) Glide.with(holder.bindingArt.artMedia.getContext())
.load(status.art_attachment.preview_url) .load(status.art_attachment.preview_url)
.apply(new RequestOptions().transform(new RoundedCorners((int) Helper.convertDpToPixel(3, context)))) .apply(new RequestOptions().transform(new RoundedCorners((int) Helper.convertDpToPixel(3, context))))