AAY-chart icon indicating copy to clipboard operation
AAY-chart copied to clipboard

Offset is unspecified

Open AhmerAfzal1 opened this issue 1 year ago • 6 comments

Kotlin: 1.9.20 Compose: compose-bom:2023.10.01 Android Studio Giraffe | 2022.3.1 Patch 4 Build #AI-223.8836.35.2231.11090377, built on November 14, 2023

FATAL EXCEPTION: main
Process: com.ahmer.accounts, PID: 22055
java.lang.IllegalStateException: Offset is unspecified
	at androidx.compose.ui.geometry.Offset.getX-impl(Offset.kt:67)
	at com.aay.compose.donutChart.component.PiePedigreeChartKt.drawPedigreeChart-88mDfTA(PiePedigreeChart.kt:62)
	at com.aay.compose.donutChart.PieChartKt$drawPieChart$1.invoke(PieChart.kt:168)
	at com.aay.compose.donutChart.PieChartKt$drawPieChart$1.invoke(PieChart.kt:159)
	at androidx.compose.ui.draw.DrawBackgroundModifier.draw(DrawModifier.kt:116)
	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:365)
	at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:354)
	at androidx.compose.ui.node.LayoutModifierNodeCoordinator.performDraw(LayoutModifierNodeCoordinator.kt:182)
	at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinator.kt:362)
	at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:354)
	at androidx.compose.ui.node.LayoutNode.draw$ui_release(LayoutNode.kt:922)
	at androidx.compose.ui.node.InnerNodeCoordinator.performDraw(InnerNodeCoordinator.kt:174)
	at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinator.kt:362)
	at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:354)
	at androidx.compose.ui.node.LayoutModifierNodeCoordinator.performDraw(LayoutModifierNodeCoordinator.kt:182)
	at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinator.kt:362)
	at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:354)
	at androidx.compose.ui.node.LayoutNode.draw$ui_release(LayoutNode.kt:922)
	at androidx.compose.ui.node.InnerNodeCoordinator.performDraw(InnerNodeCoordinator.kt:174)
	at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinator.kt:362)
	at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:354)
	at androidx.compose.ui.node.LayoutModifierNodeCoordinator.performDraw(LayoutModifierNodeCoordinator.kt:182)
	at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinator.kt:362)
	at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:354)
	at androidx.compose.ui.node.LayoutModifierNodeCoordinator.performDraw(LayoutModifierNodeCoordinator.kt:182)
	at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinator.kt:362)
	at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:354)
	at androidx.compose.ui.node.LayoutNode.draw$ui_release(LayoutNode.kt:922)
	at androidx.compose.ui.node.InnerNodeCoordinator.performDraw(InnerNodeCoordinator.kt:174)
	at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinator.kt:362)
	at androidx.compose.ui.node.NodeCoordinator.access$drawContainedDrawModifiers(NodeCoordinator.kt:54)
	at androidx.compose.ui.node.NodeCoordinator$invoke$1.invoke(NodeCoordinator.kt:384)
	at androidx.compose.ui.node.NodeCoordinator$invoke$1.invoke(NodeCoordinator.kt:383)
	at androidx.compose.runtime.snapshots.Snapshot$Companion.observe(Snapshot.kt:2299)
	at androidx.compose.runtime.snapshots.SnapshotStateObserver$ObservedScopeMap.observe(SnapshotStateObserver.kt:467)
	at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStateObserver.kt:230)
	at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapshotObserver.kt:133)
	at androidx.compose.ui.node.NodeCoordinator.invoke(NodeCoordinator.kt:383)
	at androidx.compose.ui.node.NodeCoordinator.invoke(NodeCoordinator.kt:54)
	at androidx.compose.ui.platform.RenderNodeApi29.record(RenderNodeApi29.android.kt:209)
	at androidx.compose.ui.platform.RenderNodeLayer.updateDisplayList(RenderNodeLayer.android.kt:305)
app_time_stats: avg=16.19ms min=3.91ms max=37.41ms count=30
	at androidx.compose.ui.platform.RenderNodeLayer.drawLayer(RenderNodeLayer.android.kt:246)
	at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:349)
	at androidx.compose.ui.node.LayoutModifierNodeCoordinator.performDraw(LayoutModifierNodeCoordinator.kt:182)
	at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinator.kt:362)
	at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:354)
	at androidx.compose.ui.node.LayoutModifierNodeCoordinator.performDraw(LayoutModifierNodeCoordinator.kt:182)
	at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinator.kt:362)
	at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:354)
	at androidx.compose.ui.node.LayoutNode.draw$ui_release(LayoutNode.kt:922)
	at androidx.compose.ui.node.InnerNodeCoordinator.performDraw(InnerNodeCoordinator.kt:174)
	at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinator.kt:362)
	at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:354)
	at androidx.compose.ui.node.LayoutModifierNodeCoordinator.performDraw(LayoutModifierNodeCoordinator.kt:182)
	at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinator.kt:362)
	at androidx.compose.ui.node.NodeCoordinator.access$drawContainedDrawModifiers(NodeCoordinator.kt:54)
	at androidx.compose.ui.node.NodeCoordinator$invoke$1.invoke(NodeCoordinator.kt:384)
	at androidx.compose.ui.node.NodeCoordinator$invoke$1.invoke(NodeCoordinator.kt:383)
	at androidx.compose.runtime.snapshots.Snapshot$Companion.observe(Snapshot.kt:2299)
	at androidx.compose.runtime.snapshots.SnapshotStateObserver$ObservedScopeMap.observe(SnapshotStateObserver.kt:467)
	at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStateObserver.kt:230)
	at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapshotObserver.kt:133)
	at androidx.compose.ui.node.NodeCoordinator.invoke(NodeCoordinator.kt:383)
	at androidx.compose.ui.node.NodeCoordinator.invoke(NodeCoordinator.kt:54)
	at androidx.compose.ui.platform.RenderNodeApi29.record(RenderNodeApi29.android.kt:209)
	at androidx.compose.ui.platform.RenderNodeLayer.updateDisplayList(RenderNodeLayer.android.kt:305)
	at androidx.compose.ui.platform.RenderNodeLayer.drawLayer(RenderNodeLayer.android.kt:246)
	at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:349)
	at androidx.compose.ui.node.LayoutModifierNodeCoordinator.performDraw(LayoutModifierNodeCoordinator.kt:182)
	at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinator.kt:362)
	at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:354)
	at androidx.compose.ui.node.LayoutModifierNodeCoordinator.performDraw(LayoutModifierNodeCoordinator.kt:182)
	at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinator.kt:362)
	at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:354)
	at androidx.compose.ui.node.LayoutNode.draw$ui_release(LayoutNode.kt:922)
	at androidx.compose.ui.node.InnerNodeCoordinator.performDraw(InnerNodeCoordinator.kt:174)
	at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinator.kt:362)
	at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:354)
	at androidx.compose.ui.node.LayoutNode.draw$ui_release(LayoutNode.kt:922)
	at androidx.compose.ui.node.InnerNodeCoordinator.performDraw(InnerNodeCoordinator.kt:174)
	at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinator.kt:362)
	at androidx.compose.ui.node.NodeCoordinator.access$drawContainedDrawModifiers(NodeCoordinator.kt:54)
	at androidx.compose.ui.node.NodeCoordinator$invoke$1.invoke(NodeCoordinator.kt:384)
	at androidx.compose.ui.node.NodeCoordinator$invoke$1.invoke(NodeCoordinator.kt:383)
	at androidx.compose.runtime.snapshots.Snapshot$Companion.observe(Snapshot.kt:2299)
	at androidx.compose.runtime.snapshots.SnapshotStateObserver$ObservedScopeMap.observe(SnapshotStateObserver.kt:467)
	at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStateObserver.kt:230)
	at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapshotObserver.kt:133)
	at androidx.compose.ui.node.NodeCoordinator.invoke(NodeCoordinator.kt:383)
	at androidx.compose.ui.node.NodeCoordinator.invoke(NodeCoordinator.kt:54)
	at androidx.compose.ui.platform.RenderNodeApi29.record(RenderNodeApi29.android.kt:209)
	at androidx.compose.ui.platform.RenderNodeLayer.updateDisplayList(RenderNodeLayer.android.kt:305)
	at androidx.compose.ui.platform.AndroidComposeView.dispatchDraw(AndroidComposeView.android.kt:1138)
	at android.view.View.draw(View.java:23892)
	at android.view.View.updateDisplayListIfDirty(View.java:22756)
	at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4540)
	at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4513)
	at android.view.View.updateDisplayListIfDirty(View.java:22712)
	at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4540)
	at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4513)
	at android.view.View.updateDisplayListIfDirty(View.java:22712)
	at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4540)
	at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4513)
	at android.view.View.updateDisplayListIfDirty(View.java:22712)
	at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4540)
	at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4513)
	at android.view.View.updateDisplayListIfDirty(View.java:22712)
	at android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:694)
	at android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:700)
	at android.view.ThreadedRenderer.draw(ThreadedRenderer.java:798)
	at android.view.ViewRootImpl.draw(ViewRootImpl.java:4939)
	at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:4643)
	at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:3822)
	at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:2465)
	at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:9305)
	at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1339)
	at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1348)
	at android.view.Choreographer.doCallbacks(Choreographer.java:952)
	at android.view.Choreographer.doFrame(Choreographer.java:882)
	at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1322)
	at android.os.Handler.handleCallback(Handler.java:958)
	at android.os.Handler.dispatchMessage(Handler.java:99)
	at android.os.Looper.loopOnce(Looper.java:205)
	at android.os.Looper.loop(Looper.java:294)
	at android.app.ActivityThread.main(ActivityThread.java:8177)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:552)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:971)

AhmerAfzal1 avatar Nov 29 '23 18:11 AhmerAfzal1

share the sample data you used to show it in this chart!

yousefkazemy1 avatar Nov 29 '23 20:11 yousefkazemy1

In this situation, this error occurs in the Offset class. this.packedValue != Unspecified.packedValue Unspecified.packedValue => Offset(Float.NaN, Float.NaN) It means Offset variables are undefined

yousefkazemy1 avatar Nov 29 '23 20:11 yousefkazemy1

val mData: List<PieChartData> by lazy {
                listOf(
                    PieChartData(
                        partName = Constants.TYPE_CREDIT,
                        data = 0.0,
                        color = colorGreenDark
                    ), PieChartData(
                        partName = Constants.TYPE_DEBIT,
                        data = 0.0,
                        color = colorRedDark
                    )
                )
            }
            Row(modifier = Modifier.padding(all = 16.dp)) {
                DonutChart(
                    modifier = Modifier.fillMaxSize(),
                    pieChartData = mData,
                    centerTitle = "Balance".uppercase(),
                    centerTitleStyle = TextStyle.Default.copy(
                        fontSize = 14.sp, fontWeight = FontWeight.Bold
                    ),
                    descriptionStyle = TextStyle.Default.copy(
                        fontSize = 14.sp,
                        fontWeight = FontWeight.Bold,
                    ),
                    textRatioStyle = TextStyle.Default.copy(fontSize = 14.sp),
                    outerCircularColor = MaterialTheme.colorScheme.primary,
                    innerCircularColor = MaterialTheme.colorScheme.primary,
                    ratioLineColor = MaterialTheme.colorScheme.primary,
                    legendPosition = LegendPosition.BOTTOM
                )
            }

AhmerAfzal1 avatar Nov 29 '23 20:11 AhmerAfzal1

App crash when value sum is 0, also crash when data loading from viewModel and initial value is 0, app crash Offset is unspecified

AhmerAfzal1 avatar Nov 29 '23 20:11 AhmerAfzal1

You are right. Check this, I fixed the issue. https://github.com/TheChance101/AAY-chart/pull/100

yousefkazemy1 avatar Dec 01 '23 20:12 yousefkazemy1

Slice and color not filled, description also not visible, in 2nd screenshot percentage line position not correct

Screenshot_20231202_192832

Screenshot_20231202_192641

AhmerAfzal1 avatar Dec 02 '23 14:12 AhmerAfzal1