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:
committed by
Facebook GitHub Bot
parent
cd7cc37fd3
commit
e7742169f5
@@ -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,
|
||||||
|
|||||||
@@ -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(
|
||||||
|
|||||||
@@ -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(),
|
||||||
Reference in New Issue
Block a user