Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove LayoutAwareModifierNode and onPlaced again #383

Merged
merged 1 commit into from
Nov 2, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions haze/api/api.txt
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ package dev.chrisbanes.haze {
method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier hazeChild(androidx.compose.ui.Modifier, dev.chrisbanes.haze.HazeState state, optional dev.chrisbanes.haze.HazeStyle style, optional kotlin.jvm.functions.Function1<? super dev.chrisbanes.haze.HazeChildScope,kotlin.Unit>? block);
}

@dev.chrisbanes.haze.ExperimentalHazeApi public final class HazeChildNode extends androidx.compose.ui.Modifier.Node implements androidx.compose.ui.node.CompositionLocalConsumerModifierNode androidx.compose.ui.node.DrawModifierNode androidx.compose.ui.node.GlobalPositionAwareModifierNode dev.chrisbanes.haze.HazeChildScope androidx.compose.ui.node.LayoutAwareModifierNode androidx.compose.ui.node.ObserverModifierNode {
@dev.chrisbanes.haze.ExperimentalHazeApi public final class HazeChildNode extends androidx.compose.ui.Modifier.Node implements androidx.compose.ui.node.CompositionLocalConsumerModifierNode androidx.compose.ui.node.DrawModifierNode androidx.compose.ui.node.GlobalPositionAwareModifierNode dev.chrisbanes.haze.HazeChildScope androidx.compose.ui.node.ObserverModifierNode {
ctor public HazeChildNode(dev.chrisbanes.haze.HazeState state, optional dev.chrisbanes.haze.HazeStyle style, optional kotlin.jvm.functions.Function1<? super dev.chrisbanes.haze.HazeChildScope,kotlin.Unit>? block);
method public void draw(androidx.compose.ui.graphics.drawscope.ContentDrawScope);
method public float getAlpha();
Expand Down Expand Up @@ -96,7 +96,7 @@ package dev.chrisbanes.haze {
method @androidx.compose.runtime.Stable public static androidx.compose.ui.Modifier haze(androidx.compose.ui.Modifier, dev.chrisbanes.haze.HazeState state);
}

@dev.chrisbanes.haze.ExperimentalHazeApi public final class HazeNode extends androidx.compose.ui.Modifier.Node implements androidx.compose.ui.node.CompositionLocalConsumerModifierNode androidx.compose.ui.node.DrawModifierNode androidx.compose.ui.node.GlobalPositionAwareModifierNode androidx.compose.ui.node.LayoutAwareModifierNode {
@dev.chrisbanes.haze.ExperimentalHazeApi public final class HazeNode extends androidx.compose.ui.Modifier.Node implements androidx.compose.ui.node.CompositionLocalConsumerModifierNode androidx.compose.ui.node.DrawModifierNode androidx.compose.ui.node.GlobalPositionAwareModifierNode {
ctor public HazeNode(dev.chrisbanes.haze.HazeState state);
method public void draw(androidx.compose.ui.graphics.drawscope.ContentDrawScope);
method public dev.chrisbanes.haze.HazeState getState();
Expand Down
25 changes: 4 additions & 21 deletions haze/src/commonMain/kotlin/dev/chrisbanes/haze/HazeChildNode.kt
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.geometry.Offset
import androidx.compose.ui.geometry.Size
import androidx.compose.ui.geometry.isSpecified
import androidx.compose.ui.geometry.takeOrElse
import androidx.compose.ui.geometry.toRect
import androidx.compose.ui.graphics.Brush
import androidx.compose.ui.graphics.Color
Expand All @@ -28,7 +29,6 @@ import androidx.compose.ui.layout.positionInWindow
import androidx.compose.ui.node.CompositionLocalConsumerModifierNode
import androidx.compose.ui.node.DrawModifierNode
import androidx.compose.ui.node.GlobalPositionAwareModifierNode
import androidx.compose.ui.node.LayoutAwareModifierNode
import androidx.compose.ui.node.ObserverModifierNode
import androidx.compose.ui.node.currentValueOf
import androidx.compose.ui.node.invalidateDraw
Expand All @@ -54,7 +54,6 @@ class HazeChildNode(
var block: (HazeChildScope.() -> Unit)? = null,
) : Modifier.Node(),
CompositionLocalConsumerModifierNode,
LayoutAwareModifierNode,
GlobalPositionAwareModifierNode,
ObserverModifierNode,
DrawModifierNode,
Expand Down Expand Up @@ -219,30 +218,14 @@ class HazeChildNode(
}

override fun onGloballyPositioned(coordinates: LayoutCoordinates) {
onPlaced(coordinates)

log(TAG) {
"onGloballyPositioned: " +
"positionInWindow=${coordinates.positionInWindow()}, " +
"positionInContent=$positionInContent, " +
"size=$size"
}
}

override fun onPlaced(coordinates: LayoutCoordinates) {
onPositioned(coordinates)

log(TAG) {
"onPlaced: " +
"positionInWindow=${coordinates.positionInWindow()}, " +
"positionInContent=$positionInContent, " +
"size=$size"
"positionInWindow=${coordinates.positionInWindow()}"
}
}

private fun onPositioned(coordinates: LayoutCoordinates) {
positionInContent = coordinates.positionInWindow() +
calculateWindowOffset() - state.positionOnScreen
calculateWindowOffset() - state.positionOnScreen.takeOrElse { Offset.Zero }

size = coordinates.size.toSize()

val blurRadiusPx = with(currentValueOf(LocalDensity)) {
Expand Down
18 changes: 1 addition & 17 deletions haze/src/commonMain/kotlin/dev/chrisbanes/haze/HazeNode.kt
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@ import androidx.compose.ui.layout.positionInWindow
import androidx.compose.ui.node.CompositionLocalConsumerModifierNode
import androidx.compose.ui.node.DrawModifierNode
import androidx.compose.ui.node.GlobalPositionAwareModifierNode
import androidx.compose.ui.node.LayoutAwareModifierNode
import androidx.compose.ui.node.currentValueOf
import androidx.compose.ui.platform.LocalGraphicsContext
import androidx.compose.ui.unit.Dp
Expand All @@ -34,30 +33,15 @@ class HazeNode(
) : Modifier.Node(),
CompositionLocalConsumerModifierNode,
GlobalPositionAwareModifierNode,
LayoutAwareModifierNode,
DrawModifierNode {

override fun onGloballyPositioned(coordinates: LayoutCoordinates) {
onPlaced(coordinates)

log(TAG) {
"onGloballyPositioned: " +
"positionInWindow=${coordinates.positionInWindow()}, " +
"positionInContent=${state.positionOnScreen}"
}
}

override fun onPlaced(coordinates: LayoutCoordinates) {
onPositioned(coordinates)

log(TAG) {
"onPlaced: " +
"positionInWindow=${coordinates.positionInWindow()}, " +
"positionInContent=${state.positionOnScreen}"
"content positionOnScreens=${state.positionOnScreen}"
}
}

private fun onPositioned(coordinates: LayoutCoordinates) {
state.positionOnScreen = coordinates.positionInWindow() + calculateWindowOffset()
}

Expand Down