added image preview blur for sensitive media

This commit is contained in:
nuclearfog 2023-03-06 22:02:57 +01:00
parent ec6afb12e2
commit 3d3ccb1476
No known key found for this signature in database
GPG Key ID: 03488A185C476379
2 changed files with 17 additions and 8 deletions

View File

@ -51,6 +51,7 @@ public class PreviewAdapter extends RecyclerView.Adapter<ViewHolder> implements
private OnCardClickListener listener; private OnCardClickListener listener;
private List<Object> items = new ArrayList<>(); private List<Object> items = new ArrayList<>();
private boolean blurMedia = false;
/** /**
* *
@ -85,7 +86,7 @@ public class PreviewAdapter extends RecyclerView.Adapter<ViewHolder> implements
if (holder instanceof PreviewHolder && item instanceof Media) { if (holder instanceof PreviewHolder && item instanceof Media) {
PreviewHolder previewHolder = ((PreviewHolder) holder); PreviewHolder previewHolder = ((PreviewHolder) holder);
Media media = (Media) item; Media media = (Media) item;
previewHolder.setContent(media); previewHolder.setContent(media, blurMedia);
} else if (holder instanceof CardHolder && item instanceof Card) { } else if (holder instanceof CardHolder && item instanceof Card) {
CardHolder cardHolder = (CardHolder) holder; CardHolder cardHolder = (CardHolder) holder;
Card card = (Card) item; Card card = (Card) item;
@ -171,6 +172,7 @@ public class PreviewAdapter extends RecyclerView.Adapter<ViewHolder> implements
items.addAll(Arrays.asList(status.getMedia())); items.addAll(Arrays.asList(status.getMedia()));
if (status.getCards().length > 0) if (status.getCards().length > 0)
items.addAll(Arrays.asList(status.getCards())); items.addAll(Arrays.asList(status.getCards()));
blurMedia = status.isSensitive();
notifyDataSetChanged(); notifyDataSetChanged();
} }

View File

@ -13,11 +13,14 @@ import androidx.recyclerview.widget.RecyclerView.ViewHolder;
import com.squareup.picasso.MemoryPolicy; import com.squareup.picasso.MemoryPolicy;
import com.squareup.picasso.NetworkPolicy; import com.squareup.picasso.NetworkPolicy;
import com.squareup.picasso.Picasso; import com.squareup.picasso.Picasso;
import com.squareup.picasso.RequestCreator;
import org.nuclearfog.twidda.R; import org.nuclearfog.twidda.R;
import org.nuclearfog.twidda.config.GlobalSettings; import org.nuclearfog.twidda.config.GlobalSettings;
import org.nuclearfog.twidda.model.Media; import org.nuclearfog.twidda.model.Media;
import jp.wasabeef.picasso.transformations.BlurTransformation;
/** /**
* holder class for {@link org.nuclearfog.twidda.ui.adapter.PreviewAdapter} * holder class for {@link org.nuclearfog.twidda.ui.adapter.PreviewAdapter}
* *
@ -65,14 +68,18 @@ public class PreviewHolder extends ViewHolder implements OnClickListener {
* *
* @param media media content * @param media media content
*/ */
public void setContent(Media media) { public void setContent(Media media, boolean blurImage) {
if (settings.imagesEnabled()) { if (settings.imagesEnabled() && !media.getPreviewUrl().isEmpty()) {
if (!media.getPreviewUrl().isEmpty()) { RequestCreator picassoBuilder = picasso.load(media.getPreviewUrl()).error(R.drawable.no_image);
picasso.load(media.getPreviewUrl()).networkPolicy(NetworkPolicy.NO_STORE).memoryPolicy(MemoryPolicy.NO_STORE).error(R.drawable.no_image).into(previewImage); picassoBuilder.networkPolicy(NetworkPolicy.NO_STORE).memoryPolicy(MemoryPolicy.NO_STORE);
} else { if (blurImage) {
previewImage.setImageDrawable(new ColorDrawable(EMPTY_COLOR)); BlurTransformation blurTransformation = new BlurTransformation(previewImage.getContext(), 30);
picassoBuilder.transform(blurTransformation);
} }
}// todo add placeholder if image load is disabled picassoBuilder.into(previewImage);
} else {
previewImage.setImageDrawable(new ColorDrawable(EMPTY_COLOR));
}
if (media.getMediaType() == Media.VIDEO || media.getMediaType() == Media.GIF) { if (media.getMediaType() == Media.VIDEO || media.getMediaType() == Media.GIF) {
playIcon.setVisibility(View.VISIBLE); playIcon.setVisibility(View.VISIBLE);
} else { } else {