IacobIonut01 / Gallery

Light-weight Media Gallery app for Android made with Jetpack Compose
Apache License 2.0
1.22k stars 61 forks source link

JPEG XL support #145

Closed avidseeker closed 1 month ago

avidseeker commented 1 year ago

It would be great if JPEG XL support was added to the image viewer. A jxl viewer for Android is already released.

Prajitura commented 7 months ago

Can you also add support to view jpef xl inside tge app not only when opening it through a file manager? I assume you will need a read all files as android doesent recognize .jxl as images but it could be a toggle. I found a fork of fossify that foes it: https://github.com/oupson/Jxl-Gallery/releases/tag/1.1.0 Thanks

foundObjects commented 1 month ago

+1 to this feature request, it would be useful to me as well

IacobIonut01 commented 1 month ago

This is already available and JXL can be viewed from the Gallery app natively (tested on Android 15).

TPS commented 1 month ago

This is already available and JXL can be viewed from the Gallery app natively (tested on Android 15).

@IacobIonut01 No go on F-droid latest v2.12 on Android 12. JxLs open but are blank. How may I help debug?

IacobIonut01 commented 1 month ago

This is already available and JXL can be viewed from the Gallery app natively (tested on Android 15).

@IacobIonut01 No go on F-droid latest v2.12 on Android 12. JxLs open but are blank. How may I help debug?

Check 3.0.0 update

TPS commented 1 month ago

Check 3.0.0 update

When that lands on F-droid (likely sometime this week), I'll feedback.

Quackdoc commented 1 month ago

Android 14 opening a JXL crashes the application.

app crash log https://paste.crdroid.net/E4Rd4a

➜  ~ adb logcat | rg -i gallery
09-02 13:19:09.870  1357  8733 I ActivityTaskManager: START u0 {act=android.intent.action.VIEW dat=content://me.zhanghai.android.files.file_provider/... typ=image/jxl flg=0x3000003 cmp=com.dot.gallery/.feature_node.presentation.standalone.StandaloneActivity (has extras)} with LAUNCH_SINGLE_TASK from uid 10422 (realCallingUid=1000) (BAL_ALLOW_VISIBLE_WINDOW) result code=0
09-02 13:19:09.870 20255 20270 V WindowManagerShell: Transition requested: android.os.BinderProxy@312052a TransitionRequestInfo { type = 1, triggerTask = TaskInfo{userId=0 taskId=891 displayId=0 isRunning=true baseIntent=Intent { act=android.intent.action.VIEW dat=content://me.zhanghai.android.files.file_provider/... typ=image/jxl flg=0x13000003 cmp=com.dot.gallery/.feature_node.presentation.standalone.StandaloneActivity } baseActivity=ComponentInfo{com.dot.gallery/com.dot.gallery.feature_node.presentation.standalone.StandaloneActivity} topActivity=ComponentInfo{com.dot.gallery/com.dot.gallery.feature_node.presentation.standalone.StandaloneActivity} origActivity=null realActivity=ComponentInfo{com.dot.gallery/com.dot.gallery.feature_node.presentation.standalone.StandaloneActivity} numActivities=1 lastActiveTime=802024560 supportsMultiWindow=true resizeMode=1 isResizeable=true minWidth=-1 minHeight=-1 defaultMinSize=220 token=WCT{android.window.IWindowContainerToken$Stub$Proxy@4bb2f1b} topActivityType=1 pictureInPictureParams=null shouldDockBigOverlays=false launchIntoPipHostTaskId=-1 lastParentTaskIdBeforePip=-1 displayCutoutSafeInsets=Rect(0, 94 - 0, 0) topActivityInfo=ActivityInfo{5ef78b8 com.dot.gallery.feature_node.presentation.standalone.StandaloneActivity} launchCookies=[] positionInParent=Point(0, 0) parentTaskId=-1 isFocused=false isVisible=false isVisibleRequested=false isSleeping=false topActivityInSizeCompat=false topActivityEligibleForLetterboxEducation= false isLetterboxDoubleTapEnabled= false topActivityEligibleForUserAspectRatioButton= false topActivityBoundsLetterboxed= false isFromLetterboxDoubleTap= false topActivityLetterboxVerticalPosition= -1 topActivityLetterboxHorizontalPosition= -1 topActivityLetterboxWidth=-1 topActivityLetterboxHeight=-1 isUserFullscreenOverrideEnabled=false isTopActivityTransparent=false locusId=null displayAreaFeatureId=1 cameraCompatControlState=hidden}, remoteTransition = null, displayChange = null, flags = 0 }
09-02 13:19:09.880  1357  1391 I ActivityManager: Start proc 24678:com.dot.gallery/u0a454 for next-top-activity {com.dot.gallery/com.dot.gallery.feature_node.presentation.standalone.StandaloneActivity}
09-02 13:19:09.894  3243 23447 D BinderSender: sendBinder to uid 10454: packages=com.dot.gallery
09-02 13:19:09.903 24678 24678 I com.dot.gallery: Using CollectorTypeCC GC.
09-02 13:19:09.910 24678 24678 E com.dot.gallery: Not starting debugger since process cannot load the jdwp agent.
09-02 13:19:09.942  3243  3044 D BinderSender: sendBinder to uid 10454: packages=com.dot.gallery
09-02 13:19:09.952 24678 24678 D nativeloader: Configuring clns-4 for other apk /data/app/~~LrOzNT8y-rvJ845xu0e7sw==/com.dot.gallery-yS2XC5IuauKlO536PEfzsA==/base.apk. target_sdk_version=35, uses_libraries=, library_path=/data/app/~~LrOzNT8y-rvJ845xu0e7sw==/com.dot.gallery-yS2XC5IuauKlO536PEfzsA==/lib/arm64:/data/app/~~LrOzNT8y-rvJ845xu0e7sw==/com.dot.gallery-yS2XC5IuauKlO536PEfzsA==/base.apk!/lib/arm64-v8a, permitted_path=/data:/mnt/expand:/data/user/0/com.dot.gallery
09-02 13:19:09.960 24678 24678 V GraphicsEnvironment: ANGLE GameManagerService for com.dot.gallery: false
09-02 13:19:09.960 24678 24678 V GraphicsEnvironment: com.dot.gallery is not listed in per-application setting
09-02 13:19:09.988  1357  1377 V WindowManager: Sent Transition #6084 createdAt=09-02 13:19:09.866 via request=TransitionRequestInfo { type = 1, triggerTask = TaskInfo{userId=0 taskId=891 displayId=0 isRunning=true baseIntent=Intent { act=android.intent.action.VIEW dat=content://me.zhanghai.android.files.file_provider/... typ=image/jxl flg=0x13000003 cmp=com.dot.gallery/.feature_node.presentation.standalone.StandaloneActivity } baseActivity=ComponentInfo{com.dot.gallery/com.dot.gallery.feature_node.presentation.standalone.StandaloneActivity} topActivity=ComponentInfo{com.dot.gallery/com.dot.gallery.feature_node.presentation.standalone.StandaloneActivity} origActivity=null realActivity=ComponentInfo{com.dot.gallery/com.dot.gallery.feature_node.presentation.standalone.StandaloneActivity} numActivities=1 lastActiveTime=802024560 supportsMultiWindow=true resizeMode=1 isResizeable=true minWidth=-1 minHeight=-1 defaultMinSize=220 token=WCT{RemoteToken{2e36c48 Task{25dbddf #891 type=standard A=10454:com.dot.gallery}}} topActivityType=1 pictureInPictureParams=null shouldDockBigOverlays=false launchIntoPipHostTaskId=-1 lastParentTaskIdBeforePip=-1 displayCutoutSafeInsets=Rect(0, 94 - 0, 0) topActivityInfo=ActivityInfo{d833ae1 com.dot.gallery.feature_node.presentation.standalone.StandaloneActivity} launchCookies=[] positionInParent=Point(0, 0) parentTaskId=-1 isFocused=false isVisible=false isVisibleRequested=false isSleeping=false topActivityInSizeCompat=false topActivityEligibleForLetterboxEducation= false isLetterboxDoubleTapEnabled= false topActivityEligibleForUserAspectRatioButton= false topActivityBoundsLetterboxed= false isFromLetterboxDoubleTap= false topActivityLetterboxVerticalPosition= -1 topActivityLetterboxHorizontalPosition= -1 topActivityLetterboxWidth=-1 topActivityLetterboxHeight=-1 isUserFullscreenOverrideEnabled=false isTopActivityTransparent=false locusId=null displayAreaFeatureId=1 cameraCompatControlState=hidden}, remoteTransition = null, displayChange = null, flags = 0 }
09-02 13:19:09.989  1357  1377 V WindowManager:     info={id=6084 t=OPEN f=0x0 trk=0 r=[0@Point(0, 0)] c=[{WCT{RemoteToken{2e36c48 Task{25dbddf #891 type=standard A=10454:com.dot.gallery}}} m=OPEN f=NONE leash=Surface(name=Task=891)/@0xb5e4a3a sb=Rect(0, 0 - 1440, 3120) eb=Rect(0, 0 - 1440, 3120) d=0},{WCT{RemoteToken{6f51e4e Task{a15a495 #877 type=standard A=10422:me.zhanghai.android.files}}} m=TO_BACK f=NONE leash=Surface(name=Task=877)/@0xd83af50 sb=Rect(0, 0 - 1440, 3120) eb=Rect(0, 0 - 1440, 3120) d=0}]}
09-02 13:19:10.024  1357  8733 D CoreBackPreview: Window{b4f97bf u0 com.dot.gallery/com.dot.gallery.feature_node.presentation.standalone.StandaloneActivity}: Setting back callback OnBackInvokedCallbackInfo{mCallback=android.window.IOnBackInvokedCallback$Stub$Proxy@1fdb5ea, mPriority=-1, mIsAnimationCallback=false}
09-02 13:19:10.048  1357  8733 D CoreBackPreview: Window{b4f97bf u0 com.dot.gallery/com.dot.gallery.feature_node.presentation.standalone.StandaloneActivity}: Setting back callback OnBackInvokedCallbackInfo{mCallback=android.window.IOnBackInvokedCallback$Stub$Proxy@43f9e51, mPriority=0, mIsAnimationCallback=true}
09-02 13:19:10.063 24678 24678 E AndroidRuntime: Process: com.dot.gallery, PID: 24678
09-02 13:19:10.064  1357  8732 W ActivityTaskManager:   Force finishing activity com.dot.gallery/.feature_node.presentation.standalone.StandaloneActivity
09-02 13:19:10.068  1357  1378 I ActivityManager: Showing crash dialog for package com.dot.gallery u0
09-02 13:19:10.091  1357  1378 D CoreBackPreview: Window{dbb7384 u0 Application Error: com.dot.gallery}: Setting back callback OnBackInvokedCallbackInfo{mCallback=android.window.WindowOnBackInvokedDispatcher$OnBackInvokedCallbackWrapper@d05c0fa, mPriority=0, mIsAnimationCallback=false}
09-02 13:19:10.566  1357  1380 W ActivityTaskManager: Activity top resumed state loss timeout for ActivityRecord{e6447e u0 com.dot.gallery/.feature_node.presentation.standalone.StandaloneActivity t891 f}}
09-02 13:19:10.566  1357  1380 W ActivityTaskManager: Activity pause timeout for ActivityRecord{e6447e u0 com.dot.gallery/.feature_node.presentation.standalone.StandaloneActivity t891 f}}
09-02 13:19:10.607  1357  1377 V WindowManager:     info={id=6085 t=CLOSE f=0x10 trk=1 r=[0@Point(0, 0)] c=[{WCT{RemoteToken{6f51e4e Task{a15a495 #877 type=standard A=10422:me.zhanghai.android.files}}} m=TO_FRONT f=MOVE_TO_TOP leash=Surface(name=Task=877)/@0xd83af50 sb=Rect(0, 0 - 1440, 3120) eb=Rect(0, 0 - 1440, 3120) d=0},{WCT{RemoteToken{2e36c48 Task{25dbddf #891 type=standard A=10454:com.dot.gallery}}} m=CLOSE f=NONE leash=Surface(name=Task=891)/@0xb5e4a3a sb=Rect(0, 0 - 1440, 3120) eb=Rect(0, 0 - 1440, 3120) d=0}]}
09-02 13:19:21.145  1357  1380 W ActivityTaskManager: Activity destroy timeout for ActivityRecord{e6447e u0 com.dot.gallery/.feature_node.presentation.standalone.StandaloneActivity t891 f}}
09-02 13:19:21.157  1357  1380 W InputManager-JNI: Input channel object '3779371 Splash Screen com.dot.gallery (client)' was disposed without first being removed with the input manager!
09-02 13:19:21.163  1357  1380 W InputManager-JNI: Input channel object 'b4f97bf com.dot.gallery/com.dot.gallery.feature_node.presentation.standalone.StandaloneActivity (client)' was disposed without first being removed with the input manager!
09-02 13:19:24.578  1357  1378 D CoreBackPreview: Window{dbb7384 u0 Application Error: com.dot.gallery}: Setting back callback null
09-02 13:19:24.578  1357  8732 I ActivityManager: Killing 24678:com.dot.gallery/u0a454 (adj 900): crash
09-02 13:19:24.579  1357  1378 W InputManager-JNI: Input channel object 'dbb7384 Application Error: com.dot.gallery (client)' was disposed without first being removed with the input manager!
09-02 13:19:24.620  1357  2060 V ActivityManager: Got obituary of 24678:com.dot.gallery
Idesmi commented 3 weeks ago

Android 13 (LineageOS 20-20240208-NIGHTLY-sunfish), .jxl files open blank.

drwankingstein commented 3 weeks ago

I can also confirm a crash on lineage OS 21 (A14)