You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Exception java.lang.RuntimeException: Canvas: trying to draw too large(201326592bytes) bitmap.
at android.graphics.RecordingCanvas.throwIfCannotDraw (RecordingCanvas.java:274)
at android.graphics.BaseRecordingCanvas.drawBitmap (BaseRecordingCanvas.java:153)
at androidx.compose.ui.graphics.AndroidCanvas.drawImageRect-HPBpro0 (AndroidCanvas.android.kt:275)
at androidx.compose.ui.graphics.drawscope.CanvasDrawScope.drawImage-AZ2fEMs (CanvasDrawScope.kt:256)
at androidx.compose.ui.node.LayoutNodeDrawScope.drawImage-AZ2fEMs (Unknown Source:24)
at androidx.compose.ui.graphics.drawscope.DrawScope.drawImage-AZ2fEMs$default (DrawScope.kt:551)
at androidx.compose.ui.graphics.painter.BitmapPainter.onDraw (BitmapPainter.kt:93)
at androidx.compose.ui.graphics.painter.Painter.draw-x_KDEd0 (Painter.kt:212)
at coil.compose.AsyncImagePainter.onDraw (AsyncImagePainter.kt:272)
at androidx.compose.ui.graphics.painter.Painter.draw-x_KDEd0 (Painter.kt:212)
at androidx.compose.ui.draw.PainterNode.draw (PainterModifier.kt:342)
at androidx.compose.ui.node.LayoutNodeDrawScope.drawDirect-x_KDEd0$ui_release (LayoutNodeDrawScope.kt:105)
at androidx.compose.ui.node.LayoutNodeDrawScope.draw-x_KDEd0$ui_release (LayoutNodeDrawScope.kt:86)
at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers (NodeCoordinator.kt:364)
at androidx.compose.ui.node.NodeCoordinator.draw (NodeCoordinator.kt:353)
at androidx.compose.ui.node.LayoutModifierNodeCoordinator.performDraw (LayoutModifierNodeCoordinator.kt:176)
at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers (NodeCoordinator.kt:361)
at androidx.compose.ui.node.NodeCoordinator.access$drawContainedDrawModifiers (NodeCoordinator.kt:54)
at androidx.compose.ui.node.NodeCoordinator$drawBlock$1$1.invoke (NodeCoordinator.kt:383)
at androidx.compose.ui.node.NodeCoordinator$drawBlock$1$1.invoke (NodeCoordinator.kt:382)
at androidx.compose.runtime.snapshots.Snapshot$Companion.observe (Snapshot.kt:2303)
at androidx.compose.runtime.snapshots.SnapshotStateObserver$ObservedScopeMap.observe (SnapshotStateObserver.kt:500)
at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads (SnapshotStateObserver.kt:256)
at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release (OwnerSnapshotObserver.kt:133)
at androidx.compose.ui.node.NodeCoordinator$drawBlock$1.invoke (NodeCoordinator.kt:382)
at androidx.compose.ui.node.NodeCoordinator$drawBlock$1.invoke (NodeCoordinator.kt:380)
at androidx.compose.ui.platform.RenderNodeApi29.record (RenderNodeApi29.android.kt:209)
at androidx.compose.ui.platform.RenderNodeLayer.updateDisplayList (RenderNodeLayer.android.kt:335)
at androidx.compose.ui.platform.AndroidComposeView.dispatchDraw (AndroidComposeView.android.kt:1236)
at android.view.View.draw (View.java:24221)
at android.view.View.updateDisplayListIfDirty (View.java:23036)
at android.view.ViewGroup.recreateChildDisplayList (ViewGroup.java:4628)
at android.view.ViewGroup.dispatchGetDisplayList (ViewGroup.java:4601)
at android.view.View.updateDisplayListIfDirty (View.java:22987)
at android.view.ViewGroup.recreateChildDisplayList (ViewGroup.java:4628)
at android.view.ViewGroup.dispatchGetDisplayList (ViewGroup.java:4601)
at android.view.View.updateDisplayListIfDirty (View.java:22987)
at android.view.ViewGroup.recreateChildDisplayList (ViewGroup.java:4628)
at android.view.ViewGroup.dispatchGetDisplayList (ViewGroup.java:4601)
at android.view.View.updateDisplayListIfDirty (View.java:22987)
at android.view.ViewGroup.recreateChildDisplayList (ViewGroup.java:4628)
at android.view.ViewGroup.dispatchGetDisplayList (ViewGroup.java:4601)
at android.view.View.updateDisplayListIfDirty (View.java:22987)
at android.view.ViewGroup.recreateChildDisplayList (ViewGroup.java:4628)
at android.view.ViewGroup.dispatchGetDisplayList (ViewGroup.java:4601)
at android.view.View.updateDisplayListIfDirty (View.java:22987)
at android.view.ViewGroup.recreateChildDisplayList (ViewGroup.java:4628)
at android.view.ViewGroup.dispatchGetDisplayList (ViewGroup.java:4601)
at android.view.View.updateDisplayListIfDirty (View.java:22987)
at android.view.ViewGroup.recreateChildDisplayList (ViewGroup.java:4628)
at android.view.ViewGroup.dispatchGetDisplayList (ViewGroup.java:4601)
at android.view.View.updateDisplayListIfDirty (View.java:22987)
at android.view.ViewGroup.recreateChildDisplayList (ViewGroup.java:4628)
at android.view.ViewGroup.dispatchGetDisplayList (ViewGroup.java:4601)
at android.view.View.updateDisplayListIfDirty (View.java:22987)
at android.view.ViewGroup.recreateChildDisplayList (ViewGroup.java:4628)
at android.view.ViewGroup.dispatchGetDisplayList (ViewGroup.java:4601)
at android.view.View.updateDisplayListIfDirty (View.java:22987)
at android.view.ViewGroup.recreateChildDisplayList (ViewGroup.java:4628)
at android.view.ViewGroup.dispatchGetDisplayList (ViewGroup.java:4601)
at android.view.View.updateDisplayListIfDirty (View.java:22987)
at android.view.ViewGroup.recreateChildDisplayList (ViewGroup.java:4628)
at android.view.ViewGroup.dispatchGetDisplayList (ViewGroup.java:4601)
at android.view.View.updateDisplayListIfDirty (View.java:22987)
at android.view.ViewGroup.recreateChildDisplayList (ViewGroup.java:4628)
at android.view.ViewGroup.dispatchGetDisplayList (ViewGroup.java:4601)
at android.view.View.updateDisplayListIfDirty (View.java:22987)
at android.view.ThreadedRenderer.updateViewTreeDisplayList (ThreadedRenderer.java:713)
at android.view.ThreadedRenderer.updateRootDisplayList (ThreadedRenderer.java:719)
at android.view.ThreadedRenderer.draw (ThreadedRenderer.java:821)
at android.view.ViewRootImpl.draw (ViewRootImpl.java:5571)
at android.view.ViewRootImpl.performDraw (ViewRootImpl.java:5233)
at android.view.ViewRootImpl.performTraversals (ViewRootImpl.java:4268)
at android.view.ViewRootImpl.doTraversal (ViewRootImpl.java:2765)
at android.view.ViewRootImpl$TraversalRunnable.run (ViewRootImpl.java:10219)
at android.view.Choreographer$CallbackRecord.run (Choreographer.java:1544)
at android.view.Choreographer$CallbackRecord.run (Choreographer.java:1553)
at android.view.Choreographer.doCallbacks (Choreographer.java:1109)
at android.view.Choreographer.doFrame (Choreographer.java:994)
at android.view.Choreographer$FrameDisplayEventReceiver.run (Choreographer.java:1527)
at android.os.Handler.handleCallback (Handler.java:958)
at android.os.Handler.dispatchMessage (Handler.java:99)
at android.os.Looper.loopOnce (Looper.java:257)
at android.os.Looper.loop (Looper.java:368)
at android.app.ActivityThread.main (ActivityThread.java:8839)
at java.lang.reflect.Method.invoke
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:572)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1049)
The text was updated successfully, but these errors were encountered:
**Description:**
Fixes a crash when displaying very big images.
Closes#403
Explanation:
Normal downsampling is currently not possible. Because of the nature of
AES/GCM (seems like changing the IV to 12 bytes fixes this, but this is
a much bigger topic)
Applied solution: Read all bytes into memory and provide as a buffered
source from memory. This allows downsampling done by coil, since its
already decrypted in memory.
The app crashes a lot lately due to large images.
This is related to the encryption algorithm not supporting skips in the stream. Meaning all photos are rendered at full size.
We need to find a solution for this. Possible:
Stacktrace:
The text was updated successfully, but these errors were encountered: