Add a filter to avoid stack overflow when pressing the back button several times. (#4430)

Fixes #4181
This commit is contained in:
Benoit Marty 2025-03-19 15:31:06 +01:00 committed by GitHub
parent fccd881b1f
commit 65ef59a576
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -22,6 +22,7 @@ import io.element.android.libraries.architecture.NodeInputs
import io.element.android.libraries.architecture.inputs
import io.element.android.libraries.di.RoomScope
import io.element.android.services.analytics.api.AnalyticsService
import java.util.concurrent.atomic.AtomicBoolean
@ContributesNode(RoomScope::class)
class CreatePollNode @AssistedInject constructor(
@ -34,7 +35,16 @@ class CreatePollNode @AssistedInject constructor(
private val inputs: Inputs = inputs()
private val presenter = presenterFactory.create(backNavigator = ::navigateUp, mode = inputs.mode)
private var isNavigatingUp = AtomicBoolean(false)
private val presenter = presenterFactory.create(
backNavigator = {
if (isNavigatingUp.compareAndSet(false, true)) {
navigateUp()
}
},
mode = inputs.mode,
)
init {
lifecycle.subscribe(