notedeck

One damus client to rule them all
git clone git://jb55.com/notedeck
Log | Files | Refs | README | LICENSE

commit 49bad7b04178782c4735a7d6cfaf8b8dc252be26
parent cd52848a0b762e21e06e5ab3c1cb74bfdbfec96e
Author: kernelkind <kernelkind@gmail.com>
Date:   Sat, 22 Nov 2025 21:21:29 -0700

feat(media-loading): Images helpers

Signed-off-by: kernelkind <kernelkind@gmail.com>

Diffstat:
Mcrates/notedeck/src/imgcache.rs | 34+++++++++++++++++++++++++++++++++-
1 file changed, 33 insertions(+), 1 deletion(-)

diff --git a/crates/notedeck/src/imgcache.rs b/crates/notedeck/src/imgcache.rs @@ -2,7 +2,9 @@ use crate::jobs::MediaJobSender; use crate::media::gif::{ensure_latest_texture_from_cache, AnimatedImgTexCache}; use crate::media::images::ImageType; use crate::media::static_imgs::StaticImgTexCache; -use crate::media::{AnimationMode, BlurCache, NoLoadingLatestTex}; +use crate::media::{ + AnimationMode, BlurCache, NoLoadingLatestTex, TrustedMediaLatestTex, UntrustedMediaLatestTex, +}; use crate::urls::{UrlCache, UrlMimes}; use crate::ImageMetadata; use crate::ObfuscationType; @@ -608,6 +610,36 @@ impl Images { Ok(()) } + + pub fn trusted_texture_loader(&mut self) -> TrustedMediaLatestTex<'_> { + TrustedMediaLatestTex::new( + NoLoadingLatestTex::new( + &self.textures.static_image, + &self.textures.animated, + &mut self.gif_states, + ), + &self.textures.blurred, + ) + } + + pub fn untrusted_texture_loader(&mut self) -> UntrustedMediaLatestTex<'_> { + UntrustedMediaLatestTex::new(&self.textures.blurred) + } + + pub fn no_img_loading_tex_loader(&'_ mut self) -> NoLoadingLatestTex<'_> { + NoLoadingLatestTex::new( + &self.textures.static_image, + &self.textures.animated, + &mut self.gif_states, + ) + } + + pub fn user_trusts_img(&self, url: &str, media_type: MediaCacheType) -> bool { + match media_type { + MediaCacheType::Image => self.textures.static_image.contains(url), + MediaCacheType::Gif => self.textures.animated.contains(url), + } + } } pub type GifStateMap = HashMap<String, GifState>;