package Ġcom . example . covid tracker . countries _ details Ċ Ċ import Ġandroid . content . Intent Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . core . graphics . Color Utils Ċ import Ġandroidx . core . view . isVisible Ċ import Ġandroidx . lifecycle . Observer Ċ import Ġandroidx . lifecycle . ViewModel Providers Ċ import Ġcom . any chart . Any Chart Ċ import Ġcom . any chart . chart . common . data entry . Data Entry Ċ import Ġcom . any chart . chart . common . data entry . Value Data Entry Ċ import Ġcom . any chart . data . Mapping Ċ import Ġcom . any chart . data . Set Ċ import Ġcom . any chart . enums . Anchor Ċ import Ġcom . any chart . enums . Marker Type Ċ import Ġcom . any chart . enums . Tooltip Position Mode Ċ import Ġcom . any chart . graphics . vector . Stroke Ċ import Ġcom . bump tech . glide . G lide Ċ import Ġcom . example . covid tracker . R Ċ import Ġcom . example . covid tracker . core . COUNTRY _ DATA _ EXTRA _ KEY Ċ import Ġcom . example . covid tracker . core . ViewModel Factory Ċ import Ġcom . example . covid tracker . core . local . Database Builder Ċ import Ġcom . example . covid tracker . core . local . Local Data Base Ċ import Ġcom . example . covid tracker . core . models . Country Data Ċ import Ġcom . example . covid tracker . core . models . Country H istor cal Data Ċ import Ġcom . example . covid tracker . core . network . ret rofit . Ret rofit Api Helper Ċ import Ġcom . example . covid tracker . core . network . ret rofit . Ret rofit Builder Ċ import Ġcom . example . covid tracker . setting . Setting Ċ import Ġcom . example . covid tracker . utils . Helper Ċ import Ġcom . example . covid tracker . utils . Status Ċ import Ġcom . ram ij em li . percentage chart view . callback . Adaptive Color Provider Ċ import Ġcom . ram ij em li . percentage chart view . callback . Progress Text Formatter Ċ import Ġkotlinx . android . synt hetic . main . active _ ser ious _ layout .* Ċ import Ġkotlinx . android . synt hetic . main . activity _ countries _ details .* Ċ import Ġkotlinx . android . synt hetic . main . fragment _ global . setting Btn Id Ċ import Ġkotlinx . android . synt hetic . main . fragment _ global . today Btn Id Ċ import Ġkotlinx . android . synt hetic . main . fragment _ global . total Btn Id Ċ import Ġkotlinx . android . synt hetic . main . population _ details .* Ċ import Ġkotlinx . android . synt hetic . main . statistics _ card .* Ċ import Ġkotlinx . android . synt hetic . main . total _ card .* ĊĊ Ċ class ĠCount ries Details Ġ: ĠAppCompatActivity () Ġ{ ĊĊĠĠĠ Ġlateinit Ġvar Ġcountry Data : ĠCountry Data ĊĠĠĠ Ġprivate Ġlateinit Ġvar ĠviewModel : ĠCountry Details l ViewModel ĊĠĠĠ Ġvar Ġis Sub scribed : ĠBoolean Ġ= Ġfalse ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ countries _ details ) ĊĠĠĠĠĠĠĠ ĠsetUp Country ViewModel () ĊĠĠĠĠĠĠĠ Ġif Ġ( intent . extras Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbundle : ĠBundle Ġ= Ġintent . extras !! ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcountry Data Ġ= Ġbundle . get ( COUNTRY _ DATA _ EXTRA _ KEY ) Ġas ĠCountry Data ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġis Country Sub scribed ( country Data ) ĊĠĠĠĠĠĠĠ ĠsetUp Population Data ( country Data ) ĊĠĠĠĠĠĠĠ ĠsetUp UI ( country Data ) ĊĠĠĠĠĠĠĠ Ġget Country H istorical Data From Network ( country Data . country ) ĊĊĠĠĠĠĠĠĠ Ġtoday Btn Id . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠsetUp Today UI ( country Data ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĊĊĠĠĠĠĠĠĠ Ġtotal Btn Id . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠsetUp UI ( country Data ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġsetting Btn Id . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( this , ĠSetting :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// notify ĊĠĠĠĠĠĠĠ Ġnotify Btn Id . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Sub scribed Ġ= Ġ! is Sub scribed ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Notify ButtonStyle () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif (! is Sub scribed ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . un Subscribe ( country Data ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} else ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . insert To Sub scri p Table ( country Data ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġback Btn Id . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġis Country Sub scribed ( country Data : ĠCountry Data ) Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel . is Sub scribed ( country Data ). observe ( this , ĠObserver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( it . status ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠStatus . SUCCESS Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit ?. data . let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( it ?. size != 0 ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Sub scribed = true ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Notify ButtonStyle () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠStatus . ERROR Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this , Ġ" Connection ĠIssue ", ĠToast . LENGTH _ LONG ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠStatus . LOADING Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġset Notify ButtonStyle () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( is Sub scribed ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnotify Btn Id . setBackground Resource ( R . drawable . un _ notify _ button ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnotify Btn Id . setText ( R . string . un notify ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnotify Btn Id . setTextColor ( resources . getColor ( R . color . text Black )) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnotify Btn Id . setBackground Resource ( R . drawable . notify _ button ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnotify Btn Id . setText ( R . string . notify Me ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnotify Btn Id . setTextColor ( resources . getColor ( R . color . white )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ// set ĠUp Ġview ĠModel ĊĠĠĠ Ġprivate Ġfun ĠsetUp Country ViewModel () Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel Ġ= ĠViewModel Providers . of ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠViewModel Factory ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRet rofit Api Helper ( Ret rofit Builder . api Service ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLocal Data Base ( Database Builder . getInstance ( this )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ). get ( Country Details l ViewModel :: class . java ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠsetUp Population Data ( country Data : ĠCountry Data ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġ(( country Data . re covered . toFloat () Ġ/ Ġcountry Data . cases . toFloat ()) Ġ* Ġ 1 0 0 ) ĊĠĠĠĠĠĠĠ Ġ// percentage TV Id . text Ġ= Ġ"$ result %" ĊĠĠĠĠĠĠĠ Ġpercentage _ chart _ id . set Progress ( result , true ) ĊĠĠĠĠĠĠĠ Ġpercentage _ chart _ id . setText Formatter ( Progress Text Formatter Ġ{ Ġprogress Ġ-> Ġ Ġprogress . toInt (). toString ()+" %" }) ĊĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠ Ġcases Per M illion TV Id . text Ġ= Ġcountry Data . cases Per One M illion . toString () ĊĠĠĠĠĠĠĠ Ġtest Per M illion TV Id . text Ġ= Ġcountry Data . tests Per One M illion . toString () ĊĠĠĠ Ġ} ĊĊĊĊĠĠĠ Ġprivate Ġfun ĠsetUp UI ( country Data : ĠCountry Data ) Ġ{ ĊĠĠĠĠĠĠĠ Ġrecover Layout Id . isVisible Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġconfirm TextView Id . text Ġ= ĠHelper . convert Number ( country Data . cases ) ĊĠĠĠĠĠĠĠ Ġre covered TextView Id . text Ġ= ĠHelper . convert Number ( country Data . re covered ) ĊĠĠĠĠĠĠĠ Ġdeath s TextView Id . text Ġ= ĠHelper . convert Number ( country Data . deaths ) ĊĠĠĠĠĠĠĠ Ġactive TextView Id . text Ġ= ĠHelper . convert Number ( country Data . active ) ĊĠĠĠĠĠĠĠ Ġserious TextView Id . text Ġ= ĠHelper . convert Number ( country Data . critical ) ĊĠĠĠĠĠĠĠ Ġcountry Name TV . text Ġ= Ġcountry Data . country ĊĠĠĠĠĠĠĠ ĠG lide . with ( this ). load ( country Data . country Info . flag ). into ( country Flag ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠsetUp Today UI ( country Data : ĠCountry Data ) Ġ{ ĊĠĠĠĠĠĠĠ Ġrecover Layout Id . isVisible Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġconfirm TextView Id . text Ġ= ĠHelper . convert Number ( country Data . today Cases ) ĊĠĠĠĠĠĠĠ Ġdeath s TextView Id . text Ġ= ĠHelper . convert Number ( country Data . today Death s ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Country H istorical Data From Network ( country Name : String ){ ĊĠĠĠĠĠĠĠ ĠviewModel . get Country H istorical Data ( country Name ). observe ( this , ĠObserver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( it . status ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠStatus . SUCCESS Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit ?. data . let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Country Statistics ( it !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠStatus . ERROR Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this , Ġ" Connection ĠIssue ", ĠToast . LENGTH _ LONG ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠStatus . LOADING Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġset Country Statistics ( country H istor cal Data : ĠCountry H istor cal Data ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcart esian Ġ= ĠAny Chart . line () ĊĠĠĠĠĠĠĠ Ġcart esian . yAxis ( false ) ĊĠĠĠĠĠĠĠ Ġcart esian . xAxis ( true ). labels ( false ) ĊĠĠĠĠĠĠĠ Ġcart esian . x Scroller ( true ) ĊĊĠĠĠĠĠĠĠ Ġcart esian . animation ( true ) ĊĊĠĠĠĠĠĠĠ Ġcart esian . cross hair () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. y Label ( false ) Ġ// ĠTODO Ġy stroke ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. y Stroke ( null Ġas ĠSt roke ?, Ġnull , Ġnull , Ġnull Ġas ĠString ?, Ġnull Ġas ĠString ?) ĊĊĠĠĠĠĠĠĠ Ġcart esian . tooltip (). position Mode ( Tooltip Position Mode . POINT ) ĊĊĊĊĠĠĠĠĠĠĠ Ġval Ġseries Data : ĠMutable List < Data Entry > Ġ= ĠArrayList () ĊĠĠĠĠĠĠĠ Ġcountry H istor cal Data . timeline . cases Map . forEach { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġseries Data . add ( Value Data Entry ( it . key , it . value )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġseries Data 2 : ĠMutable List < Data Entry > Ġ= ĠArrayList () ĊĠĠĠĠĠĠĠ Ġcountry H istor cal Data . timeline . re covered Map . forEach { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġseries Data 2 . add ( Value Data Entry ( it . key , it . value )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġseries Data 3 : ĠMutable List < Data Entry > Ġ= ĠArrayList () ĊĠĠĠĠĠĠĠ Ġcountry H istor cal Data . timeline . deaths Map . forEach { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġseries Data 3 . add ( Value Data Entry ( it . key , it . value )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġset = ĠSet . instantiate () ĊĠĠĠĠĠĠĠ Ġset . data ( series Data ) ĊĠĠĠĠĠĠĠ Ġval Ġseries 1 Mapping : ĠMapping Ġ= Ġset . map As ("{ Ġvalue 2 : Ġ' value 2 ', Ġx : Ġ' x ' Ġ} ") ĊĊĠĠĠĠĠĠĠ Ġval Ġset 2 Ġ= ĠSet . instantiate () ĊĠĠĠĠĠĠĠ Ġset 2 . data ( series Data 2 ) ĊĠĠĠĠĠĠĠ Ġval Ġseries 2 Mapping : ĠMapping Ġ= Ġset 2 . map As ("{ Ġvalue 2 : Ġ' value 2 ', Ġx : Ġ' x ' Ġ} ") ĊĊĠĠĠĠĠĠĠ Ġval Ġset 3 Ġ= ĠSet . instantiate () ĊĠĠĠĠĠĠĠ Ġset 3 . data ( series Data 3 ) ĊĠĠĠĠĠĠĠ Ġval Ġseries 3 Mapping : ĠMapping Ġ= Ġset 3 . map As ("{ Ġvalue 2 : Ġ' value 2 ', Ġx : Ġ' x ' Ġ} ") ĊĊĠĠĠĠĠĠĠ Ġval Ġseries 1 Ġ= Ġcart esian . line ( series 1 Mapping ) ĊĠĠĠĠĠĠĠ Ġseries 1 . hover ed (). markers (). enabled ( true ) ĊĠĠĠĠĠĠĠ Ġseries 1 . name (" confirmed ") ĊĠĠĠĠĠĠĠ Ġseries 1 . stroke ("# 4 1 8 B CA ") ĊĠĠĠĠĠĠĠ Ġseries 1 . hover ed (). markers () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. type ( Marker Type . CROSS ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. size ( 4 . 0 ) ĊĠĠĠĠĠĠĠ Ġseries 1 . tooltip () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. position (" right ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. anchor ( Anchor . LEFT _ CENTER ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. offset X ( 5 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. offset Y ( 5 . 0 ) ĊĊĊĠĠĠĠĠĠĠ Ġval Ġseries 2 Ġ= Ġcart esian . line ( series 2 Mapping ) ĊĠĠĠĠĠĠĠ Ġseries 2 . name (" Re covered ") ĊĠĠĠĠĠĠĠ Ġseries 2 . hover ed (). markers (). enabled ( true ) ĊĠĠĠĠĠĠĠ Ġseries 2 . stroke ("# 0 2 B 6 8 6 ") ĊĠĠĠĠĠĠĠ Ġseries 2 . hover ed (). markers () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. type ( Marker Type . CIR CLE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. size ( 4 . 0 ) ĊĠĠĠĠĠĠĠ Ġseries 2 . tooltip () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. position (" right ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. anchor ( Anchor . LEFT _ CENTER ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. offset X ( 5 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. offset Y ( 5 . 0 ) ĊĊĠĠĠĠĠĠĠ Ġval Ġseries 3 Ġ= Ġcart esian . line ( series 3 Mapping ) ĊĠĠĠĠĠĠĠ Ġseries 3 . stroke ("# FF 4 9 4 7 ") ĊĠĠĠĠĠĠĠ Ġseries 3 . name (" Death ") ĊĠĠĠĠĠĠĠ Ġseries 3 . hover ed (). markers (). enabled ( true ) ĊĠĠĠĠĠĠĠ Ġseries 3 . hover ed (). markers () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. type ( Marker Type . CIR CLE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. size ( 4 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. stroke (" blue ") ĊĠĠĠĠĠĠĠ Ġseries 3 . tooltip () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. position (" right ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. anchor ( Anchor . LEFT _ CENTER ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. offset X ( 5 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. offset Y ( 5 . 0 ) ĊĊĠĠĠĠĠĠĠ Ġany _ chart _ view . set Chart ( cart esian ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġenum Ġclass ĠCOL ORS ( val Ġres : Int ) Ġ{ ĊĠĠĠĠĠĠĠ ĠLOW ( R . color . recovery Color ), ĊĠĠĠĠĠĠĠ ĠMED IUM ( R . color . confirmed Color ), ĊĠĠĠĠĠĠĠ ĠHIGH ( R . color . prime Red ), ĊĠĠĠĠĠĠĠ ĠD ANG ER ( R . color . d angerous ) ĊĠĠĠ Ġ} Ċ } Ċ