DroidKaigi / conference-app-2024

The Official Conference App for DroidKaigi 2024
Apache License 2.0
436 stars 199 forks source link

TimetableScreen may crash when enlarging the font size on the device #856

Closed kosenda closed 4 weeks ago

kosenda commented 1 month ago

Overview

Increasing the font size on a terminal could cause a crash due to negative modifier padding values.

Causes of crashes

If the fontScale is increased, a negative padding is set in the following places https://github.com/DroidKaigi/conference-app-2024/blob/7799642fa0612ba250798675ccb51357768c8a44/feature/sessions/src/commonMain/kotlin/io/github/droidkaigi/confsched/sessions/component/TimetableGridTab.kt#L55

The following areas need to be fixed, Personally, I thought it could be solved by using coerceAtLeast to avoid negative padding

https://github.com/DroidKaigi/conference-app-2024/blob/7799642fa0612ba250798675ccb51357768c8a44/feature/sessions/src/commonMain/kotlin/io/github/droidkaigi/confsched/sessions/component/TimetableGridTab.kt#L39-L53

Related PR

Movie

Pixel6 Android15beta

https://github.com/user-attachments/assets/2dfab972-67c2-4cce-ae68-55a416996a8a

Crash Log

First three lines

Process: io.github.droidkaigi.confsched2024.dev, PID: 24411
java.lang.IllegalArgumentException: Padding must be non-negative
    at androidx.compose.foundation.layout.PaddingElement.<init>(Padding.kt:353)
All Log
Process: io.github.droidkaigi.confsched2024.dev, PID: 24411 java.lang.IllegalArgumentException: Padding must be non-negative at androidx.compose.foundation.layout.PaddingElement.(Padding.kt:353) at androidx.compose.foundation.layout.PaddingElement.(Unknown Source:0) at androidx.compose.foundation.layout.PaddingKt.padding-VpY3zN4(Padding.kt:86) at io.github.droidkaigi.confsched.sessions.component.TimetableGridTabKt.TimetableDayTab(Ti at io.github.droidkaigi.confsched.sessions.section.TimetableSheetKt$Timetable$1.invoke(Tim at io.github.droidkaigi.confsched.sessions.section.TimetableSheetKt$Timetable$1.invoke(Tim at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:1 at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:3 at androidx.compose.material3.SurfaceKt$Surface$1.invoke(Surface.kt:134) at androidx.compose.material3.SurfaceKt$Surface$1.invoke(Surface.kt:115) at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:1 at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:3 at androidx.compose.runtime.CompositionLocalKt.CompositionLocalProvider(CompositionLocal.k at androidx.compose.material3.SurfaceKt.Surface-T9BRK9s(Surface.kt:112) at io.github.droidkaigi.confsched.sessions.section.TimetableSheetKt.Timetable(TimetableShe at io.github.droidkaigi.confsched.sessions.TimetableScreenKt$TimetableScreen$6.invoke(Time at io.github.droidkaigi.confsched.sessions.TimetableScreenKt$TimetableScreen$6.invoke(Time at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:1 at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:3 at androidx.compose.material3.ScaffoldKt$ScaffoldLayoutWithMeasureFix$1$1$bodyContentPlace at androidx.compose.material3.ScaffoldKt$ScaffoldLayoutWithMeasureFix$1$1$bodyContentPlace at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:1 at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:3 at androidx.compose.ui.layout.LayoutNodeSubcompositionsState$subcompose$3$1$1.invoke(Subco at androidx.compose.ui.layout.LayoutNodeSubcompositionsState$subcompose$3$1$1.invoke(Subco at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:1 at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:3 at androidx.compose.runtime.ActualJvm_jvmKt.invokeComposable(ActualJvm.jvm.kt:97) at androidx.compose.runtime.ComposerImpl.doCompose(Composer.kt:3593) at androidx.compose.runtime.ComposerImpl.composeContent$runtime_release(Composer.kt:3520) at androidx.compose.runtime.CompositionImpl.composeContent(Composition.kt:743) at androidx.compose.runtime.Recomposer.composeInitial$runtime_release(Recomposer.kt:1114) at androidx.compose.runtime.ComposerImpl$CompositionContextImpl.composeInitial$runtime_rel at androidx.compose.runtime.ComposerImpl$CompositionContextImpl.composeInitial$runtime_rel at androidx.compose.runtime.CompositionImpl.composeInitial(Composition.kt:649) at androidx.compose.runtime.CompositionImpl.setContent(Composition.kt:635) at androidx.compose.ui.layout.LayoutNodeSubcompositionsState.subcomposeInto(SubcomposeLayo at androidx.compose.ui.layout.LayoutNodeSubcompositionsState.subcompose(SubcomposeLayout.k at androidx.compose.ui.layout.LayoutNodeSubcompositionsState.subcompose(SubcomposeLayout.k at androidx.compose.ui.layout.LayoutNodeSubcompositionsState.subcompose(SubcomposeLayout.k at androidx.compose.ui.layout.LayoutNodeSubcompositionsState$Scope.subcompose(SubcomposeLa at androidx.compose.material3.ScaffoldKt$ScaffoldLayoutWithMeasureFix$1$1.invoke-0kLqBqw(S at androidx.compose.material3.ScaffoldKt$ScaffoldLayoutWithMeasureFix$1$1.invoke(Scaffold. at androidx.compose.ui.layout.LayoutNodeSubcompositionsState$createMeasurePolicy$1.measure at androidx.compose.ui.node.InnerNodeCoordinator$LookaheadDelegateImpl.measure-BRTryo0(Inn at androidx.compose.ui.node.LayoutNodeLayoutDelegate$performLookaheadMeasure$1.invoke(Layo at androidx.compose.ui.node.LayoutNodeLayoutDelegate$performLookaheadMeasure$1.invoke(Layo at androidx.compose.runtime.snapshots.Snapshot$Companion.observe(Snapshot.kt:503) at androidx.compose.runtime.snapshots.SnapshotStateObserver$ObservedScopeMap.observe(Snaps at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStateObse at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapshotObs at androidx.compose.ui.node.OwnerSnapshotObserver.observeMeasureSnapshotReads$ui_release(O at androidx.compose.ui.node.OwnerSnapshotObserver.observeMeasureSnapshotReads$ui_release$d at androidx.compose.ui.node.LayoutNodeLayoutDelegate.performLookaheadMeasure-BRTryo0(Layou at androidx.compose.ui.node.LayoutNodeLayoutDelegate.access$performLookaheadMeasure-BRTryo at androidx.compose.ui.node.LayoutNodeLayoutDelegate$LookaheadPassDelegate.remeasure-BRTry at androidx.compose.ui.node.LayoutNodeLayoutDelegate$LookaheadPassDelegate.measure-BRTryo0 at androidx.compose.foundation.layout.BoxMeasurePolicy.measure-3p2s80s(Box.kt:151) at androidx.compose.ui.node.InnerNodeCoordinator$LookaheadDelegateImpl.measure-BRTryo0(Inn at androidx.compose.ui.graphics.SimpleGraphicsLayerModifier.measure-3p2s80s(GraphicsLayerM at androidx.compose.ui.node.LayoutModifierNodeCoordinator$LookaheadDelegateForLayoutModifi at androidx.compose.ui.graphics.SimpleGraphicsLayerModifier.measure-3p2s80s(GraphicsLayerM at androidx.compose.ui.node.LayoutModifierNodeCoordinator$LookaheadDelegateForLayoutModifi at androidx.compose.ui.node.LayoutNodeLayoutDelegate$performLookaheadMeasure$1.invoke(Layo at androidx.compose.ui.node.LayoutNodeLayoutDelegate$performLookaheadMeasure$1.invoke(Layo at androidx.compose.runtime.snapshots.Snapshot$Companion.observe(Snapshot.kt:503) at androidx.compose.runtime.snapshots.SnapshotStateObserver$ObservedScopeMap.observe(Snaps at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStateObse at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapshotObs at androidx.compose.ui.node.OwnerSnapshotObserver.observeMeasureSnapshotReads$ui_release(O at androidx.compose.ui.node.OwnerSnapshotObserver.observeMeasureSnapshotReads$ui_release$d at androidx.compose.ui.node.LayoutNodeLayoutDelegate.performLookaheadMeasure-BRTryo0(Layou at androidx.compose.ui.node.LayoutNodeLayoutDelegate.access$performLookaheadMeasure-BRTryo at androidx.compose.ui.node.LayoutNodeLayoutDelegate$LookaheadPassDelegate.remeasure-BRTry at androidx.compose.ui.node.LayoutNodeLayoutDelegate$LookaheadPassDelegate.measure-BRTryo0 at androidx.compose.animation.AnimatedEnterExitMeasurePolicy.measure-3p2s80s(AnimatedVisib at androidx.compose.ui.node.InnerNodeCoordinator$LookaheadDelegateImpl.measure-BRTryo0(Inn at androidx.compose.animation.EnterExitTransitionModifierNode.measure-3p2s80s(EnterExitTra at androidx.compose.ui.node.LayoutModifierNodeCoordinator$LookaheadDelegateForLayoutModifi at androidx.compose.ui.graphics.BlockGraphicsLayerModifier.measure-3p2s80s(GraphicsLayerMo at androidx.compose.ui.node.LayoutModifierNodeCoordinator$LookaheadDelegateForLayoutModifi at androidx.compose.animation.AnimatedContentKt$AnimatedContent$6$1$1$1.invoke-3p2s80s(Ani at androidx.compose.animation.AnimatedContentKt$AnimatedContent$6$1$1$1.invoke(AnimatedCon at androidx.compose.ui.layout.LayoutModifierImpl.measure-3p2s80s(LayoutModifier.kt:294) at androidx.compose.ui.node.LayoutModifierNodeCoordinator$LookaheadDelegateForLayoutModifi at androidx.compose.ui.node.LayoutNodeLayoutDelegate$performLookaheadMeasure$1.invoke(Layo at androidx.compose.ui.node.LayoutNodeLayoutDelegate$performLookaheadMeasure$1.invoke(Layo at androidx.compose.runtime.snapshots.Snapshot$Companion.observe(Snapshot.kt:503) at androidx.compose.runtime.snapshots.SnapshotStateObserver$ObservedScopeMap.observe(Snaps at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStateObse at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapshotObs at androidx.compose.ui.node.OwnerSnapshotObserver.observeMeasureSnapshotReads$ui_release(O at androidx.compose.ui.node.OwnerSnapshotObserver.observeMeasureSnapshotReads$ui_release$d at androidx.compose.ui.node.LayoutNodeLayoutDelegate.performLookaheadMeasure-BRTryo0(Layou at androidx.compose.ui.node.LayoutNodeLayoutDelegate.access$performLookaheadMeasure-BRTryo at androidx.compose.ui.node.LayoutNodeLayoutDelegate$LookaheadPassDelegate.remeasure-BRTry at androidx.compose.ui.node.LayoutNodeLayoutDelegate$LookaheadPassDelegate.measure-BRTryo0 at androidx.compose.animation.AnimatedContentMeasurePolicy.measure-3p2s80s(AnimatedContent at androidx.compose.ui.node.InnerNodeCoordinator$LookaheadDelegateImpl.measure-BRTryo0(Inn at androidx.compose.ui.node.LayoutNodeLayoutDelegate$performLookaheadMeasure$1.invoke(Layo at androidx.compose.ui.node.LayoutNodeLayoutDelegate$performLookaheadMeasure$1.invoke(Layo at androidx.compose.runtime.snapshots.Snapshot$Companion.observe(Snapshot.kt:503) at androidx.compose.runtime.snapshots.SnapshotStateObserver$ObservedScopeMap.observe(Snaps at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStateObse at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapshotObs at androidx.compose.ui.node.OwnerSnapshotObserver.observeMeasureSnapshotReads$ui_release(O at androidx.compose.ui.node.OwnerSnapshotObserver.observeMeasureSnapshotReads$ui_release$d at androidx.compose.ui.node.LayoutNodeLayoutDelegate.performLookaheadMeasure-BRTryo0(Layou at androidx.compose.ui.node.LayoutNodeLayoutDelegate.access$performLookaheadMeasure-BRTryo at androidx.compose.ui.node.LayoutNodeLayoutDelegate$LookaheadPassDelegate.remeasure-BRTry at androidx.compose.ui.node.LayoutNodeLayoutDelegate$LookaheadPassDelegate.measure-BRTryo0 at androidx.compose.material3.ScaffoldKt$ScaffoldLayoutWithMeasureFix$1$1.invoke-0kLqBqw(S at androidx.compose.material3.ScaffoldKt$ScaffoldLayoutWithMeasureFix$1$1.invoke(Scaffold. at androidx.compose.ui.layout.LayoutNodeSubcompositionsState$createMeasurePolicy$1.measure at androidx.compose.ui.node.InnerNodeCoordinator$LookaheadDelegateImpl.measure-BRTryo0(Inn at androidx.compose.ui.node.LayoutNodeLayoutDelegate$performLookaheadMeasure$1.invoke(Layo at androidx.compose.ui.node.LayoutNodeLayoutDelegate$performLookaheadMeasure$1.invoke(Layo at androidx.compose.runtime.snapshots.Snapshot$Companion.observe(Snapshot.kt:503) at androidx.compose.runtime.snapshots.SnapshotStateObserver$ObservedScopeMap.observe(Snaps at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStateObse at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapshotObs at androidx.compose.ui.node.OwnerSnapshotObserver.observeMeasureSnapshotReads$ui_release(O at androidx.compose.ui.node.OwnerSnapshotObserver.observeMeasureSnapshotReads$ui_release$d at androidx.compose.ui.node.LayoutNodeLayoutDelegate.performLookaheadMeasure-BRTryo0(Layou at androidx.compose.ui.node.LayoutNodeLayoutDelegate.access$performLookaheadMeasure-BRTryo at androidx.compose.ui.node.LayoutNodeLayoutDelegate$LookaheadPassDelegate.remeasure-BRTry at androidx.compose.ui.node.LayoutNodeLayoutDelegate$LookaheadPassDelegate.measure-BRTryo0 at androidx.compose.foundation.layout.BoxMeasurePolicy.measure-3p2s80s(Box.kt:151) at androidx.compose.ui.node.InnerNodeCoordinator$LookaheadDelegateImpl.measure-BRTryo0(Inn at androidx.compose.ui.graphics.SimpleGraphicsLayerModifier.measure-3p2s80s(GraphicsLayerM at androidx.compose.ui.node.LayoutModifierNodeCoordinator$LookaheadDelegateForLayoutModifi at androidx.compose.ui.graphics.SimpleGraphicsLayerModifier.measure-3p2s80s(GraphicsLayerM at androidx.compose.ui.node.LayoutModifierNodeCoordinator$LookaheadDelegateForLayoutModifi at androidx.compose.ui.node.LayoutNodeLayoutDelegate$performLookaheadMeasure$1.invoke(Layo at androidx.compose.ui.node.LayoutNodeLayoutDelegate$performLookaheadMeasure$1.invoke(Layo at androidx.compose.runtime.snapshots.Snapshot$Companion.observe(Snapshot.kt:503) at androidx.compose.runtime.snapshots.SnapshotStateObserver$ObservedScopeMap.observe(Snaps at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStateObse at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapshotObs at androidx.compose.ui.node.OwnerSnapshotObserver.observeMeasureSnapshotReads$ui_release(O at androidx.compose.ui.node.OwnerSnapshotObserver.observeMeasureSnapshotReads$ui_release$d at androidx.compose.ui.node.LayoutNodeLayoutDelegate.performLookaheadMeasure-BRTryo0(Layou at androidx.compose.ui.node.LayoutNodeLayoutDelegate.access$performLookaheadMeasure-BRTryo at androidx.compose.ui.node.LayoutNodeLayoutDelegate$LookaheadPassDelegate.remeasure-BRTry at androidx.compose.ui.node.LayoutNodeLayoutDelegate$LookaheadPassDelegate.measure-BRTryo0 at androidx.compose.foundation.layout.RowColumnMeasurePolicyKt.measure(RowColumnMeasurePol at androidx.compose.foundation.layout.RowColumnMeasurePolicyKt.measure$default(RowColumnMe at androidx.compose.foundation.layout.RowMeasurePolicy.measure-3p2s80s(Row.kt:145) at androidx.compose.ui.node.InnerNodeCoordinator$LookaheadDelegateImpl.measure-BRTryo0(Inn at androidx.compose.foundation.layout.FillNode.measure-3p2s80s(Size.kt:699) at androidx.compose.ui.node.LayoutModifierNodeCoordinator$LookaheadDelegateForLayoutModifi at androidx.compose.ui.node.LayoutNodeLayoutDelegate$performLookaheadMeasure$1.invoke(Layo at androidx.compose.ui.node.LayoutNodeLayoutDelegate$performLookaheadMeasure$1.invoke(Layo at androidx.compose.runtime.snapshots.Snapshot$Companion.observe(Snapshot.kt:503) at androidx.compose.runtime.snapshots.SnapshotStateObserver$ObservedScopeMap.observe(Snaps at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStateObse at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapshotObs at androidx.compose.ui.node.OwnerSnapshotObserver.observeMeasureSnapshotReads$ui_release(O at androidx.compose.ui.node.OwnerSnapshotObserver.observeMeasureSnapshotReads$ui_release$d at androidx.compose.ui.node.LayoutNodeLayoutDelegate.performLookaheadMeasure-BRTryo0(Layou at androidx.compose.ui.node.LayoutNodeLayoutDelegate.access$performLookaheadMeasure-BRTryo at androidx.compose.ui.node.LayoutNodeLayoutDelegate$LookaheadPassDelegate.remeasure-BRTry at androidx.compose.ui.node.LayoutNodeLayoutDelegate$LookaheadPassDelegate.measure-BRTryo0 at androidx.compose.foundation.layout.BoxMeasurePolicy.measure-3p2s80s(Box.kt:151) at androidx.compose.ui.node.InnerNodeCoordinator$LookaheadDelegateImpl.measure-BRTryo0(Inn at androidx.compose.foundation.layout.FillNode.measure-3p2s80s(Size.kt:699) at androidx.compose.ui.node.LayoutModifierNodeCoordinator$LookaheadDelegateForLayoutModifi at androidx.compose.ui.node.LayoutNodeLayoutDelegate$performLookaheadMeasure$1.invoke(Layo at androidx.compose.ui.node.LayoutNodeLayoutDelegate$performLookaheadMeasure$1.invoke(Layo at androidx.compose.runtime.snapshots.Snapshot$Companion.observe(Snapshot.kt:503) at androidx.compose.runtime.snapshots.SnapshotStateObserver$ObservedScopeMap.observe(Snaps at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStateObse at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapshotObs at androidx.compose.ui.node.OwnerSnapshotObserver.observeMeasureSnapshotReads$ui_release(O at androidx.compose.ui.node.OwnerSnapshotObserver.observeMeasureSnapshotReads$ui_release$d at androidx.compose.ui.node.LayoutNodeLayoutDelegate.performLookaheadMeasure-BRTryo0(Layou at androidx.compose.ui.node.LayoutNodeLayoutDelegate.access$performLookaheadMeasure-BRTryo at androidx.compose.ui.node.LayoutNodeLayoutDelegate$LookaheadPassDelegate.remeasure-BRTry at androidx.compose.ui.node.LayoutNodeLayoutDelegate$LookaheadPassDelegate.measure-BRTryo0 at androidx.compose.animation.AnimatedEnterExitMeasurePolicy.measure-3p2s80s(AnimatedVisib at androidx.compose.ui.node.InnerNodeCoordinator$LookaheadDelegateImpl.measure-BRTryo0(Inn at androidx.compose.animation.EnterExitTransitionModifierNode.measure-3p2s80s(EnterExitTra at androidx.compose.ui.node.LayoutModifierNodeCoordinator$LookaheadDelegateForLayoutModifi at androidx.compose.ui.graphics.BlockGraphicsLayerModifier.measure-3p2s80s(GraphicsLayerMo at androidx.compose.ui.node.LayoutModifierNodeCoordinator$LookaheadDelegateForLayoutModifi at androidx.compose.animation.AnimatedContentKt$AnimatedContent$6$1$1$1.invoke-3p2s80s(Ani at androidx.compose.animation.AnimatedContentKt$AnimatedContent$6$1$1$1.invoke(AnimatedCon at androidx.compose.ui.layout.LayoutModifierImpl.measure-3p2s80s(LayoutModifier.kt:294) at androidx.compose.ui.node.LayoutModifierNodeCoordinator$LookaheadDelegateForLayoutModifi at androidx.compose.ui.node.LayoutNodeLayoutDelegate$performLookaheadMeasure$1.invoke(Layo at androidx.compose.ui.node.LayoutNodeLayoutDelegate$performLookaheadMeasure$1.invoke(Layo at androidx.compose.runtime.snapshots.Snapshot$Companion.observe(Snapshot.kt:503) at androidx.compose.runtime.snapshots.SnapshotStateObserver$ObservedScopeMap.observe(Snaps at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStateObse at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapshotObs at androidx.compose.ui.node.OwnerSnapshotObserver.observeMeasureSnapshotReads$ui_release(O at androidx.compose.ui.node.OwnerSnapshotObserver.observeMeasureSnapshotReads$ui_release$d at androidx.compose.ui.node.LayoutNodeLayoutDelegate.performLookaheadMeasure-BRTryo0(Layou at androidx.compose.ui.node.LayoutNodeLayoutDelegate.access$performLookaheadMeasure-BRTryo at androidx.compose.ui.node.LayoutNodeLayoutDelegate$LookaheadPassDelegate.remeasure-BRTry at androidx.compose.ui.node.LayoutNodeLayoutDelegate$LookaheadPassDelegate.measure-BRTryo0 at androidx.compose.animation.AnimatedContentMeasurePolicy.measure-3p2s80s(AnimatedContent at androidx.compose.ui.node.InnerNodeCoordinator$LookaheadDelegateImpl.measure-BRTryo0(Inn at androidx.compose.ui.node.LayoutNodeLayoutDelegate$performLookaheadMeasure$1.invoke(Layo at androidx.compose.ui.node.LayoutNodeLayoutDelegate$performLookaheadMeasure$1.invoke(Layo at androidx.compose.runtime.snapshots.Snapshot$Companion.observe(Snapshot.kt:503) at androidx.compose.runtime.snapshots.SnapshotStateObserver$ObservedScopeMap.observe(Snaps at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStateObse at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapshotObs at androidx.compose.ui.node.OwnerSnapshotObserver.observeMeasureSnapshotReads$ui_release(O at androidx.compose.ui.node.OwnerSnapshotObserver.observeMeasureSnapshotReads$ui_release$d at androidx.compose.ui.node.LayoutNodeLayoutDelegate.performLookaheadMeasure-BRTryo0(Layou at androidx.compose.ui.node.LayoutNodeLayoutDelegate.access$performLookaheadMeasure-BRTryo at androidx.compose.ui.node.LayoutNodeLayoutDelegate$LookaheadPassDelegate.remeasure-BRTry at androidx.compose.ui.node.LayoutNodeLayoutDelegate$LookaheadPassDelegate.measure-BRTryo0 at androidx.compose.foundation.layout.BoxMeasurePolicy.measure-3p2s80s(Box.kt:151) at androidx.compose.ui.node.InnerNodeCoordinator$LookaheadDelegateImpl.measure-BRTryo0(Inn at androidx.compose.animation.SharedTransitionScopeKt$SharedTransitionScope$1$1$1.invoke-3 at androidx.compose.animation.SharedTransitionScopeKt$SharedTransitionScope$1$1$1.invoke(S at androidx.compose.ui.layout.LayoutModifierImpl.measure-3p2s80s(LayoutModifier.kt:294) at androidx.compose.ui.node.LayoutModifierNodeCoordinator$LookaheadDelegateForLayoutModifi at androidx.compose.foundation.layout.PaddingNode.measure-3p2s80s(Padding.kt:414) at androidx.compose.ui.node.LayoutModifierNodeCoordinator$LookaheadDelegateForLayoutModifi at androidx.compose.ui.node.LayoutNodeLayoutDelegate$performLookaheadMeasure$1.invoke(Layo at androidx.compose.ui.node.LayoutNodeLayoutDelegate$performLookaheadMeasure$1.invoke(Layo at androidx.compose.runtime.snapshots.Snapshot$Companion.observe(Snapshot.kt:503) at androidx.compose.runtime.snapshots.SnapshotStateObserver$ObservedScopeMap.observe(Snaps at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStateObse at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapshotObs at androidx.compose.ui.node.OwnerSnapshotObserver.observeMeasureSnapshotReads$ui_release(O at androidx.compose.ui.node.OwnerSnapshotObserver.observeMeasureSnapshotReads$ui_release$d at androidx.compose.ui.node.LayoutNodeLayoutDelegate.performLookaheadMeasure-BRTryo0(Layou at androidx.compose.ui.node.LayoutNodeLayoutDelegate.access$performLookaheadMeasure-BRTryo at androidx.compose.ui.node.LayoutNodeLayoutDelegate$LookaheadPassDelegate.remeasure-BRTry at androidx.compose.ui.node.LayoutNodeLayoutDelegate$LookaheadPassDelegate.measure-BRTryo0 at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.measure-BRTryo0(L at androidx.compose.foundation.layout.BoxMeasurePolicy.measure-3p2s80s(Box.kt:151) at androidx.compose.ui.node.InnerNodeCoordinator.measure-BRTryo0(InnerNodeCoordinator.kt:1 at androidx.compose.ui.graphics.SimpleGraphicsLayerModifier.measure-3p2s80s(GraphicsLayerM at androidx.compose.ui.node.LayoutModifierNodeCoordinator.measure-BRTryo0(LayoutModifierNo at androidx.compose.ui.graphics.SimpleGraphicsLayerModifier.measure-3p2s80s(GraphicsLayerM at androidx.compose.ui.node.LayoutModifierNodeCoordinator.measure-BRTryo0(LayoutModifierNo at androidx.compose.foundation.layout.FillNode.measure-3p2s80s(Size.kt:699) at androidx.compose.ui.node.LayoutModifierNodeCoordinator.measure-BRTryo0(LayoutModifierNo at androidx.compose.ui.node.LayoutNodeLayoutDelegate$performMeasureBlock$1.invoke(LayoutNo at androidx.compose.ui.node.LayoutNodeLayoutDelegate$performMeasureBlock$1.invoke(LayoutNo at androidx.compose.runtime.snapshots.Snapshot$Companion.observe(Snapshot.kt:503) at androidx.compose.runtime.snapshots.SnapshotStateObserver$ObservedScopeMap.observe(Snaps at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStateObse at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapshotObs at androidx.compose.ui.node.OwnerSnapshotObserver.observeMeasureSnapshotReads$ui_release(O at androidx.compose.ui.node.LayoutNodeLayoutDelegate.performMeasure-BRTryo0(LayoutNodeLayo at androidx.compose.ui.node.LayoutNodeLayoutDelegate.access$performMeasure-BRTryo0(LayoutN at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.remeasure-BRTryo0 at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.measure-BRTryo0(L at androidx.compose.ui.layout.RootMeasurePolicy.measure-3p2s80s(RootMeasurePolicy.kt:38) at androidx.compose.ui.node.InnerNodeCoordinator.measure-BRTryo0(InnerNodeCoordinator.kt:1 at androidx.compose.ui.node.LayoutNodeLayoutDelegate$performMeasureBlock$1.invoke(LayoutNo at androidx.compose.ui.node.LayoutNodeLayoutDelegate$performMeasureBlock$1.invoke(LayoutNo at androidx.compose.runtime.snapshots.Snapshot$Companion.observe(Snapshot.kt:2441) at androidx.compose.runtime.snapshots.SnapshotStateObserver$ObservedScopeMap.observe(Snaps at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStateObse at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapshotObs at androidx.compose.ui.node.OwnerSnapshotObserver.observeMeasureSnapshotReads$ui_release(O at androidx.compose.ui.node.LayoutNodeLayoutDelegate.performMeasure-BRTryo0(LayoutNodeLayo at androidx.compose.ui.node.LayoutNodeLayoutDelegate.access$performMeasure-BRTryo0(LayoutN at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.remeasure-BRTryo0 at androidx.compose.ui.node.LayoutNode.remeasure-_Sx5XlM$ui_release(LayoutNode.kt:1221) at androidx.compose.ui.node.MeasureAndLayoutDelegate.doRemeasure-sdFAvZA(MeasureAndLayoutD at androidx.compose.ui.node.MeasureAndLayoutDelegate.remeasureOnly(MeasureAndLayoutDelegat at androidx.compose.ui.node.MeasureAndLayoutDelegate.measureOnly(MeasureAndLayoutDelegate. at androidx.compose.ui.platform.AndroidComposeView.onMeasure(AndroidComposeView.android.kt at android.view.View.measure(View.java:28164) at androidx.compose.ui.platform.AbstractComposeView.internalOnMeasure$ui_release(ComposeVi at androidx.compose.ui.platform.AbstractComposeView.onMeasure(ComposeView.android.kt:296) at android.view.View.measure(View.java:28164) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7003) at android.widget.FrameLayout.onMeasure(FrameLayout.java:194) at android.view.View.measure(View.java:28164) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7003) at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1608) at android.widget.LinearLayout.measureVertical(LinearLayout.java:878) at android.widget.LinearLayout.onMeasure(LinearLayout.java:721) at android.view.View.measure(View.java:28164) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7003) at android.widget.FrameLayout.onMeasure(FrameLayout.java:194) at com.android.internal.policy.DecorView.onMeasure(DecorView.java:723) at android.view.View.measure(View.java:28164) at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:4902) at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:3295) at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:3600) at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:2980) at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:10421) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1415) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1424) at android.view.Choreographer.doCallbacks(Choreographer.java:1024) at android.view.Choreographer.doFrame(Choreographer.java:953) at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1398) at android.os.Handler.handleCallback(Handler.java:959) at android.os.Handler.dispatchMessage(Handler.java:100) at android.os.Looper.loopOnce(Looper.java:232) at android.os.Looper.loop(Looper.java:317) at android.app.ActivityThread.main(ActivityThread.java:8700) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:580) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:886)
Corvus400 commented 1 month ago

I would like to work on this task.🙋‍♂️