package Ġcom . cn r . ph r _ android . dashboard . monitor . monitor _ listing . history _ tab Ċ Ċ import Ġandroid . app . Application Ċ import Ġandroid . arch . lifecycle . Android ViewModel Ċ import Ġandroid . arch . lifecycle . Mutable LiveData Ċ import Ġandroid . os . Build Ċ import Ġandroid . support . annotation . Requires Api Ċ import Ġcom . cn r . ph r _ android . base . user . V ital sign DataType Ċ import Ġcom . cn r . ph r _ android . dashboard . monitor . monitor _ listing . Monitor Main Repository Ċ import Ġcom . cn r . ph r _ android . dashboard . monitor . utility . entity . Time Filter Ċ import Ġcom . cn r . ph r _ android . data . entity . Device Room Data Ċ import Ġkotlinx . coroutines . Coroutine Scope Ċ import Ġkotlinx . coroutines . Dispatch ers Ċ import Ġkotlinx . coroutines . Job Ċ import Ġkotlinx . coroutines . launch Ċ import Ġtim ber . log . Tim ber Ċ Ċ class ĠHistory Tab ViewModel ( ĊĠĠĠĠĠĠĠ Ġval Ġuser UUID : ĠString , ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠdataType : ĠV ital sign DataType , ĊĠĠĠĠĠĠĠ Ġapplication : ĠApplication ) Ġ: ĠAndroid ViewModel ( application ) Ġ{ ĊĠĠĠ Ġprivate Ġval ĠviewModel Job Ġ= ĠJob () ĊĠĠĠ Ġprivate Ġval Ġrepository Ġ= ĠMonitor Main Repository ( dataType ) ĊĠĠĠ Ġprivate Ġval Ġui Scope Ġ= ĠCor outine Scope ( Dispatch ers . Main Ġ+ ĠviewModel Job ) ĊĠĠĠ Ġval ĠviewModel V ital Sign List Ġ= ĠMutable LiveData < List < Device Room Data >>() ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ ĠTim ber . v (" History ĠTab ĠViewModel Ġis ĠRunning ") ĊĠĠĠĠĠĠĠ ĠviewModel Population () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠviewModel Population () Ġ{ ĊĠĠĠĠĠĠĠ Ġui Scope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . v (" Ġ>>> > ĠView ĠModel ĠPop ulation Ġis ĠWorking Ġin ĠHistory ViewModel ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġreference Ġ= Ġrepository . getReference ( dataType , Ġuser UUID ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrepository . populate Data ( reference ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrepository . v ital Sign DataList . observe Fore ver Ġ{ Ġv ital Sign List Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġv ital Sign List ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . v (" V ital Sign List Ġis ĠChange Ġtell ĠBack Ġto ĠFragment ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel V ital Sign List . value Ġ= Ġv ital Sign List ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Requires Api ( Build . VERSION _ CODES . O ) ĊĠĠĠ Ġfun Ġrequest Data Filter ( filter : Time Filter ){ ĊĠĠĠĠĠĠĠ Ġrepository . filter Data ( filter ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Cle ared () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Cle ared () ĊĠĠĠĠĠĠĠ ĠviewModel Job . cancel () ĊĠĠĠ Ġ} Ċ }