From 3b65994ca6efc056d69c242265572c90d8fb2a5b Mon Sep 17 00:00:00 2001 From: Luke De Feo Date: Wed, 25 Jan 2023 04:47:11 -0800 Subject: [PATCH] Interactions with TreeObserverManager moved to main thread Summary: Needed for next diff Reviewed By: lblasa Differential Revision: D42453228 fbshipit-source-id: 29e2655bf08376cd12a98ab61fe95b804b0c7ba1 --- .../plugins/uidebugger/UIDebuggerFlipperPlugin.kt | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/android/src/main/java/com/facebook/flipper/plugins/uidebugger/UIDebuggerFlipperPlugin.kt b/android/src/main/java/com/facebook/flipper/plugins/uidebugger/UIDebuggerFlipperPlugin.kt index b5a5a1d66..d5a4c3909 100644 --- a/android/src/main/java/com/facebook/flipper/plugins/uidebugger/UIDebuggerFlipperPlugin.kt +++ b/android/src/main/java/com/facebook/flipper/plugins/uidebugger/UIDebuggerFlipperPlugin.kt @@ -18,6 +18,9 @@ import com.facebook.flipper.plugins.uidebugger.descriptors.MetadataRegister import com.facebook.flipper.plugins.uidebugger.model.InitEvent import com.facebook.flipper.plugins.uidebugger.model.MetadataUpdateEvent import com.facebook.flipper.plugins.uidebugger.observers.TreeObserverFactory +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.launch import kotlinx.serialization.json.Json const val LogTag = "ui-debugger" @@ -28,6 +31,7 @@ class UIDebuggerFlipperPlugin( observerFactory: TreeObserverFactory? ) : FlipperPlugin { + val mainScope = CoroutineScope(Dispatchers.Main) private val context: Context = Context( ApplicationRef(application), @@ -61,7 +65,7 @@ class UIDebuggerFlipperPlugin( MetadataUpdateEvent.serializer(), MetadataUpdateEvent(MetadataRegister.extractPendingMetadata()))) - context.treeObserverManager.start() + mainScope.launch { context.treeObserverManager.start() } } @Throws(Exception::class) @@ -71,8 +75,10 @@ class UIDebuggerFlipperPlugin( MetadataRegister.reset() - context.treeObserverManager.stop() - context.bitmapPool.recycleAll() + mainScope.launch { + context.treeObserverManager.stop() + context.bitmapPool.recycleAll() + } } override fun runInBackground(): Boolean {