package Ġorg . co epi . android . ui . sy mptoms . ear liest sy mptom Ċ Ċ import Ġandroidx . lifecycle . LiveData Ċ import Ġandroidx . lifecycle . ViewModel Ċ import Ġio . reactivex . android . schedul ers . Android Schedulers Ċ import Ġorg . co epi . android . domain . sy mptom flow . Sy mptom Flow Manager Ċ import Ġorg . co epi . android . extensions . rx . to IsIn Progress Ċ import Ġorg . co epi . android . extensions . rx . to LiveData Ċ import Ġorg . co epi . android . ui . navigation . Navigation Command . Back Ċ import Ġorg . co epi . android . ui . navigation . Root Navigation Ċ import Ġorg . co epi . core . domain . model . User Input . None Ċ import Ġorg . co epi . core . domain . model . User Input . Some Ċ Ċ class ĠE ar liest Sy mptom ViewModel ( ĊĠĠĠ Ġval Ġnavigation : ĠRoot Navigation , ĊĠĠĠ Ġprivate Ġval Ġsy mptom Flow Manager : ĠSy mptom Flow Manager Ċ ) Ġ: ĠViewModel () Ġ{ ĊĊĠĠĠ Ġval Ġis InProgress : ĠLive Data < Boolean > Ġ= Ġsy mptom Flow Manager . submit Sy mptoms State ĊĠĠĠĠĠĠĠ Ġ. to IsIn Progress () ĊĠĠĠĠĠĠĠ Ġ. observe On ( Android Schedulers . main Thread ()) ĊĠĠĠĠĠĠĠ Ġ. to LiveData () ĊĊĊĠĠĠ Ġfun Ġon Duration Changed ( duration Str : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( duration Str . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsy mptom Flow Manager . set E ar liest Sy mptom Started Days Ago ( None ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġduration : ĠInt Ġ= Ġduration Str . toInt OrNull () Ġ?: Ġerror (" Invalid Ġinput : Ġ$ duration Str ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsy mptom Flow Manager . set E ar liest Sy mptom Started Days Ago ( Some ( duration )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠonClick Submit () Ġ{ ĊĠĠĠĠĠĠĠ Ġsy mptom Flow Manager . navigate Forward () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠonClick Unknown () Ġ{ ĊĠĠĠĠĠĠĠ Ġsy mptom Flow Manager . navigate Forward () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠonClick Skip () Ġ{ ĊĠĠĠĠĠĠĠ Ġsy mptom Flow Manager . navigate Forward () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġon Back () Ġ{ ĊĠĠĠĠĠĠĠ Ġsy mptom Flow Manager . on Back () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġon Back Pressed () Ġ{ ĊĠĠĠĠĠĠĠ Ġon Back () ĊĠĠĠĠĠĠĠ Ġnavigation . navigate ( Back ) ĊĠĠĠ Ġ} Ċ } Ċ