package Ġtech . sal vat ore . liv ro _ android _ kotlin _ p au lo _ sal vat ore . view model Ċ Ċ import Ġandroidx . lifecycle . LiveData Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġandroidx . lifecycle . ViewModel Ċ import Ġdagger . h ilt . android . lifecycle . H ilt ViewModel Ċ import Ġio . reactivex . rx java 3 . dis pos ables . Composite Disposable Ċ import Ġtech . sal vat ore . liv ro _ android _ kotlin _ p au lo _ sal vat ore . extensions . rx . Composite Disposable Extensions . plus Assign Ċ import Ġtech . sal vat ore . liv ro _ android _ kotlin _ p au lo _ sal vat ore . model . domain . Creature Ċ import Ġtech . sal vat ore . liv ro _ android _ kotlin _ p au lo _ sal vat ore . model . repository . User Creature Repository Ċ import Ġtech . sal vat ore . liv ro _ android _ kotlin _ p au lo _ sal vat ore . model . repository . UserRepository Ċ import Ġjavax . inject . Inject Ċ Ċ @ H ilt ViewModel Ċ class ĠCre ature ViewModel Ġ@ Inject Ġconstructor ( ĊĠĠĠ Ġprivate Ġval Ġuser Creature Repository : ĠUser Creature Repository , ĊĠĠĠ Ġprivate Ġval Ġuser Repository : ĠUser Repository , Ċ ) Ġ: ĠViewModel () Ġ{ ĊĠĠĠ Ġprivate Ġval Ġ_ creature Ġ= ĠMutable LiveData < Creature >() ĊĊĠĠĠ Ġval Ġcreature : ĠLive Data < Creature > ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġ_ creature ĊĊĠĠĠ Ġprivate Ġval Ġcomposite Ġ= ĠComposite Disposable () ĊĊĠĠĠ Ġfun Ġload Creature ( creature Number : ĠLong ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcomposite Ġ+= Ġuser Repository . user ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. take ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. flatMap Single Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuser Creature Repository . findBy UserId And Creature Number ( it . id , Ġcreature Number ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ creature . post Value ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġfeed : ĠFunction 0 < Unit > Ġ= Ġ{ ĊĠĠĠĠĠĠĠ Ġcomposite Ġ+= Ġuser Repository . user ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. take ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. flatMap Single Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuser Creature Repository . feed ( it . id , Ġcreature . value !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. subscribe Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ creature . post Value ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġtrain : ĠFunction 0 < Unit > Ġ= Ġ{ ĊĠĠĠĠĠĠĠ Ġcomposite Ġ+= Ġuser Repository . user ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. take ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. flatMap Single Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuser Creature Repository . train ( it . id , Ġcreature . value !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. subscribe Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ creature . post Value ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġplay : ĠFunction 0 < Unit > Ġ= Ġ{ ĊĠĠĠĠĠĠĠ Ġcomposite Ġ+= Ġuser Repository . user ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. take ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. flatMap Single Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuser Creature Repository . play ( it . id , Ġcreature . value !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. subscribe Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ creature . post Value ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġev olve () Ġ{ ĊĠĠĠĠĠĠĠ Ġcomposite Ġ+= Ġuser Repository . user ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. take ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. flatMap Single Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuser Creature Repository . ev olve ( it . id , Ġcreature . value !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. subscribe Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ creature . post Value ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ