[BUG] Zoom-out gesture causes crash
bugresolved
The app crashes when you open it and use a zoom-out gesture to increase the view from the default number of photos per horizontal row to +1 (for example, from 4 photos per row to 5 photos per row).
To Reproduce
Steps to reproduce the behavior:
1. Simply open the app and immediately perform a zoom-out gesture.
2. Crash
Expected behavior
I expected that after using the zoom-out gesture, the app would not crash and would correctly perform the zoom-out action.
Smartphone:
· Device: Google Pixel 8 Pro
· OS: GrapheneOS (Android 17)
· Version: ReFra 5.0.3 (standard)
Additional context
Logs:
```
type: crash
osVersion: google/husky/husky:17/CP2A.260605.012/2026070501:user/release-keys
flags: dev options enabled
package: com.dot.gallery:503034, targetSdk 37
process: com.dot.gallery
processUptime: 1528 + 529 ms
installer: com.android.packageinstaller
java.lang.ArrayIndexOutOfBoundsException: length=4; index=4
at wp1.b(r8-map-id-2958404eefa5d4d304e46ccd2426d29eff1a393052e4d31ae473c549e1b8f903:12)
at rb1.invoke(r8-map-id-2958404eefa5d4d304e46ccd2426d29eff1a393052e4d31ae473c549e1b8f903:453)
at b03.q(r8-map-id-2958404eefa5d4d304e46ccd2426d29eff1a393052e4d31ae473c549e1b8f903:73)
at iq3.B(r8-map-id-2958404eefa5d4d304e46ccd2426d29eff1a393052e4d31ae473c549e1b8f903:13)
at hl0.d(r8-map-id-2958404eefa5d4d304e46ccd2426d29eff1a393052e4d31ae473c549e1b8f903:63)
at hl0.g(r8-map-id-2958404eefa5d4d304e46ccd2426d29eff1a393052e4d31ae473c549e1b8f903:104)
at hl0.i(r8-map-id-2958404eefa5d4d304e46ccd2426d29eff1a393052e4d31ae473c549e1b8f903:302)
at wy3.c(r8-map-id-2958404eefa5d4d304e46ccd2426d29eff1a393052e4d31ae473c549e1b8f903:7)
at vz3.f(r8-map-id-2958404eefa5d4d304e46ccd2426d29eff1a393052e4d31ae473c549e1b8f903:272)
at hz3.a(r8-map-id-2958404eefa5d4d304e46ccd2426d29eff1a393052e4d31ae473c549e1b8f903:2155)
at ru1.invoke(r8-map-id-2958404eefa5d4d304e46ccd2426d29eff1a393052e4d31ae473c549e1b8f903:445)
at ly3.b(r8-map-id-2958404eefa5d4d304e46ccd2426d29eff1a393052e4d31ae473c549e1b8f903:71)
at lm3.B(r8-map-id-2958404eefa5d4d304e46ccd2426d29eff1a393052e4d31ae473c549e1b8f903:45)
at s67.c(r8-map-id-2958404eefa5d4d304e46ccd2426d29eff1a393052e4d31ae473c549e1b8f903:1)
at sx3.B(r8-map-id-2958404eefa5d4d304e46ccd2426d29eff1a393052e4d31ae473c549e1b8f903:27)
at om2.c(r8-map-id-2958404eefa5d4d304e46ccd2426d29eff1a393052e4d31ae473c549e1b8f903:106)
at sx3.B(r8-map-id-2958404eefa5d4d304e46ccd2426d29eff1a393052e4d31ae473c549e1b8f903:27)
at ic4.invoke(r8-map-id-2958404eefa5d4d304e46ccd2426d29eff1a393052e4d31ae473c549e1b8f903:26)
at fc7.d(r8-map-id-2958404eefa5d4d304e46ccd2426d29eff1a393052e4d31ae473c549e1b8f903:239)
at fy3.c(r8-map-id-2958404eefa5d4d304e46ccd2426d29eff1a393052e4d31ae473c549e1b8f903:34)
at jc4.I0(r8-map-id-2958404eefa5d4d304e46ccd2426d29eff1a393052e4d31ae473c549e1b8f903:149)
at yg4.d(r8-map-id-2958404eefa5d4d304e46ccd2426d29eff1a393052e4d31ae473c549e1b8f903:44)
at yg4.p(r8-map-id-2958404eefa5d4d304e46ccd2426d29eff1a393052e4d31ae473c549e1b8f903:32)
at yg4.i(r8-map-id-2958404eefa5d4d304e46ccd2426d29eff1a393052e4d31ae473c549e1b8f903:104)
at yg4.i(r8-map-id-2958404eefa5d4d304e46ccd2426d29eff1a393052e4d31ae473c549e1b8f903:118)
at yg4.i(r8-map-id-2958404eefa5d4d304e46ccd2426d29eff1a393052e4d31ae473c549e1b8f903:118)
at yg4.i(r8-map-id-2958404eefa5d4d304e46ccd2426d29eff1a393052e4d31ae473c549e1b8f903:118)
at yg4.h(r8-map-id-2958404eefa5d4d304e46ccd2426d29eff1a393052e4d31ae473c549e1b8f903:28)
at qi.g(r8-map-id-2958404eefa5d4d304e46ccd2426d29eff1a393052e4d31ae473c549e1b8f903:3)
at jc4.I0(r8-map-id-2958404eefa5d4d304e46ccd2426d29eff1a393052e4d31ae473c549e1b8f903:69)
at jc4.B(r8-map-id-2958404eefa5d4d304e46ccd2426d29eff1a393052e4d31ae473c549e1b8f903:110)
at bf0.b(r8-map-id-2958404eefa5d4d304e46ccd2426d29eff1a393052e4d31ae473c549e1b8f903:227)
at lm3.B(r8-map-id-2958404eefa5d4d304e46ccd2426d29eff1a393052e4d31ae473c549e1b8f903:45)
at ic4.invoke(r8-map-id-2958404eefa5d4d304e46ccd2426d29eff1a393052e4d31ae473c549e1b8f903:26)
at fc7.d(r8-map-id-2958404eefa5d4d304e46ccd2426d29eff1a393052e4d31ae473c549e1b8f903:308)
at fy3.c(r8-map-id-2958404eefa5d4d304e46ccd2426d29eff1a393052e4d31ae473c549e1b8f903:34)
at jc4.I0(r8-map-id-2958404eefa5d4d304e46ccd2426d29eff1a393052e4d31ae473c549e1b8f903:149)
at yg4.d(r8-map-id-2958404eefa5d4d304e46ccd2426d29eff1a393052e4d31ae473c549e1b8f903:44)
at yg4.p(r8-map-id-2958404eefa5d4d304e46ccd2426d29eff1a393052e4d31ae473c549e1b8f903:32)
at yg4.m(r8-map-id-2958404eefa5d4d304e46ccd2426d29eff1a393052e4d31ae473c549e1b8f903:165)
at qi.r(r8-map-id-2958404eefa5d4d304e46ccd2426d29eff1a393052e4d31ae473c549e1b8f903:35)
at qi.dispatchDraw(r8-map-id-2958404eefa5d4d304e46ccd2426d29eff1a393052e4d31ae473c549e1b8f903:17)
at android.view.View.draw(View.java:25524)
at android.view.View.updateDisplayListIfDirty(View.java:24368)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4689)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4662)
at android.view.View.updateDisplayListIfDirty(View.java:24322)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4689)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4662)
at android.view.View.updateDisplayListIfDirty(View.java:24322)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4689)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4662)
at android.view.View.updateDisplayListIfDirty(View.java:24322)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4689)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4662)
at android.view.View.updateDisplayListIfDirty(View.java:24322)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4689)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4662)
at android.view.View.updateDisplayListIfDirty(View.java:24322)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4689)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4662)
at android.view.View.updateDisplayListIfDirty(View.java:24322)
at android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:726)
at android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:732)
at android.view.ThreadedRenderer.draw(ThreadedRenderer.java:830)
at android.view.ViewRootImpl.draw(ViewRootImpl.java:6320)
at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:5970)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:4903)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:3351)
at android.view.ViewRootImpl$TraversalCallback.onVsync(ViewRootImpl.java:11448)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1664)
at android.view.Choreographer.doCallbacks(Choreographer.java:1252)
at android.view.Choreographer.doFrame(Choreographer.java:1209)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1640)
at android.os.Handler.handleCallback(Handler.java:1095)
at android.os.Handler.dispatchMessageImpl(Handler.java:135)
at android.os.Handler.dispatchMessage(Handler.java:125)
at android.os.Looper.loopOnce(Looper.java:296)
at android.os.Looper.loop(Looper.java:397)
at android.app.ActivityThread.main(ActivityThread.java:9568)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:575)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:847)
```
0 条评论