Move traversal outside of observers package

Summary: Move partial traversal to the traversal package

Reviewed By: LukeDefeo

Differential Revision: D39812542

fbshipit-source-id: 1efa6f83ce53c49f3d06574cf52b8d065cb0fe22
This commit is contained in:
Lorenzo Blasa
2022-09-27 13:00:04 -07:00
committed by Facebook GitHub Bot
parent cd7cc37fd3
commit e7742169f5
3 changed files with 6 additions and 6 deletions

View File

@@ -9,9 +9,9 @@ package com.facebook.flipper.plugins.uidebugger.core
import com.facebook.flipper.core.FlipperConnection import com.facebook.flipper.core.FlipperConnection
import com.facebook.flipper.plugins.uidebugger.descriptors.DescriptorRegister import com.facebook.flipper.plugins.uidebugger.descriptors.DescriptorRegister
import com.facebook.flipper.plugins.uidebugger.observers.PartialLayoutTraversal
import com.facebook.flipper.plugins.uidebugger.observers.TreeObserverFactory import com.facebook.flipper.plugins.uidebugger.observers.TreeObserverFactory
import com.facebook.flipper.plugins.uidebugger.observers.TreeObserverManager import com.facebook.flipper.plugins.uidebugger.observers.TreeObserverManager
import com.facebook.flipper.plugins.uidebugger.traversal.PartialLayoutTraversal
data class Context( data class Context(
val applicationRef: ApplicationRef, val applicationRef: ApplicationRef,

View File

@@ -13,9 +13,9 @@ import com.facebook.flipper.plugins.uidebugger.LogTag
import com.facebook.flipper.plugins.uidebugger.model.NativeScanEvent import com.facebook.flipper.plugins.uidebugger.model.NativeScanEvent
import com.facebook.flipper.plugins.uidebugger.model.Node import com.facebook.flipper.plugins.uidebugger.model.Node
import com.facebook.flipper.plugins.uidebugger.model.PerfStatsEvent import com.facebook.flipper.plugins.uidebugger.model.PerfStatsEvent
import com.facebook.flipper.plugins.uidebugger.observers.PartialLayoutTraversal
import com.facebook.flipper.plugins.uidebugger.observers.TreeObserverFactory import com.facebook.flipper.plugins.uidebugger.observers.TreeObserverFactory
import com.facebook.flipper.plugins.uidebugger.scheduler.Scheduler import com.facebook.flipper.plugins.uidebugger.scheduler.Scheduler
import com.facebook.flipper.plugins.uidebugger.traversal.PartialLayoutTraversal
import kotlinx.serialization.json.Json import kotlinx.serialization.json.Json
data class ScanResult( data class ScanResult(

View File

@@ -5,7 +5,7 @@
* LICENSE file in the root directory of this source tree. * LICENSE file in the root directory of this source tree.
*/ */
package com.facebook.flipper.plugins.uidebugger.observers package com.facebook.flipper.plugins.uidebugger.traversal
import android.util.Log import android.util.Log
import com.facebook.flipper.plugins.uidebugger.LogTag import com.facebook.flipper.plugins.uidebugger.LogTag
@@ -14,6 +14,7 @@ import com.facebook.flipper.plugins.uidebugger.descriptors.Id
import com.facebook.flipper.plugins.uidebugger.descriptors.NodeDescriptor import com.facebook.flipper.plugins.uidebugger.descriptors.NodeDescriptor
import com.facebook.flipper.plugins.uidebugger.descriptors.nodeId import com.facebook.flipper.plugins.uidebugger.descriptors.nodeId
import com.facebook.flipper.plugins.uidebugger.model.Node import com.facebook.flipper.plugins.uidebugger.model.Node
import com.facebook.flipper.plugins.uidebugger.observers.TreeObserverFactory
/** /**
* This will traverse the layout hierarchy until it sees a node that has an observer registered for * This will traverse the layout hierarchy until it sees a node that has an observer registered for
@@ -29,7 +30,7 @@ class PartialLayoutTraversal(
@Suppress("unchecked_cast") @Suppress("unchecked_cast")
internal fun NodeDescriptor<*>.asAny(): NodeDescriptor<Any> = this as NodeDescriptor<Any> internal fun NodeDescriptor<*>.asAny(): NodeDescriptor<Any> = this as NodeDescriptor<Any>
fun traverse(root: Any): Pair<MutableList<Node>, List<Any>> { fun traverse(root: Any): Pair<List<Node>, List<Any>> {
val visited = mutableListOf<Node>() val visited = mutableListOf<Node>()
val observableRoots = mutableListOf<Any>() val observableRoots = mutableListOf<Any>()
@@ -48,7 +49,6 @@ class PartialLayoutTraversal(
} }
val descriptor = descriptorRegister.descriptorForClassUnsafe(node::class.java).asAny() val descriptor = descriptorRegister.descriptorForClassUnsafe(node::class.java).asAny()
val children = descriptor.getChildren(node) val children = descriptor.getChildren(node)
val activeChild = descriptor.getActiveChild(node) val activeChild = descriptor.getActiveChild(node)
@@ -64,6 +64,7 @@ class PartialLayoutTraversal(
stack.add(child) stack.add(child)
} }
} }
var activeChildId: Id? = null var activeChildId: Id? = null
if (activeChild != null) { if (activeChild != null) {
stack.add(activeChild) stack.add(activeChild)
@@ -73,7 +74,6 @@ class PartialLayoutTraversal(
val attributes = descriptor.getData(node) val attributes = descriptor.getData(node)
val bounds = descriptor.getBounds(node) val bounds = descriptor.getBounds(node)
val tags = descriptor.getTags(node) val tags = descriptor.getTags(node)
visited.add( visited.add(
Node( Node(
node.nodeId(), node.nodeId(),