mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
Migrate fabric.mounting.mountitems subset to Kotlin (#44440)
Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/44440 # Changelog: [Internal] - As in the title, note that there are more files there to migrate, will come separately, to make reviewing easier. Reviewed By: javache Differential Revision: D57046953 fbshipit-source-id: e45316da1ed9caaa4daafa96dfabfd374926bd73
This commit is contained in:
committed by
Facebook GitHub Bot
parent
b63a523c16
commit
12110a4d94
@@ -2802,13 +2802,13 @@ public abstract interface class com/facebook/react/fabric/mounting/mountitems/Mo
|
||||
public abstract fun getSurfaceId ()I
|
||||
}
|
||||
|
||||
public class com/facebook/react/fabric/mounting/mountitems/MountItemFactory {
|
||||
public fun <init> ()V
|
||||
public static fun createDispatchCommandMountItem (IIILcom/facebook/react/bridge/ReadableArray;)Lcom/facebook/react/fabric/mounting/mountitems/DispatchCommandMountItem;
|
||||
public static fun createDispatchCommandMountItem (IILjava/lang/String;Lcom/facebook/react/bridge/ReadableArray;)Lcom/facebook/react/fabric/mounting/mountitems/DispatchCommandMountItem;
|
||||
public static fun createIntBufferBatchMountItem (I[I[Ljava/lang/Object;I)Lcom/facebook/react/fabric/mounting/mountitems/MountItem;
|
||||
public static fun createPreAllocateViewMountItem (IILjava/lang/String;Lcom/facebook/react/bridge/ReadableMap;Lcom/facebook/react/uimanager/StateWrapper;Lcom/facebook/react/fabric/events/EventEmitterWrapper;Z)Lcom/facebook/react/fabric/mounting/mountitems/MountItem;
|
||||
public static fun createSendAccessibilityEventMountItem (III)Lcom/facebook/react/fabric/mounting/mountitems/MountItem;
|
||||
public final class com/facebook/react/fabric/mounting/mountitems/MountItemFactory {
|
||||
public static final field INSTANCE Lcom/facebook/react/fabric/mounting/mountitems/MountItemFactory;
|
||||
public static final fun createDispatchCommandMountItem (IIILcom/facebook/react/bridge/ReadableArray;)Lcom/facebook/react/fabric/mounting/mountitems/DispatchCommandMountItem;
|
||||
public static final fun createDispatchCommandMountItem (IILjava/lang/String;Lcom/facebook/react/bridge/ReadableArray;)Lcom/facebook/react/fabric/mounting/mountitems/DispatchCommandMountItem;
|
||||
public static final fun createIntBufferBatchMountItem (I[I[Ljava/lang/Object;I)Lcom/facebook/react/fabric/mounting/mountitems/MountItem;
|
||||
public static final fun createPreAllocateViewMountItem (IILjava/lang/String;Lcom/facebook/react/bridge/ReadableMap;Lcom/facebook/react/uimanager/StateWrapper;Lcom/facebook/react/fabric/events/EventEmitterWrapper;Z)Lcom/facebook/react/fabric/mounting/mountitems/MountItem;
|
||||
public static final fun createSendAccessibilityEventMountItem (III)Lcom/facebook/react/fabric/mounting/mountitems/MountItem;
|
||||
}
|
||||
|
||||
public abstract interface class com/facebook/react/interfaces/TaskInterface {
|
||||
|
||||
-16
@@ -1,16 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
package com.facebook.react.fabric.mounting.mountitems;
|
||||
|
||||
public interface BatchMountItem extends MountItem {
|
||||
|
||||
/**
|
||||
* @return if the BatchMountItem contains any MountItem
|
||||
*/
|
||||
boolean isBatchEmpty();
|
||||
}
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
/*
|
||||
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
package com.facebook.react.fabric.mounting.mountitems
|
||||
|
||||
public interface BatchMountItem : MountItem {
|
||||
/** @return if the BatchMountItem contains any MountItem */
|
||||
public fun isBatchEmpty(): Boolean
|
||||
}
|
||||
-54
@@ -1,54 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
package com.facebook.react.fabric.mounting.mountitems;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import com.facebook.infer.annotation.Nullsafe;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* Utility class for Fabric components, this will be removed
|
||||
*
|
||||
* <p>TODO T97384889: remove this class when the component names are unified between JS - Android -
|
||||
* iOS - C++
|
||||
*/
|
||||
@Nullsafe(Nullsafe.Mode.LOCAL)
|
||||
class FabricNameComponentMapping {
|
||||
|
||||
private static @NonNull final Map<String, String> sComponentNames = new HashMap<>();
|
||||
|
||||
static {
|
||||
// TODO T97384889: unify component names between JS - Android - iOS - C++
|
||||
sComponentNames.put("View", "RCTView");
|
||||
sComponentNames.put("Image", "RCTImageView");
|
||||
sComponentNames.put("ScrollView", "RCTScrollView");
|
||||
sComponentNames.put("Slider", "RCTSlider");
|
||||
sComponentNames.put("ModalHostView", "RCTModalHostView");
|
||||
sComponentNames.put("Paragraph", "RCTText");
|
||||
sComponentNames.put("Text", "RCText");
|
||||
sComponentNames.put("RawText", "RCTRawText");
|
||||
sComponentNames.put("ActivityIndicatorView", "AndroidProgressBar");
|
||||
sComponentNames.put("ShimmeringView", "RKShimmeringView");
|
||||
sComponentNames.put("TemplateView", "RCTTemplateView");
|
||||
sComponentNames.put("AxialGradientView", "RCTAxialGradientView");
|
||||
sComponentNames.put("Video", "RCTVideo");
|
||||
sComponentNames.put("Map", "RCTMap");
|
||||
sComponentNames.put("WebView", "RCTWebView");
|
||||
sComponentNames.put("Keyframes", "RCTKeyframes");
|
||||
sComponentNames.put("ImpressionTrackingView", "RCTImpressionTrackingView");
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the name of component in the Fabric environment
|
||||
*/
|
||||
static String getFabricComponentName(String componentName) {
|
||||
String component = sComponentNames.get(componentName);
|
||||
return component != null ? component : componentName;
|
||||
}
|
||||
}
|
||||
+45
@@ -0,0 +1,45 @@
|
||||
/*
|
||||
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
package com.facebook.react.fabric.mounting.mountitems
|
||||
|
||||
/**
|
||||
* Utility class for Fabric components, this will be removed
|
||||
*
|
||||
* TODO T97384889: remove this class when the component names are unified between JS - Android -
|
||||
* iOS - C++
|
||||
*/
|
||||
internal object FabricNameComponentMapping {
|
||||
private val componentNames: Map<String, String> =
|
||||
mapOf(
|
||||
// TODO T97384889: unify component names between JS - Android - iOS - C++
|
||||
"View" to "RCTView",
|
||||
"Image" to "RCTImageView",
|
||||
"ScrollView" to "RCTScrollView",
|
||||
"Slider" to "RCTSlider",
|
||||
"ModalHostView" to "RCTModalHostView",
|
||||
"Paragraph" to "RCTText",
|
||||
"Text" to "RCText",
|
||||
"RawText" to "RCTRawText",
|
||||
"ActivityIndicatorView" to "AndroidProgressBar",
|
||||
"ShimmeringView" to "RKShimmeringView",
|
||||
"TemplateView" to "RCTTemplateView",
|
||||
"AxialGradientView" to "RCTAxialGradientView",
|
||||
"Video" to "RCTVideo",
|
||||
"Map" to "RCTMap",
|
||||
"WebView" to "RCTWebView",
|
||||
"Keyframes" to "RCTKeyframes",
|
||||
"ImpressionTrackingView" to "RCTImpressionTrackingView",
|
||||
)
|
||||
|
||||
/** @return the name of component in the Fabric environment */
|
||||
@JvmStatic
|
||||
fun getFabricComponentName(componentName: String): String {
|
||||
val component = componentNames[componentName]
|
||||
return component ?: componentName
|
||||
}
|
||||
}
|
||||
-25
@@ -1,25 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
package com.facebook.react.fabric.mounting.mountitems;
|
||||
|
||||
import androidx.annotation.AnyThread;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.UiThread;
|
||||
import com.facebook.proguard.annotations.DoNotStrip;
|
||||
import com.facebook.react.fabric.mounting.MountingManager;
|
||||
|
||||
@DoNotStrip
|
||||
public interface MountItem {
|
||||
|
||||
/** Execute this {@link MountItem} into the operation queue received by parameter. */
|
||||
@UiThread
|
||||
void execute(@NonNull MountingManager mountingManager);
|
||||
|
||||
@AnyThread
|
||||
int getSurfaceId();
|
||||
}
|
||||
+21
@@ -0,0 +1,21 @@
|
||||
/*
|
||||
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
package com.facebook.react.fabric.mounting.mountitems
|
||||
|
||||
import androidx.annotation.AnyThread
|
||||
import androidx.annotation.UiThread
|
||||
import com.facebook.proguard.annotations.DoNotStripAny
|
||||
import com.facebook.react.fabric.mounting.MountingManager
|
||||
|
||||
@DoNotStripAny
|
||||
public interface MountItem {
|
||||
/** Execute this [MountItem] into the operation queue received by parameter. */
|
||||
@UiThread public fun execute(mountingManager: MountingManager)
|
||||
|
||||
@AnyThread public fun getSurfaceId(): Int
|
||||
}
|
||||
-69
@@ -1,69 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
package com.facebook.react.fabric.mounting.mountitems;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import com.facebook.infer.annotation.Nullsafe;
|
||||
import com.facebook.react.bridge.ReadableArray;
|
||||
import com.facebook.react.bridge.ReadableMap;
|
||||
import com.facebook.react.fabric.events.EventEmitterWrapper;
|
||||
import com.facebook.react.uimanager.StateWrapper;
|
||||
|
||||
/** Factory class that expose creation of {@link MountItem} */
|
||||
@Nullsafe(Nullsafe.Mode.LOCAL)
|
||||
public class MountItemFactory {
|
||||
|
||||
/**
|
||||
* @return a {@link DispatchCommandMountItem} for commands identified by an int
|
||||
*/
|
||||
public static DispatchCommandMountItem createDispatchCommandMountItem(
|
||||
int surfaceId, int reactTag, int commandId, @Nullable ReadableArray commandArgs) {
|
||||
return new DispatchIntCommandMountItem(surfaceId, reactTag, commandId, commandArgs);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return a {@link DispatchCommandMountItem} for commands identified by a String
|
||||
*/
|
||||
public static DispatchCommandMountItem createDispatchCommandMountItem(
|
||||
int surfaceId, int reactTag, @NonNull String commandId, @Nullable ReadableArray commandArgs) {
|
||||
return new DispatchStringCommandMountItem(surfaceId, reactTag, commandId, commandArgs);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return a {@link MountItem} that will control the execution of an AccessibilityEvent
|
||||
*/
|
||||
public static MountItem createSendAccessibilityEventMountItem(
|
||||
int surfaceId, int reactTag, int eventType) {
|
||||
return new SendAccessibilityEventMountItem(surfaceId, reactTag, eventType);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return a {@link MountItem} that will be used to preallocate views
|
||||
*/
|
||||
public static MountItem createPreAllocateViewMountItem(
|
||||
int surfaceId,
|
||||
int reactTag,
|
||||
@NonNull String component,
|
||||
@Nullable ReadableMap props,
|
||||
@Nullable StateWrapper stateWrapper,
|
||||
@Nullable EventEmitterWrapper eventEmitterWrapper,
|
||||
boolean isLayoutable) {
|
||||
return new PreAllocateViewMountItem(
|
||||
surfaceId, reactTag, component, props, stateWrapper, eventEmitterWrapper, isLayoutable);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return a {@link MountItem} that will be read and execute a collection of MountItems serialized
|
||||
* in the int[] and Object[] received by parameter
|
||||
*/
|
||||
public static MountItem createIntBufferBatchMountItem(
|
||||
int surfaceId, int[] intBuf, Object[] objBuf, int commitNumber) {
|
||||
return new IntBufferBatchMountItem(surfaceId, intBuf, objBuf, commitNumber);
|
||||
}
|
||||
}
|
||||
+70
@@ -0,0 +1,70 @@
|
||||
/*
|
||||
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
package com.facebook.react.fabric.mounting.mountitems
|
||||
|
||||
import com.facebook.react.bridge.ReadableArray
|
||||
import com.facebook.react.bridge.ReadableMap
|
||||
import com.facebook.react.fabric.events.EventEmitterWrapper
|
||||
import com.facebook.react.uimanager.StateWrapper
|
||||
|
||||
/** Factory class that expose creation of [MountItem] */
|
||||
public object MountItemFactory {
|
||||
/** @return a [DispatchCommandMountItem] for commands identified by an int */
|
||||
@JvmStatic
|
||||
public fun createDispatchCommandMountItem(
|
||||
surfaceId: Int,
|
||||
reactTag: Int,
|
||||
commandId: Int,
|
||||
commandArgs: ReadableArray?
|
||||
): DispatchCommandMountItem =
|
||||
DispatchIntCommandMountItem(surfaceId, reactTag, commandId, commandArgs)
|
||||
|
||||
/** @return a [DispatchCommandMountItem] for commands identified by a String */
|
||||
@JvmStatic
|
||||
public fun createDispatchCommandMountItem(
|
||||
surfaceId: Int,
|
||||
reactTag: Int,
|
||||
commandId: String,
|
||||
commandArgs: ReadableArray?
|
||||
): DispatchCommandMountItem =
|
||||
DispatchStringCommandMountItem(surfaceId, reactTag, commandId, commandArgs)
|
||||
|
||||
/** @return a [MountItem] that will control the execution of an AccessibilityEvent */
|
||||
@JvmStatic
|
||||
public fun createSendAccessibilityEventMountItem(
|
||||
surfaceId: Int,
|
||||
reactTag: Int,
|
||||
eventType: Int
|
||||
): MountItem = SendAccessibilityEventMountItem(surfaceId, reactTag, eventType)
|
||||
|
||||
/** @return a [MountItem] that will be used to preallocate views */
|
||||
@JvmStatic
|
||||
public fun createPreAllocateViewMountItem(
|
||||
surfaceId: Int,
|
||||
reactTag: Int,
|
||||
component: String,
|
||||
props: ReadableMap?,
|
||||
stateWrapper: StateWrapper?,
|
||||
eventEmitterWrapper: EventEmitterWrapper?,
|
||||
isLayoutable: Boolean
|
||||
): MountItem =
|
||||
PreAllocateViewMountItem(
|
||||
surfaceId, reactTag, component, props, stateWrapper, eventEmitterWrapper, isLayoutable)
|
||||
|
||||
/**
|
||||
* @return a [MountItem] that will be read and execute a collection of MountItems serialized in
|
||||
* the int[] and Object[] received by parameter
|
||||
*/
|
||||
@JvmStatic
|
||||
public fun createIntBufferBatchMountItem(
|
||||
surfaceId: Int,
|
||||
intBuf: IntArray?,
|
||||
objBuf: Array<Any?>?,
|
||||
commitNumber: Int
|
||||
): MountItem = IntBufferBatchMountItem(surfaceId, intBuf, objBuf, commitNumber)
|
||||
}
|
||||
Reference in New Issue
Block a user