<lambda>null1package com.android.onboarding.nodes 2 3 import com.android.onboarding.flags.DefaultOnboardingFlagsProvider 4 5 /** A Singleton [OnboardingGraphLog] which automatically logs all events to logcat. */ 6 object AndroidOnboardingGraphLog : OnboardingGraphLog { 7 8 const val LOG_TAG = "ZZZOnboardingGraph" 9 private val onboardingFlags = DefaultOnboardingFlagsProvider() 10 private val logcatObserver = LogcatObserver(LOG_TAG) { it.serializeToString() } 11 private val defaultOnboardingGraphLog = 12 DefaultOnboardingGraphLog().also { 13 it.addObserver(logcatObserver) 14 15 if (onboardingFlags.shouldVisualiseNodeTransitionsInLogcat) { 16 it.addObserver( 17 OnboardingGraphNodeTransitionObserver( 18 LogcatObserver(logTag = "OnboardingGraph") { node -> 19 "${node.nodeName}(${node.nodeId})" 20 } 21 ) 22 ) 23 } 24 } 25 26 override fun addObserver(observer: OnboardingGraphLog.Observer) { 27 defaultOnboardingGraphLog.addObserver(observer) 28 } 29 30 override fun removeObserver(observer: OnboardingGraphLog.Observer) { 31 defaultOnboardingGraphLog.removeObserver(observer) 32 } 33 34 override fun log(event: OnboardingEvent) { 35 defaultOnboardingGraphLog.log(event) 36 } 37 } 38