Add a way to configure tracing when the session does not exist yet.

This commit is contained in:
Benoit Marty 2023-09-11 09:58:40 +02:00
parent a30af97ecd
commit 9c9a6ce7be
7 changed files with 62 additions and 6 deletions

View file

@ -32,6 +32,7 @@ import dagger.assisted.AssistedInject
import io.element.android.anvilannotations.ContributesNode
import io.element.android.features.login.api.LoginEntryPoint
import io.element.android.features.onboarding.api.OnBoardingEntryPoint
import io.element.android.features.preferences.api.ConfigureTracingEntryPoint
import io.element.android.libraries.architecture.BackstackNode
import io.element.android.libraries.architecture.animation.rememberDefaultTransitionHandler
import io.element.android.libraries.di.AppScope
@ -43,6 +44,7 @@ class NotLoggedInFlowNode @AssistedInject constructor(
@Assisted buildContext: BuildContext,
@Assisted plugins: List<Plugin>,
private val onBoardingEntryPoint: OnBoardingEntryPoint,
private val configureTracingEntryPoint: ConfigureTracingEntryPoint,
private val loginEntryPoint: LoginEntryPoint,
private val notLoggedInImageLoaderFactory: NotLoggedInImageLoaderFactory,
) : BackstackNode<NotLoggedInFlowNode.NavTarget>(
@ -70,6 +72,9 @@ class NotLoggedInFlowNode @AssistedInject constructor(
data class LoginFlow(
val isAccountCreation: Boolean,
) : NavTarget
@Parcelize
data object ConfigureTracing : NavTarget
}
override fun resolve(navTarget: NavTarget, buildContext: BuildContext): Node {
@ -83,6 +88,10 @@ class NotLoggedInFlowNode @AssistedInject constructor(
override fun onSignIn() {
backstack.push(NavTarget.LoginFlow(isAccountCreation = false))
}
override fun onOpenDeveloperSettings() {
backstack.push(NavTarget.ConfigureTracing)
}
}
onBoardingEntryPoint
.nodeBuilder(this, buildContext)
@ -94,6 +103,9 @@ class NotLoggedInFlowNode @AssistedInject constructor(
.params(LoginEntryPoint.Params(isAccountCreation = navTarget.isAccountCreation))
.build()
}
NavTarget.ConfigureTracing -> {
configureTracingEntryPoint.createNode(this, buildContext)
}
}
}