Android start sending frame scan event instead of subtree update

Summary: Cosmetic change to make the events more inline with what they are

Reviewed By: lblasa

Differential Revision: D42999134

fbshipit-source-id: e026e38da7e50e8f5520271246f9627eb22e8965
This commit is contained in:
Luke De Feo
2023-05-04 04:12:01 -07:00
committed by Facebook GitHub Bot
parent 98b94d62cf
commit 70cdc9bedc
2 changed files with 13 additions and 18 deletions

View File

@@ -24,19 +24,19 @@ data class MetadataUpdateEvent(val attributeMetadata: Map<MetadataId, Metadata>
}
@kotlinx.serialization.Serializable
data class SubtreeUpdateEvent(
val txId: Long,
val observerType: String,
val rootId: Id,
data class FrameScanEvent(
val frameTime: Long,
val nodes: List<Node>,
val snapshot: String?,
val snapshot: Snapshot?,
val frameworkEvents: List<FrameworkEvent>?
) {
companion object {
const val name = "subtreeUpdate"
const val name = "frameScan"
}
}
@kotlinx.serialization.Serializable data class Snapshot(val nodeId: Id, val data: String)
/** Separate optional performance statistics event */
@kotlinx.serialization.Serializable
data class PerfStatsEvent(

View File

@@ -19,11 +19,12 @@ import com.facebook.flipper.plugins.uidebugger.common.BitmapPool
import com.facebook.flipper.plugins.uidebugger.core.UIDContext
import com.facebook.flipper.plugins.uidebugger.descriptors.Id
import com.facebook.flipper.plugins.uidebugger.descriptors.MetadataRegister
import com.facebook.flipper.plugins.uidebugger.model.FrameScanEvent
import com.facebook.flipper.plugins.uidebugger.model.FrameworkEvent
import com.facebook.flipper.plugins.uidebugger.model.MetadataUpdateEvent
import com.facebook.flipper.plugins.uidebugger.model.Node
import com.facebook.flipper.plugins.uidebugger.model.PerfStatsEvent
import com.facebook.flipper.plugins.uidebugger.model.SubtreeUpdateEvent
import com.facebook.flipper.plugins.uidebugger.model.Snapshot
import com.facebook.flipper.plugins.uidebugger.util.MaybeDeferred
import java.io.ByteArrayOutputStream
import java.util.concurrent.atomic.AtomicInteger
@@ -111,12 +112,12 @@ class TreeObserverManager(val context: UIDContext) {
val snapshotUpdate = batchedUpdate.updates.find { it.snapshot != null }
val deferredComputationEndTimestamp = System.currentTimeMillis()
var snapshot: String? = null
var snapshot: Snapshot? = null
if (snapshotUpdate?.snapshot != null) {
val stream = ByteArrayOutputStream()
val base64Stream = Base64OutputStream(stream, Base64.DEFAULT)
snapshotUpdate.snapshot.bitmap?.compress(Bitmap.CompressFormat.PNG, 100, base64Stream)
snapshot = stream.toString()
snapshot = Snapshot(snapshotUpdate.rootId, stream.toString())
snapshotUpdate.snapshot.readyForReuse()
}
@@ -126,18 +127,12 @@ class TreeObserverManager(val context: UIDContext) {
val serialized =
Json.encodeToString(
SubtreeUpdateEvent.serializer(),
SubtreeUpdateEvent(
batchedUpdate.frameTimeMs,
"batched",
snapshotUpdate?.rootId ?: 1,
nodes,
snapshot,
frameworkEvents))
FrameScanEvent.serializer(),
FrameScanEvent(batchedUpdate.frameTimeMs, nodes, snapshot, frameworkEvents))
val serialisationEndTimestamp = System.currentTimeMillis()
context.connectionRef.connection?.send(SubtreeUpdateEvent.name, serialized)
context.connectionRef.connection?.send(FrameScanEvent.name, serialized)
val socketEndTimestamp = System.currentTimeMillis()
Log.i(LogTag, "Sent event for batched subtree update with nodes with ${nodes.size}")