From 4eccacbac82c70c4df18653cf0d1f12e88587e92 Mon Sep 17 00:00:00 2001 From: Chaiwat Ekkaewnumchai Date: Mon, 23 Mar 2020 21:57:08 -0700 Subject: [PATCH] (Client) Add Connection Listener to BufferingFlipperPlugin Summary: - Add a new listener to be called when the plugin is initialized Note: - This is a part of this PR: https://github.com/facebook/flipper/pull/488 Reviewed By: jknoxville Differential Revision: D20474259 fbshipit-source-id: ef1673ffa7fbc087761a753fbae813346bd481c3 --- .../common/BufferingFlipperPlugin.java | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/android/src/main/java/com/facebook/flipper/plugins/common/BufferingFlipperPlugin.java b/android/src/main/java/com/facebook/flipper/plugins/common/BufferingFlipperPlugin.java index 88797d21a..d821c9fa7 100644 --- a/android/src/main/java/com/facebook/flipper/plugins/common/BufferingFlipperPlugin.java +++ b/android/src/main/java/com/facebook/flipper/plugins/common/BufferingFlipperPlugin.java @@ -10,6 +10,7 @@ package com.facebook.flipper.plugins.common; import com.facebook.flipper.core.FlipperConnection; import com.facebook.flipper.core.FlipperObject; import com.facebook.flipper.core.FlipperPlugin; +import javax.annotation.Nonnull; import javax.annotation.Nullable; /** @@ -24,17 +25,35 @@ public abstract class BufferingFlipperPlugin implements FlipperPlugin { private @Nullable RingBuffer mEventQueue; private @Nullable FlipperConnection mConnection; + private @Nullable MockResponseConnectionListener + mMockResponseConnectionListenerConnectionListener; + + public synchronized void setConnectionListener(@Nonnull MockResponseConnectionListener listener) { + this.mMockResponseConnectionListenerConnectionListener = listener; + } + + public synchronized void removeConnectionListener() { + this.mMockResponseConnectionListenerConnectionListener = null; + } @Override public synchronized void onConnect(FlipperConnection connection) { mConnection = connection; sendBufferedEvents(); + + if (this.mMockResponseConnectionListenerConnectionListener != null) { + this.mMockResponseConnectionListenerConnectionListener.onConnect(connection); + } } @Override public synchronized void onDisconnect() { mConnection = null; + + if (this.mMockResponseConnectionListenerConnectionListener != null) { + this.mMockResponseConnectionListenerConnectionListener.onDisconnect(); + } } @Override @@ -79,4 +98,10 @@ public abstract class BufferingFlipperPlugin implements FlipperPlugin { this.flipperObject = flipperObject; } } + + public interface MockResponseConnectionListener { + void onConnect(FlipperConnection connection); + + void onDisconnect(); + } }