package Ġcom . k un alf arma h . covid _ 1 9 _ info _ dashboard . ui . activity Ċ Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . MenuItem Ċ import Ġandroid . view . View Ċ import Ġcom . github . mike phil . chart ing . data . Entry Ċ import Ġcom . github . mike phil . chart ing . data . Pie Data Ċ import Ġcom . github . mike phil . chart ing . data . Pie DataSet Ċ import Ġcom . github . mike phil . chart ing . data . Pie Entry Ċ import Ġcom . github . mike phil . chart ing . highlight . Highlight Ċ import Ġcom . github . mike phil . chart ing . listener . On Chart Value Selected Listener Ċ import Ġcom . k un alf arma h . covid _ 1 9 _ info _ dashboard . R Ċ import Ġcom . k un alf arma h . covid _ 1 9 _ info _ dashboard . databinding . Activity Stats Binding Ċ import Ġcom . k un alf arma h . covid _ 1 9 _ info _ dashboard . util . Constants Ċ import Ġjava . text . Decimal Format Ċ Ċ class ĠStats Activity Ġ: ĠAppCompatActivity () Ġ{ ĊĊĠĠĠ Ġlateinit Ġvar Ġbinding : ĠActivity Stats Binding ĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġbinding Ġ= ĠActivity Stats Binding . inflate ( LayoutInflater . from ( this )) ĊĊĠĠĠĠĠĠĠ Ġsupport ActionBar ?. set Display Home As Up Enabled ( true ) ĊĠĠĠĠĠĠĠ Ġsupport ActionBar ?. set Home Button Enabled ( true ) ĊĠĠĠĠĠĠĠ Ġvar Ġargs Ġ= Ġintent . extras ĊĠĠĠĠĠĠĠ Ġsupport ActionBar ?. title Ġ= Ġargs ?. getString (" State ", Ġ" State ") ĊĠĠĠĠĠĠĠ ĠsetContentView ( binding . root ) ĊĠĠĠĠĠĠĠ Ġvar Ġtotal Ġ= Ġargs ?. getString (" Total ") ĊĠĠĠĠĠĠĠ Ġvar Ġactive Ġ= Ġargs ?. getString (" Active ") ĊĠĠĠĠĠĠĠ Ġvar Ġre covered Ġ= Ġargs ?. getString (" Re covered ") ĊĠĠĠĠĠĠĠ Ġvar Ġde ce ased Ġ= Ġargs ?. getString (" De ce ased ") ĊĠĠĠĠĠĠĠ Ġvar Ġd Active Ġ= Ġargs ?. getString (" d Active ") ĊĠĠĠĠĠĠĠ Ġvar Ġd Re covered Ġ= Ġargs ?. getString (" d Re covered ") ĊĠĠĠĠĠĠĠ Ġvar Ġd De ce ased Ġ= Ġargs ?. getString (" d De ce ased ") ĊĊĠĠĠĠĠĠĠ Ġif Ġ( d Active Ġ== Ġ" 0 " Ġ&& Ġd Re covered Ġ== Ġ" 0 " Ġ&& Ġd De ce ased Ġ== Ġ" 0 ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . recent Layout . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġdf Ġ= ĠDecimal Format (" ## , ## , ### ") ĊĊĠĠĠĠĠĠĠ Ġbinding . total . text Ġ= ĠString . format (" Total ĠC ases : Ġ% s ", Ġdf . format ( total ?. toInt ())) ĊĠĠĠĠĠĠĠ Ġbinding . active Summary . text Ġ= ĠString . format (" Active :\ n % s ", Ġdf . format ( active ?. toInt ())) ĊĠĠĠĠĠĠĠ Ġbinding . re covered Summary . text Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠString . format (" Re covered :\ n % s ", Ġdf . format ( re covered ?. toInt ())) ĊĠĠĠĠĠĠĠ Ġbinding . de ce ased Summary . text Ġ= ĠString . format (" De ce ased :\ n % s ", Ġdf . format ( de ce ased ?. toInt ())) ĊĊĠĠĠĠĠĠĠ ĠsetUp Total Pie Chart ( active ?. toFloat () !! , Ġre covered ?. toFloat () !! , Ġde ce ased ?. toFloat () !! ) ĊĊĊĠĠĠĠĠĠĠ Ġbinding . daily New . text Ġ= ĠString . format (" Cases :\ n % s ", Ġdf . format ( d Active ?. toInt ())) ĊĠĠĠĠĠĠĠ Ġbinding . daily Re covered . text Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠString . format (" Recover ies :\ n % s ", Ġdf . format ( d Re covered ?. toInt ())) ĊĠĠĠĠĠĠĠ Ġbinding . daily De ce ased . text Ġ= ĠString . format (" Death s :\ n % s ", Ġdf . format ( d De ce ased ?. toInt ())) ĊĊĠĠĠĠĠĠĠ ĠsetUp Recent Pie Chart ( d Active ?. toFloat () !! , Ġd Re covered ?. toFloat () !! , Ġd De ce ased ?. toFloat () !! ) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠsetUp Total Pie Chart ( active : ĠFloat , Ġre covered : ĠFloat , Ġde ce ased : ĠFloat ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġvar Ġpie Entries Ġ= ĠArrayList < Pie Entry >() ĊĠĠĠĠĠĠĠ Ġpie Entries . add ( Pie Entry ( active )) ĊĠĠĠĠĠĠĠ Ġpie Entries . add ( Pie Entry ( re covered )) ĊĠĠĠĠĠĠĠ Ġpie Entries . add ( Pie Entry ( de ce ased )) ĊĊĠĠĠĠĠĠĠ Ġvar ĠdataSet Ġ= ĠP ie DataSet ( pie Entries , Ġ"") ĊĠĠĠĠĠĠĠ Ġvar Ġblue : ĠInt Ġ= Ġresources . getColor ( R . color . blue ) ĊĠĠĠĠĠĠĠ Ġvar Ġred : ĠInt Ġ= Ġresources . getColor ( R . color . red ) ĊĠĠĠĠĠĠĠ Ġvar Ġgreen : ĠInt Ġ= Ġresources . getColor ( R . color . green ) ĊĠĠĠĠĠĠĠ Ġvar Ġcolors Ġ= ĠArrayList < Int >() ĊĠĠĠĠĠĠĠ Ġcolors . add ( blue ) ĊĠĠĠĠĠĠĠ Ġcolors . add ( green ) ĊĠĠĠĠĠĠĠ Ġcolors . add ( red ) ĊĠĠĠĠĠĠĠ ĠdataSet . colors Ġ= Ġcolors ĊĠĠĠĠĠĠĠ Ġvar Ġpie Data Ġ= ĠP ie Data ( data Set ) ĊĠĠĠĠĠĠĠ Ġbinding . pie Chart Total . data Ġ= Ġpie Data ĊĠĠĠĠĠĠĠ Ġbinding . pie Chart Total . data . setValue Text Size ( 1 3 f ) ĊĠĠĠĠĠĠĠ Ġbinding . pie Chart Total . data . setValue TextColor ( resources . getColor ( R . color . white )) ĊĠĠĠĠĠĠĠ Ġbinding . pie Chart Total . center Text Ġ= Ġ" Rates Ġin Ġ% Ġ( rounded Ġoff )" ĊĠĠĠĠĠĠĠ Ġbinding . pie Chart Total . set Center Text Size ( 1 5 f ) ĊĠĠĠĠĠĠĠ Ġbinding . pie Chart Total . set Use Percent Values ( true ) ĊĠĠĠĠĠĠĠ Ġbinding . pie Chart Total . legend . isEnabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġbinding . pie Chart Total . description . isEnabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġbinding . pie Chart Total . setOn Chart Value Selected Listener ( object Ġ: ĊĠĠĠĠĠĠĠĠĠĠĠ ĠOn Chart Value Selected Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Value Selected ( e : ĠEntry ?, Ġh : ĠHighlight ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( e !!. equalTo ( Pie Entry ( active ))) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . active Summary . text Size Ġ= Ġ 1 8 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . de ce ased Summary . text Size Ġ= Ġ 1 6 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . re covered Summary . text Size Ġ= Ġ 1 6 f ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( e . equalTo ( Pie Entry ( re covered ))) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . active Summary . text Size Ġ= Ġ 1 6 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . de ce ased Summary . text Size Ġ= Ġ 1 6 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . re covered Summary . text Size Ġ= Ġ 1 8 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( e . equalTo ( Pie Entry ( de ce ased ))) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . active Summary . text Size Ġ= Ġ 1 6 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . de ce ased Summary . text Size Ġ= Ġ 1 8 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . re covered Summary . text Size Ġ= Ġ 1 6 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Nothing Selected () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . active Summary . text Size Ġ= Ġ 1 6 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . de ce ased Summary . text Size Ġ= Ġ 1 6 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . re covered Summary . text Size Ġ= Ġ 1 6 f ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġbinding . pie Chart Total . invalidate () ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun ĠsetUp Recent Pie Chart ( active : ĠFloat , Ġre covered : ĠFloat , Ġde ce ased : ĠFloat ) Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġpie Entries Ġ= ĠArrayList < Pie Entry >() ĊĠĠĠĠĠĠĠ Ġpie Entries . add ( Pie Entry ( active )) ĊĠĠĠĠĠĠĠ Ġpie Entries . add ( Pie Entry ( re covered )) ĊĠĠĠĠĠĠĠ Ġpie Entries . add ( Pie Entry ( de ce ased )) ĊĊĠĠĠĠĠĠĠ Ġvar ĠdataSet Ġ= ĠP ie DataSet ( pie Entries , Ġ"") ĊĠĠĠĠĠĠĠ Ġvar Ġblue : ĠInt Ġ= Ġresources . getColor ( R . color . blue ) ĊĠĠĠĠĠĠĠ Ġvar Ġred : ĠInt Ġ= Ġresources . getColor ( R . color . red ) ĊĠĠĠĠĠĠĠ Ġvar Ġgreen : ĠInt Ġ= Ġresources . getColor ( R . color . green ) ĊĠĠĠĠĠĠĠ Ġvar Ġcolors Ġ= ĠArrayList < Int >() ĊĠĠĠĠĠĠĠ Ġcolors . add ( blue ) ĊĠĠĠĠĠĠĠ Ġcolors . add ( green ) ĊĠĠĠĠĠĠĠ Ġcolors . add ( red ) ĊĠĠĠĠĠĠĠ ĠdataSet . colors Ġ= Ġcolors ĊĠĠĠĠĠĠĠ Ġvar Ġpie Data Ġ= ĠP ie Data ( data Set ) ĊĠĠĠĠĠĠĠ Ġbinding . pie Chart Recent . data Ġ= Ġpie Data ĊĠĠĠĠĠĠĠ Ġbinding . pie Chart Recent . data . setValue Text Size ( 1 3 f ) ĊĠĠĠĠĠĠĠ Ġbinding . pie Chart Recent . data . setValue TextColor ( resources . getColor ( R . color . white )) ĊĠĠĠĠĠĠĠ Ġbinding . pie Chart Recent . center Text Ġ= Ġ" Rates Ġin Ġ% Ġ( rounded Ġoff )" ĊĠĠĠĠĠĠĠ Ġbinding . pie Chart Recent . set Center Text Size ( 1 5 f ) ĊĠĠĠĠĠĠĠ Ġbinding . pie Chart Recent . set Use Percent Values ( true ) ĊĠĠĠĠĠĠĠ Ġbinding . pie Chart Recent . legend . isEnabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġbinding . pie Chart Recent . description . isEnabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġbinding . pie Chart Recent . setOn Chart Value Selected Listener ( object Ġ: ĊĠĠĠĠĠĠĠĠĠĠĠ ĠOn Chart Value Selected Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Value Selected ( e : ĠEntry ?, Ġh : ĠHighlight ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( e !!. equalTo ( Pie Entry ( active ))) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . daily New . text Size Ġ= Ġ 1 8 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . daily Re covered . text Size Ġ= Ġ 1 6 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . daily De ce ased . text Size Ġ= Ġ 1 6 f ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( e . equalTo ( Pie Entry ( re covered ))) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . daily New . text Size Ġ= Ġ 1 6 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . daily Re covered . text Size Ġ= Ġ 1 8 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . daily De ce ased . text Size Ġ= Ġ 1 6 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( e . equalTo ( Pie Entry ( de ce ased ))) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . daily New . text Size Ġ= Ġ 1 6 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . daily Re covered . text Size Ġ= Ġ 1 6 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . daily De ce ased . text Size Ġ= Ġ 1 8 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Nothing Selected () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . daily New . text Size Ġ= Ġ 1 6 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . daily Re covered . text Size Ġ= Ġ 1 6 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . re covered Summary . text Size Ġ= Ġ 1 6 f ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġbinding . pie Chart Recent . invalidate () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Options ItemSelected ( item : ĠMenuItem ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( item . itemId Ġ== ĠR . id . home ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Back Pressed () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġsuper . on Options ItemSelected ( item ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Support Navigate Up (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġon Back Pressed () ĊĠĠĠĠĠĠĠ Ġreturn Ġsuper . on Support Navigate Up () ĊĠĠĠ Ġ} Ċ }