package com.android.onboarding.nodes /** * An [OnboardingGraphLog.Observer] which logs a single entry each time we "transition" from one * node to another. * * This will only make sense when the flow is serial and there are no nodes executing in parallel. * Once parallel nodes is common this should be removed. * * This is only for use exploring how much of the Onboarding flow is covered by nodes. It should not * be depended upon for any other purpose. */ class OnboardingGraphNodeTransitionObserver(private val observer: OnboardingGraphLog.Observer) : OnboardingGraphLog.Observer { private var currentNodeId: Long? = null override fun onEvent(event: OnboardingEvent) { if (event.nodeId != currentNodeId) { currentNodeId = event.nodeId observer.onEvent(event) } } }