138
138
public class ReactInstanceManager {
139
139
140
140
private static final String TAG = ReactInstanceManager .class .getSimpleName ();
141
- /** Listener interface for react instance events. */
142
- public interface ReactInstanceEventListener {
143
-
144
- /**
145
- * Called when the react context is initialized (all modules registered). Always called on the
146
- * UI thread.
147
- */
148
- void onReactContextInitialized (ReactContext context );
149
- }
141
+
142
+ /**
143
+ * Listener interface for react instance events. This class extends {@Link
144
+ * com.facebook.react.ReactInstanceEventListener} as a mitigation for both bridgeless and OSS
145
+ * compatibility: We create a separate ReactInstanceEventListener class to remove dependency on
146
+ * ReactInstanceManager which is a bridge-specific class, but in the mean time we have to keep
147
+ * ReactInstanceManager.ReactInstanceEventListener so OSS won't break.
148
+ */
149
+ @ Deprecated
150
+ public interface ReactInstanceEventListener
151
+ extends com .facebook .react .ReactInstanceEventListener {}
150
152
151
153
private final Set <ReactRoot > mAttachedReactRoots =
152
154
Collections .synchronizedSet (new HashSet <ReactRoot >());
@@ -173,8 +175,10 @@ public interface ReactInstanceEventListener {
173
175
private final Context mApplicationContext ;
174
176
private @ Nullable @ ThreadConfined (UI ) DefaultHardwareBackBtnHandler mDefaultBackButtonImpl ;
175
177
private @ Nullable Activity mCurrentActivity ;
176
- private final Collection <ReactInstanceEventListener > mReactInstanceEventListeners =
177
- Collections .synchronizedList (new ArrayList <ReactInstanceEventListener >());
178
+ private final Collection <com .facebook .react .ReactInstanceEventListener >
179
+ mReactInstanceEventListeners =
180
+ Collections .synchronizedList (
181
+ new ArrayList <com .facebook .react .ReactInstanceEventListener >());
178
182
// Identifies whether the instance manager is or soon will be initialized (on background thread)
179
183
private volatile boolean mHasStartedCreatingInitialContext = false ;
180
184
// Identifies whether the instance manager destroy function is in process,
@@ -1001,12 +1005,14 @@ public List<ViewManager> getOrCreateViewManagers(
1001
1005
}
1002
1006
1003
1007
/** Add a listener to be notified of react instance events. */
1004
- public void addReactInstanceEventListener (ReactInstanceEventListener listener ) {
1008
+ public void addReactInstanceEventListener (
1009
+ com .facebook .react .ReactInstanceEventListener listener ) {
1005
1010
mReactInstanceEventListeners .add (listener );
1006
1011
}
1007
1012
1008
1013
/** Remove a listener previously added with {@link #addReactInstanceEventListener}. */
1009
- public void removeReactInstanceEventListener (ReactInstanceEventListener listener ) {
1014
+ public void removeReactInstanceEventListener (
1015
+ com .facebook .react .ReactInstanceEventListener listener ) {
1010
1016
mReactInstanceEventListeners .remove (listener );
1011
1017
}
1012
1018
@@ -1177,16 +1183,16 @@ private void setupReactContext(final ReactApplicationContext reactContext) {
1177
1183
1178
1184
// There is a race condition here - `finalListeners` can contain null entries
1179
1185
// See usage below for more details.
1180
- ReactInstanceEventListener [] listeners =
1181
- new ReactInstanceEventListener [mReactInstanceEventListeners .size ()];
1182
- final ReactInstanceEventListener [] finalListeners =
1186
+ com . facebook . react . ReactInstanceEventListener [] listeners =
1187
+ new com . facebook . react . ReactInstanceEventListener [mReactInstanceEventListeners .size ()];
1188
+ final com . facebook . react . ReactInstanceEventListener [] finalListeners =
1183
1189
mReactInstanceEventListeners .toArray (listeners );
1184
1190
1185
1191
UiThreadUtil .runOnUiThread (
1186
1192
new Runnable () {
1187
1193
@ Override
1188
1194
public void run () {
1189
- for (ReactInstanceEventListener listener : finalListeners ) {
1195
+ for (com . facebook . react . ReactInstanceEventListener listener : finalListeners ) {
1190
1196
// Sometimes this listener is null - probably due to race
1191
1197
// condition between allocating listeners with a certain
1192
1198
// size, and getting a `final` version of the array on
0 commit comments