Log class loading for uimanager and layoutaninations classes annotated with @LegacyArchitecture (#49827)

Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/49827

Log class loading for uimanager and layoutaninations classes annotated with LegacyArchitecture

changelog: [internal] internal

Reviewed By: cortinico

Differential Revision: D70607606

fbshipit-source-id: 5e0dd9059a77bc4cc6a61ec68bb7b9f539a22b81
This commit is contained in:
David Vacca
2025-03-05 23:22:37 -08:00
committed by Facebook GitHub Bot
parent b30538d804
commit 85cd552fb1
15 changed files with 100 additions and 0 deletions
@@ -9,10 +9,15 @@ package com.facebook.react.uimanager
import android.view.View
import com.facebook.react.common.annotations.internal.LegacyArchitecture
import com.facebook.react.common.annotations.internal.LegacyArchitectureLogger
import com.facebook.yoga.YogaDirection
@LegacyArchitecture
internal object LayoutDirectionUtil {
init {
LegacyArchitectureLogger.assertWhenLegacyArchitectureMinifyingEnabled("LayoutDirectionUtil")
}
@JvmStatic
fun toAndroidFromYoga(direction: YogaDirection): Int =
when (direction) {
@@ -27,6 +27,8 @@ import com.facebook.react.bridge.RetryableMountingLayerException;
import com.facebook.react.bridge.SoftAssertions;
import com.facebook.react.bridge.UiThreadUtil;
import com.facebook.react.common.annotations.internal.LegacyArchitecture;
import com.facebook.react.common.annotations.internal.LegacyArchitectureLogLevel;
import com.facebook.react.common.annotations.internal.LegacyArchitectureLogger;
import com.facebook.react.common.build.ReactBuildConfig;
import com.facebook.react.touch.JSResponderHandler;
import com.facebook.react.uimanager.layoutanimation.LayoutAnimationController;
@@ -68,6 +70,11 @@ import javax.annotation.concurrent.NotThreadSafe;
@LegacyArchitecture
public class NativeViewHierarchyManager {
static {
LegacyArchitectureLogger.assertWhenLegacyArchitectureMinifyingEnabled(
"NativeViewHierarchyManager", LegacyArchitectureLogLevel.WARNING);
}
private static final String TAG = NativeViewHierarchyManager.class.getSimpleName();
private final boolean DEBUG_MODE = ReactBuildConfig.DEBUG && false;
@@ -13,6 +13,8 @@ import com.facebook.infer.annotation.Nullsafe;
import com.facebook.react.bridge.Arguments;
import com.facebook.react.bridge.WritableMap;
import com.facebook.react.common.annotations.internal.LegacyArchitecture;
import com.facebook.react.common.annotations.internal.LegacyArchitectureLogLevel;
import com.facebook.react.common.annotations.internal.LegacyArchitectureLogger;
import com.facebook.react.uimanager.events.Event;
/** Event used to notify JS component about changes of its position or dimensions */
@@ -20,6 +22,11 @@ import com.facebook.react.uimanager.events.Event;
@LegacyArchitecture
public class OnLayoutEvent extends Event<OnLayoutEvent> {
static {
LegacyArchitectureLogger.assertWhenLegacyArchitectureMinifyingEnabled(
"OnLayoutEvent", LegacyArchitectureLogLevel.WARNING);
}
private static final Pools.SynchronizedPool<OnLayoutEvent> EVENTS_POOL =
new Pools.SynchronizedPool<>(20);
@@ -10,6 +10,8 @@ package com.facebook.react.uimanager;
import androidx.annotation.Nullable;
import com.facebook.infer.annotation.Assertions;
import com.facebook.react.common.annotations.internal.LegacyArchitecture;
import com.facebook.react.common.annotations.internal.LegacyArchitectureLogLevel;
import com.facebook.react.common.annotations.internal.LegacyArchitectureLogger;
import com.facebook.react.uimanager.annotations.ReactPropertyHolder;
import com.facebook.yoga.YogaAlign;
import com.facebook.yoga.YogaBaselineFunction;
@@ -64,6 +66,11 @@ public class ReactShadowNodeImpl implements ReactShadowNode<ReactShadowNodeImpl>
sYogaConfig = ReactYogaConfigProvider.INSTANCE.getYogaConfig();
}
static {
LegacyArchitectureLogger.assertWhenLegacyArchitectureMinifyingEnabled(
"ReactShadowNodeImpl", LegacyArchitectureLogLevel.WARNING);
}
private int mReactTag;
private @Nullable String mViewClassName;
private int mRootTag;
@@ -8,12 +8,16 @@
package com.facebook.react.uimanager
import com.facebook.react.common.annotations.internal.LegacyArchitecture
import com.facebook.react.common.annotations.internal.LegacyArchitectureLogger
import com.facebook.yoga.YogaConfig
import com.facebook.yoga.YogaConfigFactory
import com.facebook.yoga.YogaErrata
@LegacyArchitecture
internal object ReactYogaConfigProvider {
init {
LegacyArchitectureLogger.assertWhenLegacyArchitectureMinifyingEnabled("ReactYogaConfigProvider")
}
val yogaConfig: YogaConfig by
lazy(LazyThreadSafetyMode.NONE) {
@@ -12,6 +12,8 @@ import android.util.SparseBooleanArray;
import android.view.View;
import com.facebook.react.common.SingleThreadAsserter;
import com.facebook.react.common.annotations.internal.LegacyArchitecture;
import com.facebook.react.common.annotations.internal.LegacyArchitectureLogLevel;
import com.facebook.react.common.annotations.internal.LegacyArchitectureLogger;
/**
* Simple container class to keep track of {@link ReactShadowNode}s associated with a particular
@@ -20,6 +22,11 @@ import com.facebook.react.common.annotations.internal.LegacyArchitecture;
@LegacyArchitecture
class ShadowNodeRegistry {
static {
LegacyArchitectureLogger.assertWhenLegacyArchitectureMinifyingEnabled(
"ShadowNodeRegistry", LegacyArchitectureLogLevel.WARNING);
}
private final SparseArray<ReactShadowNode> mTagsToCSSNodes;
private final SparseBooleanArray mRootTags;
private final SingleThreadAsserter mThreadAsserter;
@@ -26,6 +26,8 @@ import com.facebook.react.bridge.SoftAssertions;
import com.facebook.react.bridge.UiThreadUtil;
import com.facebook.react.common.ReactConstants;
import com.facebook.react.common.annotations.internal.LegacyArchitecture;
import com.facebook.react.common.annotations.internal.LegacyArchitectureLogLevel;
import com.facebook.react.common.annotations.internal.LegacyArchitectureLogger;
import com.facebook.react.modules.core.ReactChoreographer;
import com.facebook.react.uimanager.debug.NotThreadSafeViewHierarchyUpdateDebugListener;
import com.facebook.systrace.Systrace;
@@ -49,6 +51,11 @@ import java.util.Map;
@LegacyArchitecture
public class UIViewOperationQueue {
static {
LegacyArchitectureLogger.assertWhenLegacyArchitectureMinifyingEnabled(
"UIViewOperationQueue", LegacyArchitectureLogLevel.WARNING);
}
public static final int DEFAULT_MIN_TIME_LEFT_IN_FRAME_FOR_NONBATCHED_OPERATION_MS = 8;
private static final String TAG = UIViewOperationQueue.class.getSimpleName();
@@ -19,6 +19,8 @@ import androidx.annotation.Nullable;
import com.facebook.react.bridge.ReadableMap;
import com.facebook.react.common.MapBuilder;
import com.facebook.react.common.annotations.internal.LegacyArchitecture;
import com.facebook.react.common.annotations.internal.LegacyArchitectureLogLevel;
import com.facebook.react.common.annotations.internal.LegacyArchitectureLogger;
import com.facebook.react.uimanager.IllegalViewOperationException;
import java.util.Map;
@@ -29,6 +31,11 @@ import java.util.Map;
@LegacyArchitecture
/* package */ abstract class AbstractLayoutAnimation {
static {
LegacyArchitectureLogger.assertWhenLegacyArchitectureMinifyingEnabled(
"AbstractLayoutAnimation", LegacyArchitectureLogLevel.WARNING);
}
// Forces animation to be playing 10x slower, used for debug purposes.
private static final boolean SLOWDOWN_ANIMATION_MODE = false;
@@ -17,6 +17,8 @@ import com.facebook.react.bridge.Callback;
import com.facebook.react.bridge.ReadableMap;
import com.facebook.react.bridge.UiThreadUtil;
import com.facebook.react.common.annotations.internal.LegacyArchitecture;
import com.facebook.react.common.annotations.internal.LegacyArchitectureLogLevel;
import com.facebook.react.common.annotations.internal.LegacyArchitectureLogger;
import javax.annotation.concurrent.NotThreadSafe;
/**
@@ -28,6 +30,11 @@ import javax.annotation.concurrent.NotThreadSafe;
@LegacyArchitecture
public class LayoutAnimationController {
static {
LegacyArchitectureLogger.assertWhenLegacyArchitectureMinifyingEnabled(
"LayoutAnimationController", LegacyArchitectureLogLevel.WARNING);
}
private final AbstractLayoutAnimation mLayoutCreateAnimation = new LayoutCreateAnimation();
private final AbstractLayoutAnimation mLayoutUpdateAnimation = new LayoutUpdateAnimation();
private final AbstractLayoutAnimation mLayoutDeleteAnimation = new LayoutDeleteAnimation();
@@ -8,6 +8,8 @@
package com.facebook.react.uimanager.layoutanimation
import com.facebook.react.common.annotations.internal.LegacyArchitecture
import com.facebook.react.common.annotations.internal.LegacyArchitectureLogLevel
import com.facebook.react.common.annotations.internal.LegacyArchitectureLogger
/**
* Enum representing the different animation type that can be specified in layout animation config.
@@ -19,6 +21,11 @@ internal enum class LayoutAnimationType {
DELETE;
companion object {
init {
LegacyArchitectureLogger.assertWhenLegacyArchitectureMinifyingEnabled(
"LayoutAnimationType", LegacyArchitectureLogLevel.WARNING)
}
@JvmStatic
fun toString(type: LayoutAnimationType): String {
return when (type) {
@@ -8,6 +8,8 @@
package com.facebook.react.uimanager.layoutanimation
import com.facebook.react.common.annotations.internal.LegacyArchitecture
import com.facebook.react.common.annotations.internal.LegacyArchitectureLogLevel
import com.facebook.react.common.annotations.internal.LegacyArchitectureLogger
/**
* Class responsible for handling layout view creation animation, applied to view whenever a valid
@@ -16,5 +18,10 @@ import com.facebook.react.common.annotations.internal.LegacyArchitecture
@LegacyArchitecture
internal class LayoutCreateAnimation : BaseLayoutAnimation() {
init {
LegacyArchitectureLogger.assertWhenLegacyArchitectureMinifyingEnabled(
"LayoutCreateAnimation", LegacyArchitectureLogLevel.WARNING)
}
override fun isReverse(): Boolean = false
}
@@ -8,6 +8,8 @@
package com.facebook.react.uimanager.layoutanimation
import com.facebook.react.common.annotations.internal.LegacyArchitecture
import com.facebook.react.common.annotations.internal.LegacyArchitectureLogLevel
import com.facebook.react.common.annotations.internal.LegacyArchitectureLogger
/**
* Class responsible for handling layout view deletion animation, applied to view whenever a valid
@@ -16,5 +18,10 @@ import com.facebook.react.common.annotations.internal.LegacyArchitecture
@LegacyArchitecture
internal class LayoutDeleteAnimation : BaseLayoutAnimation() {
init {
LegacyArchitectureLogger.assertWhenLegacyArchitectureMinifyingEnabled(
"LayoutDeleteAnimation", LegacyArchitectureLogLevel.WARNING)
}
override fun isReverse(): Boolean = true
}
@@ -11,6 +11,8 @@ import android.view.View
import android.view.animation.Animation
import android.view.animation.TranslateAnimation
import com.facebook.react.common.annotations.internal.LegacyArchitecture
import com.facebook.react.common.annotations.internal.LegacyArchitectureLogLevel
import com.facebook.react.common.annotations.internal.LegacyArchitectureLogger
/**
* Class responsible for handling layout update animation, applied to view whenever a valid config
@@ -19,6 +21,11 @@ import com.facebook.react.common.annotations.internal.LegacyArchitecture
@LegacyArchitecture
internal class LayoutUpdateAnimation : AbstractLayoutAnimation() {
init {
LegacyArchitectureLogger.assertWhenLegacyArchitectureMinifyingEnabled(
"LayoutUpdateAnimation", LegacyArchitectureLogLevel.WARNING)
}
internal override fun isValid(): Boolean = mDurationMs > 0
internal override fun createAnimationImpl(
@@ -12,6 +12,8 @@ import android.view.animation.Animation;
import android.view.animation.Transformation;
import com.facebook.infer.annotation.Nullsafe;
import com.facebook.react.common.annotations.internal.LegacyArchitecture;
import com.facebook.react.common.annotations.internal.LegacyArchitectureLogLevel;
import com.facebook.react.common.annotations.internal.LegacyArchitectureLogger;
/**
* Animation responsible for updating opacity of a view. It should ideally use hardware texture to
@@ -21,6 +23,11 @@ import com.facebook.react.common.annotations.internal.LegacyArchitecture;
@LegacyArchitecture
class OpacityAnimation extends Animation {
static {
LegacyArchitectureLogger.assertWhenLegacyArchitectureMinifyingEnabled(
"OpacityAnimation", LegacyArchitectureLogLevel.WARNING);
}
static class OpacityAnimationListener implements Animation.AnimationListener {
private final View mView;
@@ -12,6 +12,8 @@ import com.facebook.react.bridge.ReadableMap
import com.facebook.react.bridge.ReadableType
import com.facebook.react.bridge.ReadableType.Number
import com.facebook.react.common.annotations.internal.LegacyArchitecture
import com.facebook.react.common.annotations.internal.LegacyArchitectureLogLevel
import com.facebook.react.common.annotations.internal.LegacyArchitectureLogger
/** Simple spring interpolator */
// TODO(7613736): Improve spring interpolator with friction and damping variable support
@@ -24,6 +26,11 @@ internal class SimpleSpringInterpolator : Interpolator {
_springDamping = springDamping
}
init {
LegacyArchitectureLogger.assertWhenLegacyArchitectureMinifyingEnabled(
"SimpleSpringInterpolator", LegacyArchitectureLogLevel.WARNING)
}
override fun getInterpolation(input: Float): Float =
// Using mSpringDamping in this equation is not really the exact mathematical springDamping,
// but a good approximation