From 70cdc9bedcfe17c474587a0fa43b8f08fddb3552 Mon Sep 17 00:00:00 2001 From: Luke De Feo Date: Thu, 4 May 2023 04:12:01 -0700 Subject: [PATCH] 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 --- .../plugins/uidebugger/model/Events.kt | 12 ++++++------ .../observers/TreeObserverManager.kt | 19 +++++++------------ 2 files changed, 13 insertions(+), 18 deletions(-) diff --git a/android/src/main/java/com/facebook/flipper/plugins/uidebugger/model/Events.kt b/android/src/main/java/com/facebook/flipper/plugins/uidebugger/model/Events.kt index 8a25a536d..69624989f 100644 --- a/android/src/main/java/com/facebook/flipper/plugins/uidebugger/model/Events.kt +++ b/android/src/main/java/com/facebook/flipper/plugins/uidebugger/model/Events.kt @@ -24,19 +24,19 @@ data class MetadataUpdateEvent(val attributeMetadata: Map } @kotlinx.serialization.Serializable -data class SubtreeUpdateEvent( - val txId: Long, - val observerType: String, - val rootId: Id, +data class FrameScanEvent( + val frameTime: Long, val nodes: List, - val snapshot: String?, + val snapshot: Snapshot?, val frameworkEvents: List? ) { 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( diff --git a/android/src/main/java/com/facebook/flipper/plugins/uidebugger/observers/TreeObserverManager.kt b/android/src/main/java/com/facebook/flipper/plugins/uidebugger/observers/TreeObserverManager.kt index 35d6c453b..c46fe63b4 100644 --- a/android/src/main/java/com/facebook/flipper/plugins/uidebugger/observers/TreeObserverManager.kt +++ b/android/src/main/java/com/facebook/flipper/plugins/uidebugger/observers/TreeObserverManager.kt @@ -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}")