Skip to content

Commit 0a95b69

Browse files
esamelsonchrfalch
authored andcommitted
[] Move changes from DevServerHelper.java -> DevServerHelper.kt
1 parent ebef72a commit 0a95b69

File tree

1 file changed

+26
-3
lines changed
  • packages/react-native/ReactAndroid/src/main/java/com/facebook/react/devsupport

1 file changed

+26
-3
lines changed

packages/react-native/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevServerHelper.kt

Lines changed: 26 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,7 @@ public open class DevServerHelper(
9595
private val packagerStatusCheck: PackagerStatusCheck = PackagerStatusCheck(client)
9696
private val packageName: String = applicationContext.packageName
9797

98+
private var packagerConnectionLock: Boolean = false;
9899
private var packagerClient: JSPackagerClient? = null
99100
private var inspectorPackagerConnection: IInspectorPackagerConnection? = null
100101

@@ -143,10 +144,11 @@ public open class DevServerHelper(
143144
get() = settings.isJSMinifyEnabled
144145

145146
public fun openPackagerConnection(clientId: String?, commandListener: PackagerCommandListener) {
146-
if (packagerClient != null) {
147+
if (packagerClient != null || packagerConnectionLock) {
147148
FLog.w(ReactConstants.TAG, "Packager connection already open, nooping.")
148149
return
149150
}
151+
packagerConnectionLock = true;
150152
object : AsyncTask<Void, Void, Void>() {
151153
@Deprecated("This needs to be rewritten to not use AsyncTasks")
152154
override fun doInBackground(vararg backgroundParams: Void): Void? {
@@ -183,20 +185,41 @@ public open class DevServerHelper(
183185
clientId, packagerConnectionSettings, handlers, onPackagerConnectedCallback)
184186
.apply { init() }
185187

186-
return null
188+
return packagerClient
189+
}
190+
191+
override fun onPostExecute(packagerClient: JSPackagerClient) {
192+
UiThreadUtil.assertOnUiThread()
193+
mPackagerClient = packagerClient
194+
mPackagerConnectionLock = false
187195
}
188196
}
189197
.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR)
190198
}
191199

192200
public fun closePackagerConnection() {
201+
if (packagerConnectionLock) {
202+
FLog.w(ReactConstants.TAG, "Packager connection lock acquired, cannot close current connection.");
203+
return;
204+
}
205+
packagerConnectionLock = true;
206+
193207
object : AsyncTask<Void, Void, Void>() {
194208
@Deprecated("This class needs to be rewritten to don't use AsyncTasks")
195209
override fun doInBackground(vararg params: Void): Void? {
196-
packagerClient?.close()
210+
if (params.isNotEmpty() && params[0] != null) {
211+
val packagerClient = params[0]
212+
packagerClient?.close()
213+
}
197214
packagerClient = null
198215
return null
199216
}
217+
218+
override fun onPostExecute(result: Void?) {
219+
UiThreadUtil.assertOnUiThread()
220+
mPackagerClient = null
221+
mPackagerConnectionLock = false
222+
}
200223
}
201224
.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR)
202225
}

0 commit comments

Comments
 (0)