mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
Adding FabricUIManager() getter & setter and setter for TurboModuleRegistry (#41302)
Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/41302 Adding `setTurboModuleRegistry(TurboModuleRegistry turboModuleRegistry)`, `setFabricUIManager(UIManager fabricUIManager)`, `getFabricUIManager()` new APIs Changelog: [General][Added] Introduce APIs for FabricUIManager Reviewed By: philIip Differential Revision: D50832557 fbshipit-source-id: 9a27a5683f312fb93f09bb4d97a615988269876e
This commit is contained in:
committed by
Facebook GitHub Bot
parent
3e158217df
commit
16fb64a9ef
+17
@@ -10,9 +10,11 @@ package com.facebook.react.bridge;
|
||||
import androidx.annotation.Nullable;
|
||||
import com.facebook.proguard.annotations.DoNotStrip;
|
||||
import com.facebook.react.bridge.queue.ReactQueueConfiguration;
|
||||
import com.facebook.react.common.annotations.DeprecatedInNewArchitecture;
|
||||
import com.facebook.react.common.annotations.VisibleForTesting;
|
||||
import com.facebook.react.internal.turbomodule.core.interfaces.CallInvokerHolder;
|
||||
import com.facebook.react.internal.turbomodule.core.interfaces.NativeMethodCallInvokerHolder;
|
||||
import com.facebook.react.internal.turbomodule.core.interfaces.TurboModuleRegistry;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
@@ -134,4 +136,19 @@ public interface CatalystInstance
|
||||
* hasNativeModule, and getNativeModules can also return TurboModules.
|
||||
*/
|
||||
void setTurboModuleManager(JSIModule getter);
|
||||
|
||||
@DeprecatedInNewArchitecture(
|
||||
message =
|
||||
"This method will be deprecated later as part of Stable APIs with bridge removal and not encouraged usage.")
|
||||
void setTurboModuleRegistry(TurboModuleRegistry turboModuleRegistry);
|
||||
|
||||
@DeprecatedInNewArchitecture(
|
||||
message =
|
||||
"This method will be deprecated later as part of Stable APIs with bridge removal and not encouraged usage.")
|
||||
void setFabricUIManager(UIManager fabricUIManager);
|
||||
|
||||
@DeprecatedInNewArchitecture(
|
||||
message =
|
||||
"This method will be deprecated later as part of Stable APIs with bridge removal and not encouraged usage.")
|
||||
UIManager getFabricUIManager();
|
||||
}
|
||||
|
||||
+20
-1
@@ -103,7 +103,8 @@ public class CatalystInstanceImpl implements CatalystInstance {
|
||||
private @Nullable String mSourceURL;
|
||||
|
||||
private JavaScriptContextHolder mJavaScriptContextHolder;
|
||||
private volatile @Nullable TurboModuleRegistry mTurboModuleRegistry = null;
|
||||
private @Nullable TurboModuleRegistry mTurboModuleRegistry;
|
||||
private @Nullable UIManager mFabricUIManager;
|
||||
|
||||
// C++ parts
|
||||
private final HybridData mHybridData;
|
||||
@@ -351,6 +352,9 @@ public class CatalystInstanceImpl implements CatalystInstance {
|
||||
() -> {
|
||||
mNativeModuleRegistry.notifyJSInstanceDestroy();
|
||||
mJSIModuleRegistry.notifyJSInstanceDestroy();
|
||||
if (mFabricUIManager != null) {
|
||||
mFabricUIManager.invalidate();
|
||||
}
|
||||
boolean wasIdle = (mPendingJSCalls.getAndSet(0) == 0);
|
||||
if (!mBridgeIdleListeners.isEmpty()) {
|
||||
for (NotThreadSafeBridgeIdleDebugListener listener : mBridgeIdleListeners) {
|
||||
@@ -570,6 +574,21 @@ public class CatalystInstanceImpl implements CatalystInstance {
|
||||
mTurboModuleRegistry = (TurboModuleRegistry) module;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setTurboModuleRegistry(TurboModuleRegistry turboModuleRegistry) {
|
||||
mTurboModuleRegistry = turboModuleRegistry;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setFabricUIManager(UIManager fabricUIManager) {
|
||||
mFabricUIManager = fabricUIManager;
|
||||
}
|
||||
|
||||
@Override
|
||||
public UIManager getFabricUIManager() {
|
||||
return mFabricUIManager;
|
||||
}
|
||||
|
||||
private void decrementPendingJSCalls() {
|
||||
int newPendingCalls = mPendingJSCalls.decrementAndGet();
|
||||
// TODO(9604406): handle case of web workers injecting messages to main thread
|
||||
|
||||
Reference in New Issue
Block a user