From af577bab340bf58542133be9c5611a82387bf1aa Mon Sep 17 00:00:00 2001 From: Nicola Corti Date: Tue, 5 Nov 2024 14:06:05 -0800 Subject: [PATCH] Stable API - Make classes in `com.facebook.react.views.safeareaview` internal (#47375) Summary: This makes the following class internal: - ReactSafeAreaView - ReactSafeAreaViewManager Those classes should have not been exposed in the first place. Marked as breaking but no meaningful usages are available in OSS: https://github.com/search?type=code&q=NOT+is%3Afork+NOT+org%3Afacebook+com.facebook.react.views.safeareaview.ReactSafeAreaView Changelog: [Android] [Breaking] - Stable API - Make classes in `com.facebook.react.views.safeareaview` internal Reviewed By: javache Differential Revision: D65422197 --- .../ReactAndroid/api/ReactAndroid.api | 35 ------------------- .../ReactAndroid/gradle.properties | 8 ++++- .../views/safeareaview/ReactSafeAreaView.kt | 2 +- .../safeareaview/ReactSafeAreaViewManager.kt | 6 ++-- 4 files changed, 11 insertions(+), 40 deletions(-) diff --git a/packages/react-native/ReactAndroid/api/ReactAndroid.api b/packages/react-native/ReactAndroid/api/ReactAndroid.api index d8bf1e485e2798..44c17da8b2c76d 100644 --- a/packages/react-native/ReactAndroid/api/ReactAndroid.api +++ b/packages/react-native/ReactAndroid/api/ReactAndroid.api @@ -6862,41 +6862,6 @@ public final class com/facebook/react/views/progressbar/ReactProgressBarViewMana public final fun createProgressBar (Landroid/content/Context;I)Landroid/widget/ProgressBar; } -public final class com/facebook/react/views/safeareaview/ReactSafeAreaView : android/view/ViewGroup { - public fun (Lcom/facebook/react/uimanager/ThemedReactContext;)V - public final fun getReactContext ()Lcom/facebook/react/uimanager/ThemedReactContext; -} - -public final class com/facebook/react/views/safeareaview/ReactSafeAreaViewManager : com/facebook/react/uimanager/ViewGroupManager, com/facebook/react/viewmanagers/SafeAreaViewManagerInterface { - public static final field Companion Lcom/facebook/react/views/safeareaview/ReactSafeAreaViewManager$Companion; - public static final field REACT_CLASS Ljava/lang/String; - public fun ()V - public fun createShadowNodeInstance ()Lcom/facebook/react/uimanager/LayoutShadowNode; - public synthetic fun createShadowNodeInstance ()Lcom/facebook/react/uimanager/ReactShadowNode; - public synthetic fun createViewInstance (Lcom/facebook/react/uimanager/ThemedReactContext;)Landroid/view/View; - public fun getName ()Ljava/lang/String; - public fun getShadowNodeClass ()Ljava/lang/Class; - public synthetic fun updateState (Landroid/view/View;Lcom/facebook/react/uimanager/ReactStylesDiffMap;Lcom/facebook/react/uimanager/StateWrapper;)Ljava/lang/Object; - public fun updateState (Lcom/facebook/react/views/safeareaview/ReactSafeAreaView;Lcom/facebook/react/uimanager/ReactStylesDiffMap;Lcom/facebook/react/uimanager/StateWrapper;)Ljava/lang/Object; -} - -public class com/facebook/react/views/safeareaview/ReactSafeAreaViewManager$$PropsSetter : com/facebook/react/uimanager/ViewManagerPropertyUpdater$ViewManagerSetter { - public fun ()V - public fun getProperties (Ljava/util/Map;)V - public synthetic fun setProperty (Lcom/facebook/react/uimanager/ViewManager;Landroid/view/View;Ljava/lang/String;Ljava/lang/Object;)V - public fun setProperty (Lcom/facebook/react/views/safeareaview/ReactSafeAreaViewManager;Lcom/facebook/react/views/safeareaview/ReactSafeAreaView;Ljava/lang/String;Ljava/lang/Object;)V -} - -public final class com/facebook/react/views/safeareaview/ReactSafeAreaViewManager$Companion { -} - -public class com/facebook/react/views/safeareaview/ReactSafeAreaViewShadowNode$$PropsSetter : com/facebook/react/uimanager/ViewManagerPropertyUpdater$ShadowNodeSetter { - public fun ()V - public fun getProperties (Ljava/util/Map;)V - public synthetic fun setProperty (Lcom/facebook/react/uimanager/ReactShadowNode;Ljava/lang/String;Ljava/lang/Object;)V - public fun setProperty (Lcom/facebook/react/views/safeareaview/ReactSafeAreaViewShadowNode;Ljava/lang/String;Ljava/lang/Object;)V -} - public abstract interface class com/facebook/react/views/scroll/FpsListener { public abstract fun disable (Ljava/lang/String;)V public abstract fun enable (Ljava/lang/String;)V diff --git a/packages/react-native/ReactAndroid/gradle.properties b/packages/react-native/ReactAndroid/gradle.properties index 6c3ec6535d733d..6748b2bfd5cde4 100644 --- a/packages/react-native/ReactAndroid/gradle.properties +++ b/packages/react-native/ReactAndroid/gradle.properties @@ -8,8 +8,14 @@ android.useAndroidX=true react.internal.disableJavaVersionAlignment=true # Binary Compatibility Validator properties + +# We ignore: +# - BuildConfig classes because they are generated and not part of the public API +# - PropsSetter classes because they are generated by the Annotation processor which is not used in OSS binaryCompatibilityValidator.ignoredClasses=com.facebook.react.BuildConfig,\ -com.facebook.react.views.unimplementedview.ReactUnimplementedViewManager$$PropsSetter + com.facebook.react.views.safeareaview.ReactSafeAreaViewManager$$PropsSetter,\ + com.facebook.react.views.unimplementedview.ReactUnimplementedViewManager$$PropsSetter,\ + com.facebook.react.views.safeareaview.ReactSafeAreaViewShadowNode$$PropsSetter binaryCompatibilityValidator.ignoredPackages=com.facebook.debug,\ com.facebook.fbreact,\ diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/safeareaview/ReactSafeAreaView.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/safeareaview/ReactSafeAreaView.kt index 34c94d75a67456..2022305e0a7d82 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/safeareaview/ReactSafeAreaView.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/safeareaview/ReactSafeAreaView.kt @@ -20,7 +20,7 @@ import com.facebook.react.uimanager.StateWrapper import com.facebook.react.uimanager.ThemedReactContext import com.facebook.react.uimanager.UIManagerModule -public class ReactSafeAreaView(public val reactContext: ThemedReactContext) : +internal class ReactSafeAreaView(public val reactContext: ThemedReactContext) : ViewGroup(reactContext) { internal var stateWrapper: StateWrapper? = null diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/safeareaview/ReactSafeAreaViewManager.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/safeareaview/ReactSafeAreaViewManager.kt index f414b281ae7f75..1b00aa85109142 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/safeareaview/ReactSafeAreaViewManager.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/safeareaview/ReactSafeAreaViewManager.kt @@ -19,7 +19,7 @@ import com.facebook.react.viewmanagers.SafeAreaViewManagerInterface /** View manager for [ReactSafeAreaView] components. */ @ReactModule(name = ReactSafeAreaViewManager.REACT_CLASS) -public class ReactSafeAreaViewManager() : +internal class ReactSafeAreaViewManager() : ViewGroupManager(), SafeAreaViewManagerInterface { private val delegate: ViewManagerDelegate = SafeAreaViewManagerDelegate(this) @@ -45,7 +45,7 @@ public class ReactSafeAreaViewManager() : return null } - public companion object { - public const val REACT_CLASS: String = "RCTSafeAreaView" + internal companion object { + const val REACT_CLASS: String = "RCTSafeAreaView" } }