From 4dd47eeb9ea91455efcd0db23a02162ab338a53f Mon Sep 17 00:00:00 2001 From: Gabriel Donadel Date: Mon, 14 Oct 2024 04:43:52 -0700 Subject: [PATCH] Make PackagerConnectionSettings class open again (#47005) Summary: When migrating `PackagerConnectionSettings` from Java to Kotlin in https://github.com/facebook/react-native/pull/45800 the new class ended up being declared as final, causing a breaking change in 0.76. We should add the `open` directive to `PackagerConnectionSettings.kt` to restore the old behavior. That would be crucial for the `expo-dev-client` package, given that Expo needs to be able to extend this class in order to overwrite the `debugServerHost` value. ## Changelog: [ANDROID] [FIXED] - Make PackagerConnectionSettings class open again Pull Request resolved: https://github.com/facebook/react-native/pull/47005 Test Plan: Run RNTester on Android Reviewed By: huntie Differential Revision: D64323645 Pulled By: cortinico fbshipit-source-id: 6870a3dee929ba664e4c402f321f84af7704f892 --- packages/react-native/ReactAndroid/api/ReactAndroid.api | 6 +++--- .../react/packagerconnection/PackagerConnectionSettings.kt | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/react-native/ReactAndroid/api/ReactAndroid.api b/packages/react-native/ReactAndroid/api/ReactAndroid.api index 77eb9602e6b..0e84d913e05 100644 --- a/packages/react-native/ReactAndroid/api/ReactAndroid.api +++ b/packages/react-native/ReactAndroid/api/ReactAndroid.api @@ -3770,13 +3770,13 @@ public abstract class com/facebook/react/packagerconnection/NotificationOnlyHand public final fun onRequest (Ljava/lang/Object;Lcom/facebook/react/packagerconnection/Responder;)V } -public final class com/facebook/react/packagerconnection/PackagerConnectionSettings { +public class com/facebook/react/packagerconnection/PackagerConnectionSettings { public fun (Landroid/content/Context;)V public final fun getAdditionalOptionsForPackager ()Ljava/util/Map; - public final fun getDebugServerHost ()Ljava/lang/String; + public fun getDebugServerHost ()Ljava/lang/String; public final fun getPackageName ()Ljava/lang/String; public final fun setAdditionalOptionForPackager (Ljava/lang/String;Ljava/lang/String;)V - public final fun setDebugServerHost (Ljava/lang/String;)V + public fun setDebugServerHost (Ljava/lang/String;)V } public final class com/facebook/react/packagerconnection/ReconnectingWebSocket : okhttp3/WebSocketListener { diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/packagerconnection/PackagerConnectionSettings.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/packagerconnection/PackagerConnectionSettings.kt index d6c9a1ddd59..d31b85aa912 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/packagerconnection/PackagerConnectionSettings.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/packagerconnection/PackagerConnectionSettings.kt @@ -15,13 +15,13 @@ import android.preference.PreferenceManager import com.facebook.common.logging.FLog import com.facebook.react.modules.systeminfo.AndroidInfoHelpers -public class PackagerConnectionSettings(private val appContext: Context) { +public open class PackagerConnectionSettings(private val appContext: Context) { private val preferences: SharedPreferences = PreferenceManager.getDefaultSharedPreferences(appContext) public val packageName: String = appContext.packageName private val _additionalOptionsForPackager: MutableMap = mutableMapOf() - public var debugServerHost: String + public open var debugServerHost: String get() { // Check host setting first. If empty try to detect emulator type and use default // hostname for those