Skip to content

Commit 32e1b3f

Browse files
authored
fix(android): remove timeout from view waiters (rnmapbox#3976)
1 parent b005177 commit 32e1b3f

1 file changed

Lines changed: 3 additions & 13 deletions

File tree

android/src/main/java/com/rnmapbox/rnmbx/utils/ViewTagResolver.kt

Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ open class ViewTagResolver(val context: ReactApplicationContext) {
2323
private val viewWaiters: HashMap<Int, MutableList<ViewTagWaiter<View?>>> = hashMapOf()
2424
private val handler = android.os.Handler(android.os.Looper.getMainLooper())
2525

26-
private fun <V>addWaiterWithTimeout(viewTag: Int, reject: Promise?, fn: (V) -> Unit) {
26+
private fun <V>addWaiter(viewTag: Int, reject: Promise?, fn: (V) -> Unit) {
2727
val waiter = ViewTagWaiter<View?>({ view ->
2828
if (view != null) {
2929
fn(view as V)
@@ -33,16 +33,6 @@ open class ViewTagResolver(val context: ReactApplicationContext) {
3333
}
3434
}, reject)
3535
viewWaiters.getOrPut(viewTag) { mutableListOf() }.add(waiter)
36-
handler.postDelayed({
37-
if (viewWaiters[viewTag]?.contains(waiter) == true) {
38-
Logger.e(LOG_TAG, "Timeout waiting for view with tag: $viewTag")
39-
reject?.reject(Throwable("Timeout waiting for view with tag: $viewTag"))
40-
viewWaiters[viewTag]?.remove(waiter)
41-
if (viewWaiters[viewTag]?.isEmpty() == true) {
42-
viewWaiters.remove(viewTag)
43-
}
44-
}
45-
}, 200)
4636
}
4737
// to be called from view.setId
4838
fun tagAssigned(viewTag: Int) {
@@ -85,11 +75,11 @@ open class ViewTagResolver(val context: ReactApplicationContext) {
8575
if (view != null) {
8676
fn(view)
8777
} else {
88-
addWaiterWithTimeout(viewTag, reject, fn)
78+
addWaiter(viewTag, reject, fn)
8979
}
9080
} catch (err: IllegalViewOperationException) {
9181
if (!createdViews.contains(viewTag)) {
92-
addWaiterWithTimeout(viewTag, reject, fn)
82+
addWaiter(viewTag, reject, fn)
9383
} else {
9484
reject?.reject(err)
9585
}

0 commit comments

Comments
 (0)