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:
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>;