From 7c7d64496d1e03048435448734971297839dab64 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateo=20Guzm=C3=A1n?= Date: Mon, 24 Mar 2025 10:45:31 -0700 Subject: [PATCH] Migrate `ReactContentSizeChangedEvent` to Kotlin (#50204) Summary: Migrate com.facebook.react.views.textinput.ReactContentSizeChangedEvent to Kotlin. ## Changelog: [INTERNAL] - Migrate com.facebook.react.views.textinput.ReactContentSizeChangedEvent to Kotlin Pull Request resolved: https://github.com/facebook/react-native/pull/50204 Test Plan: ```bash yarn test-android yarn android ``` Reviewed By: javache Differential Revision: D71681505 Pulled By: arushikesarwani94 fbshipit-source-id: f4d63251afc48652032e9beaf60073797f2bb246 --- .../ReactAndroid/api/ReactAndroid.api | 7 ++- .../ReactContentSizeChangedEvent.java | 54 ------------------- .../textinput/ReactContentSizeChangedEvent.kt | 50 +++++++++++++++++ 3 files changed, 55 insertions(+), 56 deletions(-) delete mode 100644 packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactContentSizeChangedEvent.java create mode 100644 packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactContentSizeChangedEvent.kt diff --git a/packages/react-native/ReactAndroid/api/ReactAndroid.api b/packages/react-native/ReactAndroid/api/ReactAndroid.api index ed94ab49fb7..9c692135af2 100644 --- a/packages/react-native/ReactAndroid/api/ReactAndroid.api +++ b/packages/react-native/ReactAndroid/api/ReactAndroid.api @@ -7034,14 +7034,17 @@ public abstract interface class com/facebook/react/views/textinput/ContentSizeWa public abstract fun onLayout ()V } -public class com/facebook/react/views/textinput/ReactContentSizeChangedEvent : com/facebook/react/uimanager/events/Event { +public final class com/facebook/react/views/textinput/ReactContentSizeChangedEvent : com/facebook/react/uimanager/events/Event { + public static final field Companion Lcom/facebook/react/views/textinput/ReactContentSizeChangedEvent$Companion; public static final field EVENT_NAME Ljava/lang/String; public fun (IFF)V public fun (IIFF)V - protected fun getEventData ()Lcom/facebook/react/bridge/WritableMap; public fun getEventName ()Ljava/lang/String; } +public final class com/facebook/react/views/textinput/ReactContentSizeChangedEvent$Companion { +} + public class com/facebook/react/views/textinput/ReactEditText : androidx/appcompat/widget/AppCompatEditText { public static final field DEBUG_MODE Z protected field mContainsImages Z diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactContentSizeChangedEvent.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactContentSizeChangedEvent.java deleted file mode 100644 index 1180910ded7..00000000000 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactContentSizeChangedEvent.java +++ /dev/null @@ -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.views.textinput; - -import androidx.annotation.Nullable; -import com.facebook.react.bridge.Arguments; -import com.facebook.react.bridge.WritableMap; -import com.facebook.react.uimanager.common.ViewUtil; -import com.facebook.react.uimanager.events.Event; - -/** Event emitted by EditText native view when content size changes. */ -public class ReactContentSizeChangedEvent extends Event { - - public static final String EVENT_NAME = "topContentSizeChange"; - - private float mContentWidth; - private float mContentHeight; - - @Deprecated - public ReactContentSizeChangedEvent(int viewId, float contentSizeWidth, float contentSizeHeight) { - this(ViewUtil.NO_SURFACE_ID, viewId, contentSizeWidth, contentSizeHeight); - } - - public ReactContentSizeChangedEvent( - int surfaceId, int viewId, float contentSizeWidth, float contentSizeHeight) { - super(surfaceId, viewId); - mContentWidth = contentSizeWidth; - mContentHeight = contentSizeHeight; - } - - @Override - public String getEventName() { - return EVENT_NAME; - } - - @Nullable - @Override - protected WritableMap getEventData() { - WritableMap eventData = Arguments.createMap(); - - WritableMap contentSize = Arguments.createMap(); - contentSize.putDouble("width", mContentWidth); - contentSize.putDouble("height", mContentHeight); - eventData.putMap("contentSize", contentSize); - - eventData.putInt("target", getViewTag()); - return eventData; - } -} diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactContentSizeChangedEvent.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactContentSizeChangedEvent.kt new file mode 100644 index 00000000000..4c39cf2d547 --- /dev/null +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactContentSizeChangedEvent.kt @@ -0,0 +1,50 @@ +/* + * 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.views.textinput + +import com.facebook.react.bridge.Arguments +import com.facebook.react.bridge.WritableMap +import com.facebook.react.uimanager.common.ViewUtil +import com.facebook.react.uimanager.events.Event + +/** Event emitted by EditText native view when content size changes. */ +public class ReactContentSizeChangedEvent( + surfaceId: Int, + viewId: Int, + private val contentWidth: Float, + private val contentHeight: Float +) : Event(surfaceId, viewId) { + @Deprecated( + "Use the constructor with surfaceId instead", + ReplaceWith( + "ReactContentSizeChangedEvent(surfaceId, viewId, contentSizeWidth, contentSizeHeight)")) + public constructor( + viewId: Int, + contentSizeWidth: Float, + contentSizeHeight: Float + ) : this(ViewUtil.NO_SURFACE_ID, viewId, contentSizeWidth, contentSizeHeight) + + override fun getEventName(): String = EVENT_NAME + + override fun getEventData(): WritableMap? { + val contentSize = + Arguments.createMap().apply { + putDouble("width", contentWidth.toDouble()) + putDouble("height", contentHeight.toDouble()) + } + + return Arguments.createMap().apply { + putMap("contentSize", contentSize) + putInt("target", viewTag) + } + } + + public companion object { + public const val EVENT_NAME: String = "topContentSizeChange" + } +}