Fix crash when clicking fast on back key on the Add account screen.

This commit is contained in:
Benoit Marty 2025-11-21 15:42:15 +01:00 committed by Benoit Marty
parent 13af794872
commit 24b76f2001
5 changed files with 16 additions and 1 deletions

View file

@ -57,6 +57,7 @@ class NotLoggedInFlowNode(
interface Callback : Plugin { interface Callback : Plugin {
fun navigateToBugReport() fun navigateToBugReport()
fun onDone()
} }
private val callback: Callback = callback() private val callback: Callback = callback()
@ -83,6 +84,10 @@ class NotLoggedInFlowNode(
override fun navigateToBugReport() { override fun navigateToBugReport() {
callback.navigateToBugReport() callback.navigateToBugReport()
} }
override fun onDone() {
callback.onDone()
}
} }
loginEntryPoint.createNode( loginEntryPoint.createNode(
parentNode = this, parentNode = this,

View file

@ -243,6 +243,10 @@ class RootFlowNode(
override fun navigateToBugReport() { override fun navigateToBugReport() {
backstack.push(NavTarget.BugReport) backstack.push(NavTarget.BugReport)
} }
override fun onDone() {
backstack.pop()
}
} }
val params = NotLoggedInFlowNode.Params( val params = NotLoggedInFlowNode.Params(
loginParams = navTarget.params, loginParams = navTarget.params,

View file

@ -21,6 +21,7 @@ interface LoginEntryPoint : FeatureEntryPoint {
interface Callback : Plugin { interface Callback : Plugin {
fun navigateToBugReport() fun navigateToBugReport()
fun onDone()
} }
fun createNode( fun createNode(

View file

@ -167,6 +167,10 @@ class LoginFlowNode(
override fun navigateToLoginPassword() { override fun navigateToLoginPassword() {
backstack.push(NavTarget.LoginPassword) backstack.push(NavTarget.LoginPassword)
} }
override fun onDone() {
callback.onDone()
}
} }
val params = inputs<Params>() val params = inputs<Params>()
val inputs = OnBoardingNode.Params( val inputs = OnBoardingNode.Params(

View file

@ -42,6 +42,7 @@ class OnBoardingNode(
fun navigateToLoginPassword() fun navigateToLoginPassword()
fun navigateToOidc(oidcDetails: OidcDetails) fun navigateToOidc(oidcDetails: OidcDetails)
fun navigateToCreateAccount(url: String) fun navigateToCreateAccount(url: String)
fun onDone()
} }
data class Params( data class Params(
@ -71,7 +72,7 @@ class OnBoardingNode(
onNeedLoginPassword = callback::navigateToLoginPassword, onNeedLoginPassword = callback::navigateToLoginPassword,
onLearnMoreClick = { openLearnMorePage(context) }, onLearnMoreClick = { openLearnMorePage(context) },
onCreateAccountContinue = callback::navigateToCreateAccount, onCreateAccountContinue = callback::navigateToCreateAccount,
onBackClick = ::navigateUp, onBackClick = callback::onDone,
) )
} }
} }