Skip to content

Commit f1f2788

Browse files
cortinicofacebook-github-bot
authored andcommitted
Re-add an eventName field inside Event.kt to unbreak several libraries (#50787)
Summary: Pull Request resolved: #50787 Converting Event from Java to Kotlin resulted in a number of breaking changes for Kotlin libraries that were using an `.eventName` accessors from the `getEventName()` Java method. This diff re-adds the `eventName` property without backing field. This could potentially be disruptive in OSS but only one library is affected: https://github.com/search?type=code&q=%22import+com.facebook.react.uimanager.events.Event%22+%22val+eventName%3A%22+%22%3A+Event%3C%22+language%3AKotlin+path%3A*Event.kt+NOT+is%3Afork+NOT+org%3Afacebook+NOT+path%3AInteropEvent.kt Changelog: [Internal] [Changed] - Reviewed By: cipolleschi Differential Revision: D73193202 fbshipit-source-id: a69159950e1ef275c93f265f264525236a19d1db
1 parent 16a61bf commit f1f2788

File tree

3 files changed

+11
-5
lines changed

3 files changed

+11
-5
lines changed

packages/react-native/ReactAndroid/api/ReactAndroid.api

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5004,6 +5004,7 @@ public abstract class com/facebook/react/uimanager/events/Event {
50045004
protected final fun init (I)V
50055005
protected final fun init (II)V
50065006
protected final fun init (IIJ)V
5007+
public final fun internal_getEventNameCompat ()Ljava/lang/String;
50075008
public final fun isInitialized ()Z
50085009
public fun onDispose ()V
50095010
}

packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/interop/InteropEvent.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,13 @@ import com.facebook.react.uimanager.events.Event
1919
*/
2020
@LegacyArchitecture
2121
internal class InteropEvent(
22-
@get:JvmName("eventName") val eventName: String,
22+
@get:JvmName("eventName") val interopEventName: String,
2323
@get:JvmName("eventData") val eventData: WritableMap?,
2424
surfaceId: Int,
2525
viewTag: Int
2626
) : Event<InteropEvent>(surfaceId, viewTag) {
2727

28-
override fun getEventName(): String = eventName
28+
override fun getEventName(): String = interopEventName
2929

3030
override fun getEventData(): WritableMap? = eventData
3131

packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/Event.kt

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -117,13 +117,18 @@ public abstract class Event<T : Event<T>> {
117117
/** @return the name of this event as registered in JS */
118118
public abstract fun getEventName(): String
119119

120+
/** Property added for backward compatibility with property accessors */
121+
@get:JvmName("internal_getEventNameCompat")
122+
public val eventName: String
123+
get() = getEventName()
124+
120125
public open val eventAnimationDriverMatchSpec: EventAnimationDriverMatchSpec?
121126
get() {
122127
if (eventAnimationDriverMatchSpecCached == null) {
123128
eventAnimationDriverMatchSpecCached =
124129
object : EventAnimationDriverMatchSpec {
125130
override fun match(viewTagRhs: Int, eventNameRhs: String): Boolean {
126-
return viewTag == viewTagRhs && getEventName() == eventNameRhs
131+
return viewTag == viewTagRhs && eventName == eventNameRhs
127132
}
128133
}
129134
}
@@ -137,7 +142,7 @@ public abstract class Event<T : Event<T>> {
137142
*/
138143
@Deprecated("Prefer to override getEventData instead")
139144
public open fun dispatch(rctEventEmitter: RCTEventEmitter) {
140-
rctEventEmitter.receiveEvent(viewTag, getEventName(), getEventData())
145+
rctEventEmitter.receiveEvent(viewTag, eventName, getEventData())
141146
}
142147

143148
/** Can be overridden by classes when no custom logic for dispatching is needed. */
@@ -181,7 +186,7 @@ public abstract class Event<T : Event<T>> {
181186
rctEventEmitter.receiveEvent(
182187
surfaceId,
183188
viewTag,
184-
getEventName(),
189+
eventName,
185190
canCoalesce(),
186191
getCoalescingKey().toInt(),
187192
getEventData(),

0 commit comments

Comments
 (0)