From 25ee3e805d71eee2489b12b1a7ce46880271d044 Mon Sep 17 00:00:00 2001 From: David Vacca Date: Mon, 16 Dec 2024 18:39:12 -0800 Subject: [PATCH] Migrate ReactOverflowView to kotlin (#47750) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/47750 Migrate ReactOverflowView to kotlin changelog: [internal] internal Reviewed By: NickGerleman Differential Revision: D66217252 fbshipit-source-id: 8cd642dee2077006eab10d718a1887a77fd029a7 --- .../react/uimanager/ReactOverflowView.java | 25 ------------------- .../react/uimanager/ReactOverflowView.kt | 21 ++++++++++++++++ .../react/views/view/ReactViewManager.kt | 2 +- 3 files changed, 22 insertions(+), 26 deletions(-) delete mode 100644 packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactOverflowView.java create mode 100644 packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactOverflowView.kt diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactOverflowView.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactOverflowView.java deleted file mode 100644 index 6958e361ac267e..00000000000000 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactOverflowView.java +++ /dev/null @@ -1,25 +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 android.view.View; -import androidx.annotation.Nullable; - -/** - * Interface that should be implemented by {@link View} subclasses that support {@code overflow} - * style. This allows the overflow information to be used by {@link TouchTargetHelper} to determine - * if a View is touchable. - */ -public interface ReactOverflowView { - /** - * Gets the overflow state of a view. If set, this should be one of {@link ViewProps#HIDDEN}, - * {@link ViewProps#VISIBLE} or {@link ViewProps#SCROLL}. - */ - @Nullable - String getOverflow(); -} diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactOverflowView.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactOverflowView.kt new file mode 100644 index 00000000000000..155715754b6e18 --- /dev/null +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactOverflowView.kt @@ -0,0 +1,21 @@ +/* + * 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 + +/** + * Interface that should be implemented by [View] subclasses that support [overflow] style. This + * allows the overflow information to be used by [TouchTargetHelper] to determine if a View is + * touchable. + */ +public interface ReactOverflowView { + /** + * Gets the overflow state of a view. If set, this should be one of [ViewProps#HIDDEN], + * [ViewProps#VISIBLE] or [ViewProps#SCROLL]. + */ + public fun getOverflow(): String? +} diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewManager.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewManager.kt index 9c87b54b06c579..3cb30f95e8acbb 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewManager.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewManager.kt @@ -303,7 +303,7 @@ public open class ReactViewManager : ReactClippingViewManager() @ReactProp(name = ViewProps.OVERFLOW) public open fun setOverflow(view: ReactViewGroup, overflow: String?) { - view.overflow = overflow + view.setOverflow(overflow) } @ReactProp(name = "backfaceVisibility")