From 4bafd4734eaa3effb85064fbada08b2aeb77a572 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateo=20Guzm=C3=A1n?= Date: Wed, 19 Feb 2025 07:30:31 -0800 Subject: [PATCH] Migrate `ViewManagerResolver` & `UIManagerModuleListener` to Kotlin (#49501) Summary: Migrate two more `com.facebook.react.uimanager` interfaces to Kotlin ## Changelog: [INTERNAL] - Migrate ViewManagerResolver & UIManagerModuleListener to Kotlin Pull Request resolved: https://github.com/facebook/react-native/pull/49501 Test Plan: ```bash yarn test-android yarn android ``` Reviewed By: rshest Differential Revision: D69836273 Pulled By: cortinico fbshipit-source-id: cbdddc1ecf432127426fc07a9df6ed824db63e73 --- ...stener.java => UIManagerModuleListener.kt} | 11 +++----- .../react/uimanager/ViewManagerResolver.java | 26 ------------------- .../react/uimanager/ViewManagerResolver.kt | 20 ++++++++++++++ 3 files changed, 24 insertions(+), 33 deletions(-) rename packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/{UIManagerModuleListener.java => UIManagerModuleListener.kt} (60%) delete mode 100644 packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManagerResolver.java create mode 100644 packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManagerResolver.kt diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerModuleListener.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerModuleListener.kt similarity index 60% rename from packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerModuleListener.java rename to packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerModuleListener.kt index 66614b9e4ac..3648611ad9c 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerModuleListener.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerModuleListener.kt @@ -5,17 +5,14 @@ * LICENSE file in the root directory of this source tree. */ -package com.facebook.react.uimanager; +package com.facebook.react.uimanager -/** - * Listener used to hook into the UIManager update process. Deprecated: use UIManagerListener - * instead. This will be deleted in some future release. - */ -@Deprecated +/** Listener used to hook into the UIManager update process. */ +@Deprecated("Use UIManagerListener instead. This will be deleted in some future release.") public interface UIManagerModuleListener { /** * Called right before view updates are dispatched at the end of a batch. This is useful if a * module needs to add UIBlocks to the queue before it is flushed. */ - void willDispatchViewUpdates(UIManagerModule uiManager); + public fun willDispatchViewUpdates(uiManager: UIManagerModule) } diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManagerResolver.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManagerResolver.java deleted file mode 100644 index 8c69d6f0d5a..00000000000 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManagerResolver.java +++ /dev/null @@ -1,26 +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.uimanager; - -import java.util.Collection; -import javax.annotation.Nullable; - -/** Enables lazy discovery of a specific {@link ViewManager} by its name. */ -public interface ViewManagerResolver { - /** - * {@class UIManagerModule} class uses this method to get a ViewManager by its name. This is the - * same name that comes from JS by {@code UIManager.ViewManagerName} call. - */ - @Nullable - ViewManager getViewManager(String viewManagerName); - - /** - * Provides a list of view manager names to register in JS as {@code UIManager.ViewManagerName} - */ - Collection getViewManagerNames(); -} diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManagerResolver.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManagerResolver.kt new file mode 100644 index 00000000000..4309eaad937 --- /dev/null +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManagerResolver.kt @@ -0,0 +1,20 @@ +/* + * 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 + +/** Enables lazy discovery of a specific [ViewManager] by its name. */ +public interface ViewManagerResolver { + /** + * [UIManagerModule] class uses this method to get a [ViewManager] by its name. This is the same + * name that comes from JS by `UIManager.ViewManagerName` call. + */ + public fun getViewManager(viewManagerName: String): ViewManager<*, *>? + + /** Provides a list of view manager names to register in JS as `UIManager.ViewManagerName` */ + public fun getViewManagerNames(): Collection +}