package Ġorg . co epi . android . ui . alerts Ċ Ċ import Ġandroidx . lifecycle . LiveData Ċ import Ġandroidx . lifecycle . ViewModel Ċ import Ġio . reactivex . android . schedul ers . Android Schedulers . main Thread Ċ import Ġorg . co epi . android . extensions . rx . to LiveData Ċ import Ġorg . co epi . android . repo . Alerts Repo Ċ import Ġorg . co epi . android . system . Resources Ċ import Ġorg . co epi . android . system . rx . Operation State . Failure Ċ import Ġorg . co epi . android . system . rx . Operation State . Not Started Ċ import Ġorg . co epi . android . system . rx . Operation State . Progress Ċ import Ġorg . co epi . android . system . rx . Operation State . Success Ċ import Ġorg . co epi . android . system . rx . Void Operation State Ċ import Ġorg . co epi . android . t cn . Alert Ċ import Ġorg . co epi . android . ui . alerts . Alert Cell ViewData . Header Ċ import Ġorg . co epi . android . ui . alerts . Alert Cell ViewData . Item Ċ import Ġorg . co epi . android . ui . alerts . Alerts Fragment Directions . Companion . action Global Alerts Details Ċ import Ġorg . co epi . android . ui . alerts . Alerts Fragment Directions . Companion . action Global Alerts Info Ċ import Ġorg . co epi . android . ui . alerts details . Alerts Details Fragment . Args Ċ import Ġorg . co epi . android . ui . extensions . sy mptom UI Strings Ċ import Ġorg . co epi . android . ui . format ters . DateFormat ters . hour Minute Formatter Ċ import Ġorg . co epi . android . ui . format ters . DateFormat ters . month Day Formatter Ċ import Ġorg . co epi . android . ui . navigation . Navigation Command . Back Ċ import Ġorg . co epi . android . ui . navigation . Navigation Command . To Directions Ċ import Ġorg . co epi . android . ui . navigation . Root Navigation Ċ Ċ class ĠAlert s ViewModel ( ĊĠĠĠ Ġval Ġalerts Repo : ĠAlert s Repo , ĊĠĠĠ Ġprivate Ġval Ġresources : ĠResources , ĊĠĠĠ Ġprivate Ġval Ġnavigation : ĠRoot Navigation Ċ ) Ġ: ĠViewModel () Ġ{ ĊĊĠĠĠ Ġval Ġalerts : ĠLive Data < List < Alert Cell ViewData >> Ġ= Ġalerts Repo . alerts ĊĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġit . to Cell ViewData () Ġ} ĊĠĠĠĠĠĠĠ Ġ. observe On ( main Thread ()) ĊĠĠĠĠĠĠĠ Ġ. to LiveData () ĊĊĠĠĠ Ġval Ġupdate Status Text : ĠLive Data < String > Ġ= Ġalerts Repo . update Reports State ĊĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġto Update Status Text ( it ) Ġ} ĊĠĠĠĠĠĠĠ Ġ. observe On ( main Thread ()) ĊĠĠĠĠĠĠĠ Ġ. to LiveData () ĊĊĠĠĠ Ġfun Ġon Alert Click ( alert : ĠAlert ViewData ) Ġ{ ĊĠĠĠĠĠĠĠ Ġnavigation . navigate ( To Directions ( action Global Alerts Details ( Args ( alert . alert )))) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġon Swipe To Refresh () Ġ{ ĊĠĠĠĠĠĠĠ Ġalerts Repo . update Reports () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġon Back () Ġ{ ĊĠĠĠĠĠĠĠ Ġnavigation . navigate ( Back ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġon Alerts Info Button Click () Ġ{ ĊĠĠĠĠĠĠĠ Ġnavigation . navigate ( To Directions ( action Global Alerts Info ())) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThis Ġfunction Ġparses Ġ[ Alert ] Ġobjects Ġreceived Ġfrom Ġthe Ġ[ Alerts Repo ] Ġinto Ġreadable Ġstrings Ġthat Ġget Ġdisplayed ĊĠĠĠĠ Ġ* Ġin Ġthe Ġre cycler Ġview Ġitem _ alert Ġviews Ġbound Ġby Ġthe Ġ[ Alerts Adapter ] ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun ĠAlert . to ViewData (): ĠAlert ViewData Ġ= ĊĠĠĠĠĠĠĠ ĠAlert ViewData ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexposure Type Ġ= Ġreport . sy mptom UI Strings ( resources ). join ToString ("\ n "), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontact Time Ġ= Ġhour Minute Formatter . format Time ( contact Time . toDate ()), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontact Time Month Ġ= Ġmonth Day Formatter . format Month Day ( contact Time . toDate ()), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġalert Ġ= Ġthis ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠ Ġprivate Ġfun ĠList < Alert >. to Cell ViewData (): ĠList < Alert Cell ViewData > Ġ= ĊĠĠĠĠĠĠĠ Ġsorted With ( compare By Descending Ġ{ Ġit . contact Time . value Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. groupBy Ġ{ Ġmonth Day Formatter . format Month Day ( it . contact Time . toDate ()) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. flatMap Ġ{ Ġentry Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( Header ( entry . key )) Ġ+ Ġentry . value . map Ġ{ Ġalert Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠItem ( alert . to ViewData ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġto Update Status Text ( operation State : ĠVoid Operation State ): ĠString Ġ= ĊĠĠĠĠĠĠĠ Ġwhen Ġ( operation State ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠNot Started , Ġis ĠSuccess Ġ-> Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠProgress Ġ-> Ġ" Updating ..." ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠFailure Ġ-> Ġ" Error Ġupdating : Ġ${ operation State . t }" ĊĠĠĠĠĠĠĠ Ġ} Ċ } Ċ