From 53aca9a6617defa2f3779bb5e1e44e93a968b89b Mon Sep 17 00:00:00 2001 From: Luke De Feo Date: Tue, 18 Apr 2023 08:01:50 -0700 Subject: [PATCH] Hidden attributes Summary: These are attributes that are: 1. Not common across frameworks 2. Not in every node 3. Will not be visualised via inspectable attribute mechansism Currently we will use them for bloks but they should be useful for other features down the road Reviewed By: lblasa Differential Revision: D45048025 fbshipit-source-id: c258d0a384a2b09abb642778e68da178899fa9eb --- .../plugins/uidebugger/descriptors/NodeDescriptor.kt | 7 +++++-- .../com/facebook/flipper/plugins/uidebugger/model/Node.kt | 2 ++ .../plugins/uidebugger/traversal/PartialLayoutTraversal.kt | 2 ++ 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/android/src/main/java/com/facebook/flipper/plugins/uidebugger/descriptors/NodeDescriptor.kt b/android/src/main/java/com/facebook/flipper/plugins/uidebugger/descriptors/NodeDescriptor.kt index 1f1f5dd43..413e4086c 100644 --- a/android/src/main/java/com/facebook/flipper/plugins/uidebugger/descriptors/NodeDescriptor.kt +++ b/android/src/main/java/com/facebook/flipper/plugins/uidebugger/descriptors/NodeDescriptor.kt @@ -12,6 +12,7 @@ import com.facebook.flipper.plugins.uidebugger.model.Bounds import com.facebook.flipper.plugins.uidebugger.model.InspectableObject import com.facebook.flipper.plugins.uidebugger.model.MetadataId import com.facebook.flipper.plugins.uidebugger.util.MaybeDeferred +import kotlinx.serialization.json.JsonObject /* Descriptors are an extension point used during traversal to extract data out of arbitrary @@ -62,7 +63,7 @@ interface NodeDescriptor { * parameter. If a bitmap is provided, it will be used by the canvas to draw on it. Otherwise, a * bitmap will be created. */ - fun getSnapshot(node: T, bitmap: Bitmap?): Bitmap? + fun getSnapshot(node: T, bitmap: Bitmap?): Bitmap? = null /** * If you have overlapping children this indicates which child is active / on top, we will only @@ -86,5 +87,7 @@ interface NodeDescriptor { /** * These are shown inline in the tree view on the desktop, will likely be removed in the future */ - fun getInlineAttributes(node: T): Map = mutableMapOf() + fun getInlineAttributes(node: T): Map = mapOf() + + fun getHiddenAttributes(node: T): JsonObject? = null } diff --git a/android/src/main/java/com/facebook/flipper/plugins/uidebugger/model/Node.kt b/android/src/main/java/com/facebook/flipper/plugins/uidebugger/model/Node.kt index 05995895a..415f3c03a 100644 --- a/android/src/main/java/com/facebook/flipper/plugins/uidebugger/model/Node.kt +++ b/android/src/main/java/com/facebook/flipper/plugins/uidebugger/model/Node.kt @@ -8,6 +8,7 @@ package com.facebook.flipper.plugins.uidebugger.model import com.facebook.flipper.plugins.uidebugger.descriptors.Id +import kotlinx.serialization.json.JsonObject @kotlinx.serialization.Serializable data class Node( @@ -17,6 +18,7 @@ data class Node( val name: String, val attributes: Map, val inlineAttributes: Map, + val hiddenAttributes: JsonObject?, val bounds: Bounds, val tags: Set, val children: List, diff --git a/android/src/main/java/com/facebook/flipper/plugins/uidebugger/traversal/PartialLayoutTraversal.kt b/android/src/main/java/com/facebook/flipper/plugins/uidebugger/traversal/PartialLayoutTraversal.kt index bd9a81b80..60b2b207c 100644 --- a/android/src/main/java/com/facebook/flipper/plugins/uidebugger/traversal/PartialLayoutTraversal.kt +++ b/android/src/main/java/com/facebook/flipper/plugins/uidebugger/traversal/PartialLayoutTraversal.kt @@ -65,6 +65,7 @@ class PartialLayoutTraversal( descriptor.getName(node), emptyMap(), emptyMap(), + null, descriptor.getBounds(node), emptySet(), emptyList(), @@ -108,6 +109,7 @@ class PartialLayoutTraversal( descriptor.getName(node), attrs, descriptor.getInlineAttributes(node), + descriptor.getHiddenAttributes(node), bounds, tags, childrenIds,