mirror of
https://codeberg.org/tom79/Fedilab.git
synced 2025-07-07 20:30:28 +03:00
keep media proportion in timelines for Pixelfed
This commit is contained in:
parent
310d6bf4aa
commit
ee89abe16f
2 changed files with 23 additions and 4 deletions
|
@ -74,13 +74,13 @@ public class SliderAdapter extends SliderViewAdapter<SliderAdapter.SliderAdapter
|
||||||
if (status.sensitive) {
|
if (status.sensitive) {
|
||||||
Glide.with(viewHolder.itemView)
|
Glide.with(viewHolder.itemView)
|
||||||
.load(sliderItem.preview_url)
|
.load(sliderItem.preview_url)
|
||||||
.centerCrop()
|
.fitCenter()
|
||||||
.apply(new RequestOptions().transform(new BlurTransformation(50, 3)))
|
.apply(new RequestOptions().transform(new BlurTransformation(50, 3)))
|
||||||
.into(viewHolder.binding.ivAutoImageSlider);
|
.into(viewHolder.binding.ivAutoImageSlider);
|
||||||
} else {
|
} else {
|
||||||
Glide.with(viewHolder.itemView)
|
Glide.with(viewHolder.itemView)
|
||||||
.load(sliderItem.preview_url)
|
.load(sliderItem.preview_url)
|
||||||
.centerCrop()
|
.fitCenter()
|
||||||
.into(viewHolder.binding.ivAutoImageSlider);
|
.into(viewHolder.binding.ivAutoImageSlider);
|
||||||
}
|
}
|
||||||
SharedPreferences sharedpreferences = PreferenceManager.getDefaultSharedPreferences(context);
|
SharedPreferences sharedpreferences = PreferenceManager.getDefaultSharedPreferences(context);
|
||||||
|
|
|
@ -58,6 +58,7 @@ import android.os.Looper;
|
||||||
import android.text.Html;
|
import android.text.Html;
|
||||||
import android.text.SpannableString;
|
import android.text.SpannableString;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
|
import android.util.Log;
|
||||||
import android.util.TypedValue;
|
import android.util.TypedValue;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.MotionEvent;
|
import android.view.MotionEvent;
|
||||||
|
@ -3374,7 +3375,25 @@ public class StatusAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>
|
||||||
} else if (viewHolder.getItemViewType() == STATUS_PIXELFED) {
|
} else if (viewHolder.getItemViewType() == STATUS_PIXELFED) {
|
||||||
Status statusToDeal = status.reblog != null ? status.reblog : status;
|
Status statusToDeal = status.reblog != null ? status.reblog : status;
|
||||||
StatusViewHolder holder = (StatusViewHolder) viewHolder;
|
StatusViewHolder holder = (StatusViewHolder) viewHolder;
|
||||||
|
if (measuredWidthArt <= 0) {
|
||||||
|
holder.bindingPixelfed.artMedia.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
|
||||||
|
@Override
|
||||||
|
public void onGlobalLayout() {
|
||||||
|
holder.bindingPixelfed.artMedia.getViewTreeObserver().removeOnGlobalLayoutListener(this);
|
||||||
|
measuredWidthArt = holder.bindingPixelfed.artMedia.getWidth();
|
||||||
|
notifyItemChanged(0, statusList.size());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
ConstraintLayout.LayoutParams lp;
|
||||||
|
if(status.media_attachments.get(0).meta != null && status.media_attachments.get(0).meta.getSmall() != null) {
|
||||||
|
float mediaH = status.media_attachments.get(0).meta.getSmall().height;
|
||||||
|
float mediaW = status.media_attachments.get(0).meta.getSmall().width;
|
||||||
|
float ratio = measuredWidthArt > 0 ? measuredWidthArt / mediaW : 1.0f;
|
||||||
|
lp = new ConstraintLayout.LayoutParams(ConstraintLayout.LayoutParams.MATCH_PARENT, (int) (mediaH * ratio));
|
||||||
|
//holder.bindingPixelfed.artMedia.setScaleType(ImageView.ScaleType.FIT_CENTER);
|
||||||
|
holder.bindingPixelfed.artMedia.setLayoutParams(lp);
|
||||||
|
}
|
||||||
if (status.reblog != null) {
|
if (status.reblog != null) {
|
||||||
MastodonHelper.loadPPMastodon(holder.bindingPixelfed.artReblogPp, status.account);
|
MastodonHelper.loadPPMastodon(holder.bindingPixelfed.artReblogPp, status.account);
|
||||||
holder.bindingPixelfed.artReblogPp.setVisibility(View.VISIBLE);
|
holder.bindingPixelfed.artReblogPp.setVisibility(View.VISIBLE);
|
||||||
|
@ -3423,7 +3442,7 @@ public class StatusAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>
|
||||||
Toasty.info(context, context.getString(R.string.retrieve_remote_status), Toasty.LENGTH_SHORT).show();
|
Toasty.info(context, context.getString(R.string.retrieve_remote_status), Toasty.LENGTH_SHORT).show();
|
||||||
searchVM.search(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, statusToDeal.uri, null, "statuses", false, true, false, 0, null, null, 1)
|
searchVM.search(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, statusToDeal.uri, null, "statuses", false, true, false, 0, null, null, 1)
|
||||||
.observe((LifecycleOwner) context, results -> {
|
.observe((LifecycleOwner) context, results -> {
|
||||||
if (results != null && results.statuses != null && results.statuses.size() > 0) {
|
if (results != null && results.statuses != null && !results.statuses.isEmpty()) {
|
||||||
Status fetchedStatus = results.statuses.get(0);
|
Status fetchedStatus = results.statuses.get(0);
|
||||||
statusesVM.favourite(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, fetchedStatus.id)
|
statusesVM.favourite(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, fetchedStatus.id)
|
||||||
.observe((LifecycleOwner) context, _status -> manageAction(context, adapter, holder, CrossActionHelper.TypeOfCrossAction.FAVOURITE_ACTION, statusToDeal, _status, true));
|
.observe((LifecycleOwner) context, _status -> manageAction(context, adapter, holder, CrossActionHelper.TypeOfCrossAction.FAVOURITE_ACTION, statusToDeal, _status, true));
|
||||||
|
|
Loading…
Reference in a new issue