package Ġio . ain sign e . kotlin starter . feature . splash Ċ Ċ import Ġandroidx . fragment . app . Fragment Activity Ċ import Ġandroidx . lifecycle . ViewModel Ċ import Ġandroidx . lifecycle . ViewModel Provider Ċ import Ġdagger . Component Ċ import Ġdagger . Module Ċ import Ġdagger . Provides Ċ import Ġio . ain sign e . analytics . Analytics Client Ċ import Ġio . ain sign e . kotlin starter . injection . app . Activity Scope Ċ import Ġio . ain sign e . kotlin starter . injection . app . App Component Ċ import Ġio . ain sign e . kotlin starter . view . view model . Coroutine Context Provider Ċ Ċ @ Activity Scope Ċ @ Component ( ĊĠĠĠ Ġdependencies Ġ= Ġ[ App Component :: class ], ĊĠĠĠ Ġmodules Ġ= Ġ[ Splash Component . Splash Module :: class ] Ċ ) Ċ interface ĠSpl ash Component Ġ{ ĊĠĠĠ Ġfun Ġinject ( activity : ĠSpl ash Activity ) ĊĊĠĠĠ Ġ@ Module ĊĠĠĠ Ġclass ĠSpl ash Module ( val Ġfragment Activity : ĠFragment Activity ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Provides ĊĠĠĠĠĠĠĠ Ġfun Ġprovides Splash ViewModel ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcoroutine Context Provider : ĠCor outine Context Provider , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġanalytics : ĠAnalytics Client ĊĠĠĠĠĠĠĠ Ġ): ĠSpl ash ViewModel Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠViewModel Provider ( fragment Activity , Ġobject Ġ: ĠViewModel Provider . Factory Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġ< T Ġ: ĠViewModel ?> Ġcreate ( model Class : ĠClass < T >): ĠT Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠSpl ash ViewModel ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcoroutine Context Provider Ġ= Ġcoroutine Context Provider , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġanalytics Ġ= Ġanalytics ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġas ĠT ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) [ Splash ViewModel :: class . java ] ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ