package Ġcom . bon ac ode . modern m vi . sample . presentation . feature . dog s . create Ċ Ċ import Ġcom . bon ac ode . modern m vi . core . Presenter Ċ import Ġcom . bon ac ode . modern m vi . sample . presentation . di . Schedulers Module Ċ import Ġdagger . h ilt . android . lifecycle . H ilt ViewModel Ċ import Ġio . reactivex . rx java 3 . core . Observable Ċ import Ġio . reactivex . rx java 3 . core . Scheduler Ċ import Ġjavax . inject . Inject Ċ import Ġjavax . inject . Named Ċ Ċ @ H ilt ViewModel Ċ class ĠDog Create Presenter Ġ@ Inject Ġconstructor ( ĊĠĠĠ Ġ@ Named ( Schedulers Module . MAIN _ THREAD ) Ġmain Thread : ĠScheduler , ĊĠĠĠ Ġprivate Ġval Ġinter actor : ĠDog Create Interactor Ċ ) Ġ: ĊĠĠĠ ĠPres enter < Dog Create ViewState , ĠDog Create View , ĠDog Create Partial State , ĠDog Create Intent , ĠDog Create View Effect >( ĊĠĠĠĠĠĠĠ Ġmain Thread ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠ Ġoverride Ġval Ġdefault ViewState : ĠDog Create ViewState ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠDog Create ViewState () ĊĊĠĠĠ Ġoverride Ġfun Ġintent To Partial State ( intent : ĠDog Create Intent ): ĠObservable < Dog Create Partial State > Ġ= ĊĠĠĠĠĠĠĠ Ġwhen Ġ( intent ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠDog Create Intent . Name Changed Ġ-> ĠObservable . just ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDog Create Partial State . Name Changed ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . name ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠDog Create Intent . B reed Changed Ġ-> ĠObservable . just ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDog Create Partial State . B reed Changed ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . bre ed ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠDog Create Intent . ImageUrl Changed Ġ-> ĠObservable . just ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDog Create Partial State . ImageUrl Changed ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . imageUrl ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠDog Create Intent . Save Ġ-> Ġwith ( getView State ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinter actor . create Dog ( name , Ġb reed , ĠimageUrl ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ċ } Ċ