From a954ab3869b7fa6ce7fecd45a14bac4ce02b4603 Mon Sep 17 00:00:00 2001 From: David Vacca Date: Sat, 7 Feb 2026 22:45:53 -0800 Subject: [PATCH 1/4] Fix DoNotStripAnnotationUsage: Replace @DoNotStrip with @DoNotStripAny (#55412) Summary: Fixed DoNotStripAnnotationUsage lint error in FabricUIManagerBinding.kt. The class has many members (external methods like initHybrid, installFabricUIManager, etc.) that need to be kept, so DoNotStripAny is more appropriate than DoNotStrip which only keeps the directly annotated element. changelog: [internal] internal Reviewed By: javache Differential Revision: D91840163 --- .../java/com/facebook/react/fabric/FabricUIManagerBinding.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManagerBinding.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManagerBinding.kt index ac8e4e2ef07e07..0373e9d2be1eeb 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManagerBinding.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManagerBinding.kt @@ -9,14 +9,14 @@ package com.facebook.react.fabric import android.annotation.SuppressLint import com.facebook.jni.HybridClassBase -import com.facebook.proguard.annotations.DoNotStrip +import com.facebook.proguard.annotations.DoNotStripAny import com.facebook.react.bridge.NativeMap import com.facebook.react.bridge.RuntimeExecutor import com.facebook.react.bridge.RuntimeScheduler import com.facebook.react.fabric.events.EventBeatManager import com.facebook.react.uimanager.PixelUtil.getDisplayMetricDensity -@DoNotStrip +@DoNotStripAny @SuppressLint("MissingNativeLoadLibrary") internal class FabricUIManagerBinding : HybridClassBase() { init { From fa206b601cbfb1409a6f277e32e7d2a68135364e Mon Sep 17 00:00:00 2001 From: David Vacca Date: Sat, 7 Feb 2026 22:45:53 -0800 Subject: [PATCH 2/4] Fix ClownyBooleanExpression: Add @SuppressLint annotation (#55413) Summary: Fixed ClownyBooleanExpression lint warning in FabricUIManager.java. The expression `false && ReactBuildConfig.DEBUG` is intentionally used as a development flag that can be easily toggled. The constant false ensures it's disabled in production while making it clear how to enable it for development. changelog: [internal] internal Reviewed By: javache Differential Revision: D91840560 --- .../main/java/com/facebook/react/fabric/FabricUIManager.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManager.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManager.java index a4cb1c2dd5ed47..23b53003caacbf 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManager.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManager.java @@ -117,7 +117,9 @@ public class FabricUIManager // The IS_DEVELOPMENT_ENVIRONMENT variable is used to log extra data when running fabric in a // development environment. DO NOT ENABLE THIS ON PRODUCTION OR YOU WILL BE FIRED! + @SuppressLint("ClownyBooleanExpression") public static final boolean IS_DEVELOPMENT_ENVIRONMENT = false && ReactBuildConfig.DEBUG; + public @Nullable DevToolsReactPerfLogger mDevToolsReactPerfLogger; private static final DevToolsReactPerfLogger.DevToolsReactPerfLoggerListener FABRIC_PERF_LOGGER = From 14e736c127d46220b51bcd4f83be65caf0b39f02 Mon Sep 17 00:00:00 2001 From: David Vacca Date: Sat, 7 Feb 2026 22:45:53 -0800 Subject: [PATCH 3/4] Fix NotInvokedPrivateMethod: Add @SuppressLint for preallocateView (#55439) Summary: Fixed NotInvokedPrivateMethod lint warning for preallocateView in FabricUIManager.java. This method is called from JNI/C++ code, not from Java, so the lint warning is a false positive. Added SuppressLint annotation to suppress the warning. changelog: [internal] internal Reviewed By: javache Differential Revision: D91840733 --- .../src/main/java/com/facebook/react/fabric/FabricUIManager.java | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManager.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManager.java index 23b53003caacbf..74643cc11cad31 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManager.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManager.java @@ -820,6 +820,7 @@ public void synchronouslyUpdateViewOnUIThread(final int reactTag, final Readable ReactMarkerConstants.FABRIC_UPDATE_UI_MAIN_THREAD_END, null, commitNumber); } + @SuppressLint("NotInvokedPrivateMethod") @SuppressWarnings("unused") @AnyThread @ThreadConfined(ANY) From c685e174ec7782cea6c9dca05d5edf4700000fdc Mon Sep 17 00:00:00 2001 From: David Vacca Date: Sat, 7 Feb 2026 22:45:53 -0800 Subject: [PATCH 4/4] Fix JavadocsBackticksUse: Replace backticks with {@code} tags (#55440) Summary: Fixed JavadocsBackticksUse lint warning in FabricUIManager.java. Replaced markdown-style backticks with proper javadoc {code ...} tags for code references in the receiveEvent method documentation. changelog: [internal] internal Reviewed By: javache Differential Revision: D91841151 --- .../java/com/facebook/react/fabric/FabricUIManager.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManager.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManager.java index 74643cc11cad31..08c96912586a47 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManager.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManager.java @@ -1053,11 +1053,11 @@ public void receiveEvent( } /** - * receiveEvent API that emits an event to C++. If `canCoalesceEvent` is true, that signals that - * C++ may coalesce the event optionally. Otherwise, coalescing can happen in Java before + * receiveEvent API that emits an event to C++. If {@code canCoalesceEvent} is true, that signals + * that C++ may coalesce the event optionally. Otherwise, coalescing can happen in Java before * emitting. * - *

`customCoalesceKey` is currently unused. + *

{@code customCoalesceKey} is currently unused. * * @param surfaceId * @param reactTag