summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpsoffritti <psoffritti@google.com>2022-08-10 15:11:03 +0100
committerPierfrancesco Soffritti <psoffritti@google.com>2022-08-15 11:34:08 +0100
commitf993cf0759106a9bbfbc8c6517879ce187a9b66e (patch)
treef7a9e38d1624e31fe32f7e98cb2bb900022ccbe6
parent639a15d9184df5fb8f408be48f91991da4c15b8b (diff)
downloadidea-f993cf0759106a9bbfbc8c6517879ce187a9b66e.tar.gz
Replace transformedBounds with renderBounds
This makes the code easier to read, because the reader doesn't have to understand what all the different type of bounds are. Test: Existing Bug: NA Change-Id: I448b75128c7b1e3c51774f80f847dc525aca2ac9
-rw-r--r--layout-inspector/src/com/android/tools/idea/layoutinspector/model/ComposeViewNode.kt11
-rw-r--r--layout-inspector/src/com/android/tools/idea/layoutinspector/model/DrawViewNode.kt2
-rw-r--r--layout-inspector/src/com/android/tools/idea/layoutinspector/model/InspectorModel.kt2
-rw-r--r--layout-inspector/src/com/android/tools/idea/layoutinspector/model/ViewNode.kt22
-rw-r--r--layout-inspector/src/com/android/tools/idea/layoutinspector/pipeline/appinspection/compose/ComposeViewNodeCreator.kt6
-rw-r--r--layout-inspector/src/com/android/tools/idea/layoutinspector/pipeline/appinspection/view/ViewAndroidWindow.kt2
-rw-r--r--layout-inspector/src/com/android/tools/idea/layoutinspector/pipeline/appinspection/view/ViewNodeCreator.kt4
-rw-r--r--layout-inspector/src/com/android/tools/idea/layoutinspector/pipeline/legacy/LegacyTreeParser.kt2
-rw-r--r--layout-inspector/src/com/android/tools/idea/layoutinspector/ui/DeviceViewPanelModel.kt4
-rw-r--r--layout-inspector/testSrc/com/android/tools/idea/layoutinspector/pipeline/appinspection/AppInspectionTreeLoaderTest.kt4
-rw-r--r--layout-inspector/testSrc/com/android/tools/idea/layoutinspector/pipeline/legacy/LegacyPropertiesProviderTest.kt2
-rw-r--r--layout-inspector/testSrc/com/android/tools/idea/layoutinspector/properties/InspectorPropertyItemTest.kt2
-rw-r--r--layout-inspector/testSrc/com/android/tools/idea/layoutinspector/resource/ResourceLookupResolverTest.kt14
-rw-r--r--layout-inspector/testSrc/com/android/tools/idea/layoutinspector/resource/ResourceLookupTest.kt2
-rw-r--r--layout-inspector/testingSrc/com/android/tools/idea/layoutinspector/TestLayoutInspectorModelBuilder.kt14
-rw-r--r--uitest-framework/testSrc/com/android/tools/idea/tests/gui/framework/fixture/inspector/DeviceViewPanelFixture.kt4
16 files changed, 57 insertions, 40 deletions
diff --git a/layout-inspector/src/com/android/tools/idea/layoutinspector/model/ComposeViewNode.kt b/layout-inspector/src/com/android/tools/idea/layoutinspector/model/ComposeViewNode.kt
index 83751b9fb3c..4ee65bccf4a 100644
--- a/layout-inspector/src/com/android/tools/idea/layoutinspector/model/ComposeViewNode.kt
+++ b/layout-inspector/src/com/android/tools/idea/layoutinspector/model/ComposeViewNode.kt
@@ -19,6 +19,7 @@ import com.android.ide.common.rendering.api.ResourceReference
import com.android.tools.idea.flags.StudioFlags
import com.android.tools.idea.layoutinspector.tree.TreeSettings
import layoutinspector.compose.inspection.LayoutInspectorComposeProtocol
+import org.jetbrains.annotations.TestOnly
import java.awt.Rectangle
import java.awt.Shape
import kotlin.math.absoluteValue
@@ -104,7 +105,7 @@ class ComposeViewNode(
qualifiedName: String,
layout: ResourceReference?,
layoutBounds: Rectangle,
- transformedBounds: Shape?,
+ renderBounds: Shape,
viewId: ResourceReference?,
textValue: String,
layoutFlags: Int,
@@ -132,7 +133,13 @@ class ComposeViewNode(
/** The hash of an anchor which can identify the composable after a recomposition. */
var anchorHash: Int
-): ViewNode(drawId, qualifiedName, layout, layoutBounds, transformedBounds, viewId, textValue, layoutFlags) {
+): ViewNode(drawId, qualifiedName, layout, layoutBounds, renderBounds, viewId, textValue, layoutFlags) {
+ @TestOnly
+ constructor(drawId: Long, qualifiedName: String, layout: ResourceReference?, layoutBounds: Rectangle, viewId: ResourceReference?,
+ textValue: String, layoutFlags: Int, recomposeCount: Int, recomposeSkips: Int, composeFilename: String,
+ composePackageHash: Int, composeOffset: Int, composeLineNumber: Int, composeFlags: Int, anchorHash: Int
+ ) : this(drawId, qualifiedName, layout, layoutBounds, layoutBounds, viewId, textValue, layoutFlags, recomposeCount,
+ recomposeSkips, composeFilename, composePackageHash, composeOffset, composeLineNumber, composeFlags, anchorHash)
val recompositions = RecompositionData(recomposeCount, recomposeSkips)
diff --git a/layout-inspector/src/com/android/tools/idea/layoutinspector/model/DrawViewNode.kt b/layout-inspector/src/com/android/tools/idea/layoutinspector/model/DrawViewNode.kt
index a094449e4ed..6e9804fb0d2 100644
--- a/layout-inspector/src/com/android/tools/idea/layoutinspector/model/DrawViewNode.kt
+++ b/layout-inspector/src/com/android/tools/idea/layoutinspector/model/DrawViewNode.kt
@@ -75,7 +75,7 @@ sealed class DrawViewNode(owner: ViewNode) {
unfilteredOwner.findClosestUnfilteredNode(treeSettings)
val bounds: Shape
- get() = unfilteredOwner.transformedBounds
+ get() = unfilteredOwner.renderBounds
// Children at the start of the child list that have canCollapse = true will be drawn as part of the parent rather than as separate nodes.
abstract fun canCollapse(treeSettings: TreeSettings): Boolean
diff --git a/layout-inspector/src/com/android/tools/idea/layoutinspector/model/InspectorModel.kt b/layout-inspector/src/com/android/tools/idea/layoutinspector/model/InspectorModel.kt
index 4f51ab11a44..f50412108f1 100644
--- a/layout-inspector/src/com/android/tools/idea/layoutinspector/model/InspectorModel.kt
+++ b/layout-inspector/src/com/android/tools/idea/layoutinspector/model/InspectorModel.kt
@@ -394,7 +394,7 @@ class InspectorModel(val project: Project, val scheduler: ScheduledExecutorServi
oldNode.layoutBounds = newNode.layoutBounds
oldNode.qualifiedName = newNode.qualifiedName
oldNode.layout = newNode.layout
- oldNode.setTransformedBounds(newNode.transformedBounds)
+ oldNode.renderBounds = newNode.renderBounds
oldNode.layoutFlags = newNode.layoutFlags
oldNode.parent = parent
if (oldNode is ComposeViewNode && newNode is ComposeViewNode) {
diff --git a/layout-inspector/src/com/android/tools/idea/layoutinspector/model/ViewNode.kt b/layout-inspector/src/com/android/tools/idea/layoutinspector/model/ViewNode.kt
index 13ee026788e..87627919224 100644
--- a/layout-inspector/src/com/android/tools/idea/layoutinspector/model/ViewNode.kt
+++ b/layout-inspector/src/com/android/tools/idea/layoutinspector/model/ViewNode.kt
@@ -54,13 +54,22 @@ open class ViewNode(
var qualifiedName: String,
var layout: ResourceReference?,
var layoutBounds: Rectangle,
- private var renderBounds: Shape?,
+ var renderBounds: Shape,
var viewId: ResourceReference?,
var textValue: String,
var layoutFlags: Int
) {
+ @TestOnly
+ constructor(drawId: Long,
+ qualifiedName: String,
+ layout: ResourceReference?,
+ layoutBounds: Rectangle,
+ viewId: ResourceReference?,
+ textValue: String,
+ layoutFlags: Int) : this(drawId, qualifiedName, layout, layoutBounds, layoutBounds, viewId, textValue, layoutFlags)
+
/** constructor for synthetic nodes */
- constructor(qualifiedName: String): this(-1, qualifiedName, null, Rectangle(), null, null, "", 0)
+ constructor(qualifiedName: String): this(-1, qualifiedName, null, Rectangle(), Rectangle(), null, "", 0)
@Suppress("LeakingThis")
val treeNode = TreeViewNode(this)
@@ -98,13 +107,6 @@ open class ViewNode(
/** Returns true if the node represents a call from a parent node with a single call and it itself is making a single call */
open fun isSingleCall(treeSettings: TreeSettings): Boolean = false
- val transformedBounds: Shape
- get() = renderBounds ?: layoutBounds
-
- fun setTransformedBounds(bounds: Shape?) {
- renderBounds = bounds
- }
-
/**
* The rectangular bounds of this node's transformed bounds plus the transitive bounds of all children.
* [calculateTransitiveBounds] must be called before accessing this, but that should be done automatically soon after creation.
@@ -164,7 +166,7 @@ open class ViewNode(
fun calculateTransitiveBounds() {
readAccess {
flatten().forEach {
- it.transitiveBounds = it.children.map(ViewNode::transitiveBounds).plus(it.transformedBounds.bounds)
+ it.transitiveBounds = it.children.map(ViewNode::transitiveBounds).plus(it.renderBounds.bounds)
.reduce { r1, r2 -> r1.union(r2) }
}
}
diff --git a/layout-inspector/src/com/android/tools/idea/layoutinspector/pipeline/appinspection/compose/ComposeViewNodeCreator.kt b/layout-inspector/src/com/android/tools/idea/layoutinspector/pipeline/appinspection/compose/ComposeViewNodeCreator.kt
index 32b00c4e231..154a94ea8fc 100644
--- a/layout-inspector/src/com/android/tools/idea/layoutinspector/pipeline/appinspection/compose/ComposeViewNodeCreator.kt
+++ b/layout-inspector/src/com/android/tools/idea/layoutinspector/pipeline/appinspection/compose/ComposeViewNodeCreator.kt
@@ -91,12 +91,14 @@ class ComposeViewNodeCreator(result: GetComposablesResult) {
throw InterruptedException()
}
+ val layoutBounds = Rectangle(bounds.layout.x, bounds.layout.y, bounds.layout.w, bounds.layout.h)
+ val renderBounds = bounds.render.takeIf { it != Quad.getDefaultInstance() }?.toShape() ?: layoutBounds
val node = ComposeViewNode(
id,
stringTable[name],
null,
- Rectangle(bounds.layout.x, bounds.layout.y, bounds.layout.w, bounds.layout.h),
- bounds.render.takeIf { it != Quad.getDefaultInstance() }?.toShape(),
+ layoutBounds,
+ renderBounds,
null,
"",
0,
diff --git a/layout-inspector/src/com/android/tools/idea/layoutinspector/pipeline/appinspection/view/ViewAndroidWindow.kt b/layout-inspector/src/com/android/tools/idea/layoutinspector/pipeline/appinspection/view/ViewAndroidWindow.kt
index 7e4512ca972..fc71223b433 100644
--- a/layout-inspector/src/com/android/tools/idea/layoutinspector/pipeline/appinspection/view/ViewAndroidWindow.kt
+++ b/layout-inspector/src/com/android/tools/idea/layoutinspector/pipeline/appinspection/view/ViewAndroidWindow.kt
@@ -111,7 +111,7 @@ class ViewAndroidWindow(
val surfaceOriginX = root.layoutBounds.x - event.rootOffset.x
val surfaceOriginY = root.layoutBounds.y - event.rootOffset.y
val requests = allNodes.mapNotNull {
- val bounds = it.transformedBounds.bounds.intersection(Rectangle(0, 0, Int.MAX_VALUE, Int.MAX_VALUE))
+ val bounds = it.renderBounds.bounds.intersection(Rectangle(0, 0, Int.MAX_VALUE, Int.MAX_VALUE))
if (bounds.isEmpty) null
else LayoutInspectorUtils.makeRequestedNodeInfo(it.drawId, bounds.x - surfaceOriginX, bounds.y - surfaceOriginY, bounds.width,
bounds.height)
diff --git a/layout-inspector/src/com/android/tools/idea/layoutinspector/pipeline/appinspection/view/ViewNodeCreator.kt b/layout-inspector/src/com/android/tools/idea/layoutinspector/pipeline/appinspection/view/ViewNodeCreator.kt
index 41615082728..29735ea131f 100644
--- a/layout-inspector/src/com/android/tools/idea/layoutinspector/pipeline/appinspection/view/ViewNodeCreator.kt
+++ b/layout-inspector/src/com/android/tools/idea/layoutinspector/pipeline/appinspection/view/ViewNodeCreator.kt
@@ -70,9 +70,9 @@ class ViewNodeCreator(
val layoutResource = view.layoutResource.convert().createReference(strings)
val textValue = strings[view.textValue]
val layoutBounds = view.bounds.layout.let { Rectangle(it.x, it.y, it.w, it.h) }
- val renderBounds = view.bounds.render.takeIf { it != LayoutInspectorViewProtocol.Quad.getDefaultInstance() }
+ val renderBounds = view.bounds.render.takeIf { it != LayoutInspectorViewProtocol.Quad.getDefaultInstance() }?.toShape() ?: layoutBounds
- val node = ViewNode(view.id, qualifiedName, layoutResource, layoutBounds, renderBounds?.toShape(), resource,
+ val node = ViewNode(view.id, qualifiedName, layoutResource, layoutBounds, renderBounds, resource,
textValue, view.layoutFlags)
val children = view.childrenList.map { it.convert(shouldInterrupt, access) }.toMutableList()
diff --git a/layout-inspector/src/com/android/tools/idea/layoutinspector/pipeline/legacy/LegacyTreeParser.kt b/layout-inspector/src/com/android/tools/idea/layoutinspector/pipeline/legacy/LegacyTreeParser.kt
index ebdf0742e32..371f6e3299d 100644
--- a/layout-inspector/src/com/android/tools/idea/layoutinspector/pipeline/legacy/LegacyTreeParser.kt
+++ b/layout-inspector/src/com/android/tools/idea/layoutinspector/pipeline/legacy/LegacyTreeParser.kt
@@ -77,7 +77,7 @@ object LegacyTreeParser {
val (name, dataWithoutName) = data.split('@', limit = 2)
val (hash, properties) = dataWithoutName.split(' ', limit = 2)
val hashId = hash.toLongOrNull(16) ?: 0
- val view = ViewNode(hashId, name, null, Rectangle(), null, null, "", 0)
+ val view = ViewNode(hashId, name, null, Rectangle(), Rectangle(), null, "", 0)
ViewNode.writeAccess {
view.parent = parent
parent?.children?.add(view)
diff --git a/layout-inspector/src/com/android/tools/idea/layoutinspector/ui/DeviceViewPanelModel.kt b/layout-inspector/src/com/android/tools/idea/layoutinspector/ui/DeviceViewPanelModel.kt
index 20ca9bdabac..ee50c6b0836 100644
--- a/layout-inspector/src/com/android/tools/idea/layoutinspector/ui/DeviceViewPanelModel.kt
+++ b/layout-inspector/src/com/android/tools/idea/layoutinspector/ui/DeviceViewPanelModel.kt
@@ -187,7 +187,7 @@ class DeviceViewPanelModel(
return if (model.isVisible(node)) sequenceOf(node) else node.children.asSequence().flatMap { lowestVisible(it) }
}
- rootBounds = model.root.children.flatMap { lowestVisible(it) }.map { it.transformedBounds.bounds }
+ rootBounds = model.root.children.flatMap { lowestVisible(it) }.map { it.renderBounds.bounds }
.reduceOrNull { acc, bounds -> acc.apply { add(bounds) } } ?: Rectangle()
}
@@ -325,7 +325,7 @@ class DeviceViewPanelModel(
viewTransform.rotate(-angle)
viewTransform.translate(-rootBounds.width / 2.0, -rootBounds.height / 2.0)
- val rect = viewTransform.createTransformedShape(view.unfilteredOwner.transformedBounds)
+ val rect = viewTransform.createTransformedShape(view.unfilteredOwner.renderBounds)
newHitRects.add(ViewDrawInfo(rect, viewTransform, view, hitLevel, isCollapsed))
}
}
diff --git a/layout-inspector/testSrc/com/android/tools/idea/layoutinspector/pipeline/appinspection/AppInspectionTreeLoaderTest.kt b/layout-inspector/testSrc/com/android/tools/idea/layoutinspector/pipeline/appinspection/AppInspectionTreeLoaderTest.kt
index 7582baf4d62..db6a0013195 100644
--- a/layout-inspector/testSrc/com/android/tools/idea/layoutinspector/pipeline/appinspection/AppInspectionTreeLoaderTest.kt
+++ b/layout-inspector/testSrc/com/android/tools/idea/layoutinspector/pipeline/appinspection/AppInspectionTreeLoaderTest.kt
@@ -283,8 +283,8 @@ class AppInspectionTreeLoaderTest {
assertThat(node4.qualifiedName).isEqualTo("com.example.MyViewClass2")
assertThat((node4.drawChildren[0] as DrawViewImage).image).isEqualTo(image4)
assertThat(node4.children).isEmpty()
- assertThat((node4.transformedBounds as Polygon).xpoints).isEqualTo(intArrayOf(25, 75, 23, 78))
- assertThat((node4.transformedBounds as Polygon).ypoints).isEqualTo(intArrayOf(125, 127, 250, 253))
+ assertThat((node4.renderBounds as Polygon).xpoints).isEqualTo(intArrayOf(25, 75, 23, 78))
+ assertThat((node4.renderBounds as Polygon).ypoints).isEqualTo(intArrayOf(125, 127, 250, 253))
val node5 = tree.children[2]
assertThat(node5.drawId).isEqualTo(5)
diff --git a/layout-inspector/testSrc/com/android/tools/idea/layoutinspector/pipeline/legacy/LegacyPropertiesProviderTest.kt b/layout-inspector/testSrc/com/android/tools/idea/layoutinspector/pipeline/legacy/LegacyPropertiesProviderTest.kt
index d03deb01653..c233d111988 100644
--- a/layout-inspector/testSrc/com/android/tools/idea/layoutinspector/pipeline/legacy/LegacyPropertiesProviderTest.kt
+++ b/layout-inspector/testSrc/com/android/tools/idea/layoutinspector/pipeline/legacy/LegacyPropertiesProviderTest.kt
@@ -103,7 +103,7 @@ class LegacyPropertiesProviderTest {
fun testExample() {
val lookup = Mockito.mock(ViewNodeAndResourceLookup::class.java)
whenever(lookup.resourceLookup).thenReturn(Mockito.mock(ResourceLookup::class.java))
- val root = ViewNode(1234, "TextView", null, Rectangle(), null, null, "", 0)
+ val root = ViewNode(1234, "TextView", null, Rectangle(), null, "", 0)
val provider = LegacyPropertiesProvider()
val propertyLoader = LegacyPropertiesProvider.Updater(lookup)
propertyLoader.parseProperties(root, example)
diff --git a/layout-inspector/testSrc/com/android/tools/idea/layoutinspector/properties/InspectorPropertyItemTest.kt b/layout-inspector/testSrc/com/android/tools/idea/layoutinspector/properties/InspectorPropertyItemTest.kt
index 77c5735ff20..20fefdb71da 100644
--- a/layout-inspector/testSrc/com/android/tools/idea/layoutinspector/properties/InspectorPropertyItemTest.kt
+++ b/layout-inspector/testSrc/com/android/tools/idea/layoutinspector/properties/InspectorPropertyItemTest.kt
@@ -94,7 +94,7 @@ abstract class InspectorPropertyItemTestBase(protected val projectRule: AndroidP
}
private val fakeComposeNode: ComposeViewNode =
- ComposeViewNode(-2L, "Text", null, Rectangle(20, 20, 600, 200), null, null, "",
+ ComposeViewNode(-2L, "Text", null, Rectangle(20, 20, 600, 200), null, "",
0, 0, 0, "Text.kt", composePackageHash = 1777, composeOffset = 420, composeLineNumber = 17, 0, 0)
protected fun browseProperty(attrName: String, type: Type, source: ResourceReference?) {
diff --git a/layout-inspector/testSrc/com/android/tools/idea/layoutinspector/resource/ResourceLookupResolverTest.kt b/layout-inspector/testSrc/com/android/tools/idea/layoutinspector/resource/ResourceLookupResolverTest.kt
index b7f8d438d75..5e0ade3e5a0 100644
--- a/layout-inspector/testSrc/com/android/tools/idea/layoutinspector/resource/ResourceLookupResolverTest.kt
+++ b/layout-inspector/testSrc/com/android/tools/idea/layoutinspector/resource/ResourceLookupResolverTest.kt
@@ -305,13 +305,13 @@ class ResourceLookupResolverTest {
val frameId = ResourceReference(exampleNS, ResourceType.ID, "frameLayout")
val titleId = ResourceReference(exampleNS, ResourceType.ID, "title")
val buttonId = ResourceReference(exampleNS, ResourceType.ID, "button")
- val relativeLayout = ViewNode(1, "RelativeLayout", demo, Rectangle(0, 0, 300, 900), null, relativeId, "", 0)
- val title = ViewNode(2, "TextView", demo, Rectangle(30, 60, 300, 100), null, titleId, "Hello Folks", 0)
- val frameLayout = ViewNode(3, "RelativeLayout", demo, Rectangle(0, 200, 300, 700), null, frameId, "", 0)
- val textView1 = ViewNode(4, "TextView", demo, Rectangle(400, 60, 300, 100), null, null, "TextView without an ID", 0)
- val textView2 = ViewNode(5, "TextView", demo, Rectangle(0, 200, 300, 700), null, null, "TextView without an ID", 0)
- val button = ViewNode(6, "Button", demo, Rectangle(30, 400, 300, 100), null, buttonId, "OK", 0)
- val singleTextView = ViewNode(7, "TextView", designText, Rectangle(0, 0, 400, 50), null, null, "Tab3", 0)
+ val relativeLayout = ViewNode(1, "RelativeLayout", demo, Rectangle(0, 0, 300, 900), relativeId, "", 0)
+ val title = ViewNode(2, "TextView", demo, Rectangle(30, 60, 300, 100), titleId, "Hello Folks", 0)
+ val frameLayout = ViewNode(3, "RelativeLayout", demo, Rectangle(0, 200, 300, 700), frameId, "", 0)
+ val textView1 = ViewNode(4, "TextView", demo, Rectangle(400, 60, 300, 100), null, "TextView without an ID", 0)
+ val textView2 = ViewNode(5, "TextView", demo, Rectangle(0, 200, 300, 700), null, "TextView without an ID", 0)
+ val button = ViewNode(6, "Button", demo, Rectangle(30, 400, 300, 100), buttonId, "OK", 0)
+ val singleTextView = ViewNode(7, "TextView", designText, Rectangle(0, 0, 400, 50), null, "Tab3", 0)
val context = object : ViewNodeAndResourceLookup {
override val resourceLookup: ResourceLookup = mock()
override val selection: ViewNode? = null
diff --git a/layout-inspector/testSrc/com/android/tools/idea/layoutinspector/resource/ResourceLookupTest.kt b/layout-inspector/testSrc/com/android/tools/idea/layoutinspector/resource/ResourceLookupTest.kt
index d8ffc10d665..25de67380d3 100644
--- a/layout-inspector/testSrc/com/android/tools/idea/layoutinspector/resource/ResourceLookupTest.kt
+++ b/layout-inspector/testSrc/com/android/tools/idea/layoutinspector/resource/ResourceLookupTest.kt
@@ -77,7 +77,7 @@ class ResourceLookupTest {
@Test
fun testSingleColorIcon() {
- val title = ViewNode(1, "TextView", null, Rectangle(30, 60, 300, 100), null, null, "Hello Folks", 0)
+ val title = ViewNode(1, "TextView", null, Rectangle(30, 60, 300, 100), null, "Hello Folks", 0)
val context = object : ViewNodeAndResourceLookup {
override val resourceLookup = ResourceLookup(projectRule.project)
override fun get(id: Long): ViewNode = title
diff --git a/layout-inspector/testingSrc/com/android/tools/idea/layoutinspector/TestLayoutInspectorModelBuilder.kt b/layout-inspector/testingSrc/com/android/tools/idea/layoutinspector/TestLayoutInspectorModelBuilder.kt
index 068c08a2e1f..3388230112f 100644
--- a/layout-inspector/testingSrc/com/android/tools/idea/layoutinspector/TestLayoutInspectorModelBuilder.kt
+++ b/layout-inspector/testingSrc/com/android/tools/idea/layoutinspector/TestLayoutInspectorModelBuilder.kt
@@ -177,10 +177,16 @@ class InspectorViewDescriptor(private val drawId: Long,
composeSkips = composeSkips).apply(body))
fun build(): ViewNode {
- val result =
- if (composePackageHash == 0) ViewNode(drawId, qualifiedName, layout, Rectangle(x, y, width, height), bounds, viewId, textValue, layoutFlags)
- else ComposeViewNode(drawId, qualifiedName, null, Rectangle(x, y, width, height), null, null, textValue, 0, composeCount, composeSkips,
- composeFilename, composePackageHash, composeOffset, composeLineNumber, composeFlags, 0)
+ val layoutBounds = Rectangle(x, y, width, height)
+ val renderBounds = bounds ?: layoutBounds
+
+ val result = if (composePackageHash == 0) {
+ ViewNode(drawId, qualifiedName, layout, layoutBounds, renderBounds, viewId, textValue, layoutFlags)
+ }
+ else {
+ ComposeViewNode(drawId, qualifiedName, null, layoutBounds, renderBounds, null, textValue, 0, composeCount, composeSkips,
+ composeFilename, composePackageHash, composeOffset, composeLineNumber, composeFlags, 0)
+ }
ViewNode.writeAccess {
children.forEach {
when (it) {
diff --git a/uitest-framework/testSrc/com/android/tools/idea/tests/gui/framework/fixture/inspector/DeviceViewPanelFixture.kt b/uitest-framework/testSrc/com/android/tools/idea/tests/gui/framework/fixture/inspector/DeviceViewPanelFixture.kt
index ca42e8bcbab..085bdb05eca 100644
--- a/uitest-framework/testSrc/com/android/tools/idea/tests/gui/framework/fixture/inspector/DeviceViewPanelFixture.kt
+++ b/uitest-framework/testSrc/com/android/tools/idea/tests/gui/framework/fixture/inspector/DeviceViewPanelFixture.kt
@@ -169,7 +169,7 @@ class DeviceViewPanelFixture(
val size = GuiQuery.get { scrollPane.viewport.view.size }!!
size.width -= JBUI.scale(MARGIN)
size.height -= JBUI.scale(MARGIN)
- val rootBounds = GuiQuery.get { contentPanel.inspectorModel.root.transformedBounds.bounds }!!
+ val rootBounds = GuiQuery.get { contentPanel.inspectorModel.root.renderBounds.bounds }!!
return Point(((pos.x - size.getWidth() / 2.0) / scaleFraction + rootBounds.getWidth() / 2.0).toInt(),
((pos.y - size.getHeight() / 2.0) / scaleFraction + rootBounds.getHeight() / 2.0).toInt())
}
@@ -179,7 +179,7 @@ class DeviceViewPanelFixture(
val scrollPane = scrollPane
val contentPanel = contentPanel
val size = GuiQuery.get { scrollPane.viewport.view.size }!!
- val rootBounds = GuiQuery.get { contentPanel.inspectorModel.root.transformedBounds.bounds }!!
+ val rootBounds = GuiQuery.get { contentPanel.inspectorModel.root.renderBounds.bounds }!!
return Point(((pos.x - rootBounds.width / 2) * scaleFraction + size.width.toDouble() / 2.0).toInt(),
((pos.y - rootBounds.height / 2) * scaleFraction + size.height.toDouble() / 2.0).toInt())
}