Loading app/src/main/java/app/fedilab/android/mastodon/ui/drawer/StatusAdapter.java +20 −9 Original line number Diff line number Diff line Loading @@ -3047,7 +3047,8 @@ public class StatusAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> public static RequestBuilder<Drawable> prepareRequestBuilder(Context context, Attachment attachment, float mediaW, float mediaH, float focusX, float focusY, boolean isSensitive, boolean isArt) { float focusX, float focusY, boolean isSensitive, boolean isArt, boolean allowAnimation) { SharedPreferences sharedpreferences = PreferenceManager.getDefaultSharedPreferences(context); boolean fullAttachement = sharedpreferences.getBoolean(context.getString(R.string.SET_FULL_PREVIEW), false); Loading @@ -3072,21 +3073,27 @@ public class StatusAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> requestBuilder = requestBuilder.placeholder(new BitmapDrawable(context.getResources(), placeholder)); } requestBuilder = requestBuilder.apply(new RequestOptions().transform(new GlideFocus(focusX, focusY))); if (!allowAnimation) { requestBuilder = requestBuilder.dontAnimate(); } } else { if (placeholder != null) { requestBuilder = requestBuilder.placeholder(new BitmapDrawable(context.getResources(), placeholder)); } else { requestBuilder = requestBuilder.placeholder(R.color.transparent_grey); } if (!allowAnimation) { requestBuilder = requestBuilder.dontAnimate(); } requestBuilder = requestBuilder.apply(new RequestOptions().override((int) mediaW, (int) mediaH)); requestBuilder = requestBuilder.fitCenter(); } } else { requestBuilder = glideRequests.asDrawable() .dontAnimate() .apply(new RequestOptions().transform(new BlurTransformation(50, 3))); if (!allowAnimation) { requestBuilder = requestBuilder.dontAnimate(); } // .apply(new RequestOptions().transform(new CenterCrop(), new RoundedCorners((int) Helper.convertDpToPixel(3, context)))) } return requestBuilder; Loading Loading @@ -3167,7 +3174,8 @@ public class StatusAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> layoutMediaBinding.viewDescription.setVisibility(View.GONE); } RequestBuilder<Drawable> requestBuilder = prepareRequestBuilder(context, attachment, mediaW * ratio, mediaH * ratio, focusX, focusY, statusToDeal.sensitive, false); boolean allowAnimation = autoplaygif && attachment.url != null && attachment.url.toLowerCase().endsWith(".webp") && (!statusToDeal.sensitive || expand_media); RequestBuilder<Drawable> requestBuilder = prepareRequestBuilder(context, attachment, mediaW * ratio, mediaH * ratio, focusX, focusY, statusToDeal.sensitive, false, allowAnimation); if (sensitiveIndicator) { if (!statusToDeal.sensitive || expand_media) { layoutMediaBinding.viewHide.setIconResource(R.drawable.ic_baseline_visibility_24); Loading @@ -3188,7 +3196,8 @@ public class StatusAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> } else { layoutMediaBinding.viewHide.setVisibility(View.GONE); } requestBuilder.load(attachment.preview_url).into(layoutMediaBinding.media); String mediaUrl = allowAnimation ? attachment.url : attachment.preview_url; requestBuilder.load(mediaUrl).into(layoutMediaBinding.media); layoutMediaBinding.media.setOnClickListener(v -> { if (statusToDeal.sensitive && !expand_media) { Loading Loading @@ -3437,7 +3446,7 @@ public class StatusAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> mediaH = attachment.meta.getSmall().height; mediaW = attachment.meta.getSmall().width; } return prepareRequestBuilder(context, attachment, mediaW, mediaH, focusX, focusY, attachment.sensitive, timelineType == Timeline.TimeLineEnum.ART).load(attachment); return prepareRequestBuilder(context, attachment, mediaW, mediaH, focusX, focusY, attachment.sensitive, timelineType == Timeline.TimeLineEnum.ART, false).load(attachment); } @Override Loading Loading @@ -3717,8 +3726,10 @@ public class StatusAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> lp = new ConstraintLayout.LayoutParams(ConstraintLayout.LayoutParams.MATCH_PARENT, (int) (mediaH * ratio)); holder.bindingArt.artMedia.setScaleType(ImageView.ScaleType.FIT_CENTER); holder.bindingArt.artMedia.setLayoutParams(lp); RequestBuilder<Drawable> requestBuilder = prepareRequestBuilder(context, status.art_attachment, mediaW * ratio, mediaH * ratio, 1.0f, 1.0f, status.sensitive, true); requestBuilder.load(status.art_attachment.preview_url).into(holder.bindingArt.artMedia); boolean allowAnimationArt = autoplaygif && status.art_attachment.url != null && status.art_attachment.url.toLowerCase().endsWith(".webp") && !status.sensitive; RequestBuilder<Drawable> requestBuilder = prepareRequestBuilder(context, status.art_attachment, mediaW * ratio, mediaH * ratio, 1.0f, 1.0f, status.sensitive, true, allowAnimationArt); String artMediaUrl = allowAnimationArt ? status.art_attachment.url : status.art_attachment.preview_url; requestBuilder.load(artMediaUrl).into(holder.bindingArt.artMedia); } } Loading app/src/main/java/app/fedilab/android/mastodon/ui/drawer/StatusDirectMessageAdapter.java +5 −2 Original line number Diff line number Diff line Loading @@ -107,6 +107,7 @@ public class StatusDirectMessageAdapter extends RecyclerView.Adapter<RecyclerVie final int timeout = sharedpreferences.getInt(context.getString(R.string.SET_NSFW_TIMEOUT), 5); boolean long_press_media = sharedpreferences.getBoolean(context.getString(R.string.SET_LONG_PRESS_STORE_MEDIA), false); boolean expand_media = sharedpreferences.getBoolean(context.getString(R.string.SET_EXPAND_MEDIA), false); boolean autoplaygif = sharedpreferences.getBoolean(context.getString(R.string.SET_AUTO_PLAY_GIG_MEDIA), false); LinearLayout.LayoutParams lp; Loading Loading @@ -160,13 +161,15 @@ public class StatusDirectMessageAdapter extends RecyclerView.Adapter<RecyclerVie } RequestBuilder<Drawable> requestBuilder = prepareRequestBuilder(context, attachment, mediaW * ratio, mediaH * ratio, focusX, focusY, status.sensitive, false); boolean allowAnimation = autoplaygif && attachment.url != null && attachment.url.toLowerCase().endsWith(".webp") && (!status.sensitive || expand_media); RequestBuilder<Drawable> requestBuilder = prepareRequestBuilder(context, attachment, mediaW * ratio, mediaH * ratio, focusX, focusY, status.sensitive, false, allowAnimation); if (!status.sensitive || expand_media) { layoutMediaBinding.viewHide.setIconResource(R.drawable.ic_baseline_visibility_24); } else { layoutMediaBinding.viewHide.setIconResource(R.drawable.ic_baseline_visibility_off_24); } requestBuilder.load(attachment.preview_url).into(layoutMediaBinding.media); String mediaUrl = allowAnimation ? attachment.url : attachment.preview_url; requestBuilder.load(mediaUrl).into(layoutMediaBinding.media); if (status.sensitive) { Helper.changeDrawableColor(context, layoutMediaBinding.viewHide, ThemeHelper.getAttColor(context, R.attr.colorError)); } else { Loading Loading
app/src/main/java/app/fedilab/android/mastodon/ui/drawer/StatusAdapter.java +20 −9 Original line number Diff line number Diff line Loading @@ -3047,7 +3047,8 @@ public class StatusAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> public static RequestBuilder<Drawable> prepareRequestBuilder(Context context, Attachment attachment, float mediaW, float mediaH, float focusX, float focusY, boolean isSensitive, boolean isArt) { float focusX, float focusY, boolean isSensitive, boolean isArt, boolean allowAnimation) { SharedPreferences sharedpreferences = PreferenceManager.getDefaultSharedPreferences(context); boolean fullAttachement = sharedpreferences.getBoolean(context.getString(R.string.SET_FULL_PREVIEW), false); Loading @@ -3072,21 +3073,27 @@ public class StatusAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> requestBuilder = requestBuilder.placeholder(new BitmapDrawable(context.getResources(), placeholder)); } requestBuilder = requestBuilder.apply(new RequestOptions().transform(new GlideFocus(focusX, focusY))); if (!allowAnimation) { requestBuilder = requestBuilder.dontAnimate(); } } else { if (placeholder != null) { requestBuilder = requestBuilder.placeholder(new BitmapDrawable(context.getResources(), placeholder)); } else { requestBuilder = requestBuilder.placeholder(R.color.transparent_grey); } if (!allowAnimation) { requestBuilder = requestBuilder.dontAnimate(); } requestBuilder = requestBuilder.apply(new RequestOptions().override((int) mediaW, (int) mediaH)); requestBuilder = requestBuilder.fitCenter(); } } else { requestBuilder = glideRequests.asDrawable() .dontAnimate() .apply(new RequestOptions().transform(new BlurTransformation(50, 3))); if (!allowAnimation) { requestBuilder = requestBuilder.dontAnimate(); } // .apply(new RequestOptions().transform(new CenterCrop(), new RoundedCorners((int) Helper.convertDpToPixel(3, context)))) } return requestBuilder; Loading Loading @@ -3167,7 +3174,8 @@ public class StatusAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> layoutMediaBinding.viewDescription.setVisibility(View.GONE); } RequestBuilder<Drawable> requestBuilder = prepareRequestBuilder(context, attachment, mediaW * ratio, mediaH * ratio, focusX, focusY, statusToDeal.sensitive, false); boolean allowAnimation = autoplaygif && attachment.url != null && attachment.url.toLowerCase().endsWith(".webp") && (!statusToDeal.sensitive || expand_media); RequestBuilder<Drawable> requestBuilder = prepareRequestBuilder(context, attachment, mediaW * ratio, mediaH * ratio, focusX, focusY, statusToDeal.sensitive, false, allowAnimation); if (sensitiveIndicator) { if (!statusToDeal.sensitive || expand_media) { layoutMediaBinding.viewHide.setIconResource(R.drawable.ic_baseline_visibility_24); Loading @@ -3188,7 +3196,8 @@ public class StatusAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> } else { layoutMediaBinding.viewHide.setVisibility(View.GONE); } requestBuilder.load(attachment.preview_url).into(layoutMediaBinding.media); String mediaUrl = allowAnimation ? attachment.url : attachment.preview_url; requestBuilder.load(mediaUrl).into(layoutMediaBinding.media); layoutMediaBinding.media.setOnClickListener(v -> { if (statusToDeal.sensitive && !expand_media) { Loading Loading @@ -3437,7 +3446,7 @@ public class StatusAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> mediaH = attachment.meta.getSmall().height; mediaW = attachment.meta.getSmall().width; } return prepareRequestBuilder(context, attachment, mediaW, mediaH, focusX, focusY, attachment.sensitive, timelineType == Timeline.TimeLineEnum.ART).load(attachment); return prepareRequestBuilder(context, attachment, mediaW, mediaH, focusX, focusY, attachment.sensitive, timelineType == Timeline.TimeLineEnum.ART, false).load(attachment); } @Override Loading Loading @@ -3717,8 +3726,10 @@ public class StatusAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> lp = new ConstraintLayout.LayoutParams(ConstraintLayout.LayoutParams.MATCH_PARENT, (int) (mediaH * ratio)); holder.bindingArt.artMedia.setScaleType(ImageView.ScaleType.FIT_CENTER); holder.bindingArt.artMedia.setLayoutParams(lp); RequestBuilder<Drawable> requestBuilder = prepareRequestBuilder(context, status.art_attachment, mediaW * ratio, mediaH * ratio, 1.0f, 1.0f, status.sensitive, true); requestBuilder.load(status.art_attachment.preview_url).into(holder.bindingArt.artMedia); boolean allowAnimationArt = autoplaygif && status.art_attachment.url != null && status.art_attachment.url.toLowerCase().endsWith(".webp") && !status.sensitive; RequestBuilder<Drawable> requestBuilder = prepareRequestBuilder(context, status.art_attachment, mediaW * ratio, mediaH * ratio, 1.0f, 1.0f, status.sensitive, true, allowAnimationArt); String artMediaUrl = allowAnimationArt ? status.art_attachment.url : status.art_attachment.preview_url; requestBuilder.load(artMediaUrl).into(holder.bindingArt.artMedia); } } Loading
app/src/main/java/app/fedilab/android/mastodon/ui/drawer/StatusDirectMessageAdapter.java +5 −2 Original line number Diff line number Diff line Loading @@ -107,6 +107,7 @@ public class StatusDirectMessageAdapter extends RecyclerView.Adapter<RecyclerVie final int timeout = sharedpreferences.getInt(context.getString(R.string.SET_NSFW_TIMEOUT), 5); boolean long_press_media = sharedpreferences.getBoolean(context.getString(R.string.SET_LONG_PRESS_STORE_MEDIA), false); boolean expand_media = sharedpreferences.getBoolean(context.getString(R.string.SET_EXPAND_MEDIA), false); boolean autoplaygif = sharedpreferences.getBoolean(context.getString(R.string.SET_AUTO_PLAY_GIG_MEDIA), false); LinearLayout.LayoutParams lp; Loading Loading @@ -160,13 +161,15 @@ public class StatusDirectMessageAdapter extends RecyclerView.Adapter<RecyclerVie } RequestBuilder<Drawable> requestBuilder = prepareRequestBuilder(context, attachment, mediaW * ratio, mediaH * ratio, focusX, focusY, status.sensitive, false); boolean allowAnimation = autoplaygif && attachment.url != null && attachment.url.toLowerCase().endsWith(".webp") && (!status.sensitive || expand_media); RequestBuilder<Drawable> requestBuilder = prepareRequestBuilder(context, attachment, mediaW * ratio, mediaH * ratio, focusX, focusY, status.sensitive, false, allowAnimation); if (!status.sensitive || expand_media) { layoutMediaBinding.viewHide.setIconResource(R.drawable.ic_baseline_visibility_24); } else { layoutMediaBinding.viewHide.setIconResource(R.drawable.ic_baseline_visibility_off_24); } requestBuilder.load(attachment.preview_url).into(layoutMediaBinding.media); String mediaUrl = allowAnimation ? attachment.url : attachment.preview_url; requestBuilder.load(mediaUrl).into(layoutMediaBinding.media); if (status.sensitive) { Helper.changeDrawableColor(context, layoutMediaBinding.viewHide, ThemeHelper.getAttColor(context, R.attr.colorError)); } else { Loading