Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 8 additions & 5 deletions packages/react-native/ReactAndroid/api/ReactAndroid.api
Original file line number Diff line number Diff line change
Expand Up @@ -5547,12 +5547,13 @@ public abstract interface class com/facebook/react/uimanager/events/BatchEventDi
public abstract fun onBatchEventDispatched ()V
}

public class com/facebook/react/uimanager/events/BlackHoleEventDispatcher : com/facebook/react/uimanager/events/EventDispatcher {
public final class com/facebook/react/uimanager/events/BlackHoleEventDispatcher : com/facebook/react/uimanager/events/EventDispatcher {
public static final field Companion Lcom/facebook/react/uimanager/events/BlackHoleEventDispatcher$Companion;
public fun addBatchEventDispatchedListener (Lcom/facebook/react/uimanager/events/BatchEventDispatchedListener;)V
public fun addListener (Lcom/facebook/react/uimanager/events/EventDispatcherListener;)V
public fun dispatchAllEvents ()V
public fun dispatchEvent (Lcom/facebook/react/uimanager/events/Event;)V
public static fun get ()Lcom/facebook/react/uimanager/events/EventDispatcher;
public static final fun get ()Lcom/facebook/react/uimanager/events/EventDispatcher;
public fun onCatalystInstanceDestroyed ()V
public fun registerEventEmitter (ILcom/facebook/react/uimanager/events/RCTEventEmitter;)V
public fun registerEventEmitter (ILcom/facebook/react/uimanager/events/RCTModernEventEmitter;)V
Expand All @@ -5561,11 +5562,13 @@ public class com/facebook/react/uimanager/events/BlackHoleEventDispatcher : com/
public fun unregisterEventEmitter (I)V
}

public class com/facebook/react/uimanager/events/ContentSizeChangeEvent : com/facebook/react/uimanager/events/Event {
public static final field EVENT_NAME Ljava/lang/String;
public final class com/facebook/react/uimanager/events/BlackHoleEventDispatcher$Companion {
public final fun get ()Lcom/facebook/react/uimanager/events/EventDispatcher;
}

public final class com/facebook/react/uimanager/events/ContentSizeChangeEvent : com/facebook/react/uimanager/events/Event {
public fun <init> (III)V
public fun <init> (IIII)V
protected fun getEventData ()Lcom/facebook/react/bridge/WritableMap;
public fun getEventName ()Ljava/lang/String;
}

Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
/*
* 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.runtime.internal.bolts

import com.facebook.react.bridge.UiThreadUtil
import java.util.concurrent.Executor

/**
* This was created because the helper methods in [java.util.concurrent.Executors] do not work as
* people would normally expect.
*
* Normally, you would think that a cached thread pool would create new threads when necessary,
* queue them when the pool is full, and kill threads when they've been inactive for a certain
* period of time. This is not how [java.util.concurrent.Executors.newCachedThreadPool] works.
*
* Instead, [java.util.concurrent.Executors.newCachedThreadPool] executes all tasks on a new or
* cached thread immediately because corePoolSize is 0, SynchronousQueue is a queue with size 0 and
* maxPoolSize is Integer.MAX_VALUE. This is dangerous because it can create an unchecked amount of
* threads.
*/
internal object Executors {
@JvmField public val UI_THREAD: Executor = UIThreadExecutor()
@JvmField public val IMMEDIATE: Executor = ImmediateExecutor()

private class UIThreadExecutor : Executor {
override fun execute(command: Runnable) {
UiThreadUtil.runOnUiThread(command)
}
}

/**
* An [java.util.concurrent.Executor] that schedules tasks to run asynchronously on the UI thread.
*/
private class ImmediateExecutor : Executor {
override fun execute(command: Runnable) {
command.run()
}
}
}

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
/*
* 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.uimanager.events

import com.facebook.common.logging.FLog

/**
* A singleton class that overrides [EventDispatcher] with no-op methods, to be used by callers that
* expect an EventDispatcher when the instance doesn't exist.
*/
public class BlackHoleEventDispatcher private constructor() : EventDispatcher {
public override fun dispatchEvent(event: Event<*>) {
FLog.d(
"BlackHoleEventDispatcher",
"Trying to emit event to JS, but the React instance isn't ready. Event: ${event.eventName}")
}

public override fun dispatchAllEvents(): Unit = Unit

public override fun addListener(listener: EventDispatcherListener): Unit = Unit

public override fun removeListener(listener: EventDispatcherListener): Unit = Unit

public override fun addBatchEventDispatchedListener(
listener: BatchEventDispatchedListener
): Unit = Unit

public override fun removeBatchEventDispatchedListener(
listener: BatchEventDispatchedListener
): Unit = Unit

@Suppress("DEPRECATION")
public override fun registerEventEmitter(
uiManagerType: Int,
eventEmitter: RCTEventEmitter
): Unit = Unit

public override fun registerEventEmitter(
uiManagerType: Int,
eventEmitter: RCTModernEventEmitter
): Unit = Unit

public override fun unregisterEventEmitter(uiManagerType: Int): Unit = Unit

public override fun onCatalystInstanceDestroyed(): Unit = Unit

public companion object {
private val eventDispatcher: EventDispatcher = BlackHoleEventDispatcher()

public @JvmStatic fun get(): EventDispatcher = eventDispatcher
}
}

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
/*
* 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.
*/

@file:Suppress("DEPRECATION")

package com.facebook.react.uimanager.events

import com.facebook.react.bridge.Arguments
import com.facebook.react.bridge.WritableMap
import com.facebook.react.uimanager.PixelUtil.toDIPFromPixel

/** Event dispatched when total width or height of a view's children changes. */
@Deprecated("Please define your own event for custom components")
public class ContentSizeChangeEvent(
surfaceId: Int,
viewTag: Int,
private val width: Int,
private val height: Int
) : Event<ContentSizeChangeEvent>(surfaceId, viewTag) {
@Deprecated(
"Please specify surfaceId explicitly in the constructor.",
ReplaceWith("constructor(surfaceId, viewTag, width, height)"))
public constructor(viewTag: Int, width: Int, height: Int) : this(-1, viewTag, width, height)

public override fun getEventName(): String = "topContentSizeChange"

protected override fun getEventData(): WritableMap {
val res = Arguments.createMap()
res.putDouble("width", toDIPFromPixel(width.toFloat()).toDouble())
res.putDouble("height", toDIPFromPixel(height.toFloat()).toDouble())
return res
}
}