hardcore-sushi / DroidFS

Encrypted overlay filesystems implementation for Android. Also available on gitea: https://forge.chapril.org/hardcoresushi/DroidFS
GNU Affero General Public License v3.0
624 stars 41 forks source link

(Feature Request) Add JpegXL previews #239

Open DorianBenjamin opened 1 year ago

DorianBenjamin commented 1 year ago

Please make .jxl files viewable like with jpg and png.

hardcore-sushi commented 1 year ago

DroidFS currently uses Glide to display images. It seems that Glide cannot display jxl files as of today.

Supporting jxl in DroidFS would therefore require manually implementing a decoder for this format or adding a dependency to a library that could do so. I don't think it's worth it at the moment.

As a workaround, you can install a trustworthy app that can display jxl images. Within DroidFS v2.1+, you can open your images with this app. If the files are small enough, they will only be shared via memory, without ever being written to the disk.

DorianBenjamin commented 1 year ago

Thanks! I'll use that for the time being. Whats the biggest filesize that would still be loaded into memory and not written to disk?

gitoss commented 11 months ago

This feature would be not or less necessary if a picture viewer app would enable access to the Android Storage Provider system - alas, most apps like F-Stop just the regular file system.

If someone stumbles upon an an picture viewing app that can connect to the file system exposed by DroidFS' "Expose Open Volumes" feature please let us know...

hardcore-sushi commented 11 months ago

@gitoss I think the best solution at the moment is to use the "Open with external app" feature. No need to expose volumes.

Whats the biggest filesize that would still be loaded into memory and not written to disk?

It depends. Currently, here's how it's implemented: https://github.com/hardcore-sushi/DroidFS/blob/719faa31ee3feddf915dde36738d994ee723a146/app/src/main/java/sushi/hardcore/droidfs/EncryptedFileProvider.kt#L121 Where size is the size of the file and memoryInfo.availMem is the currently available memory. In the future, a toggle could be added in the settings to let the user choose their preferred export location.