package Ġcom . mobile cor on at rack er . ui . country analysis Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . navigation . fragment . nav Args Ċ import Ġco il . load Ċ import Ġcom . mobile cor on at rack er . R Ċ import Ġcom . mobile cor on at rack er . databinding . Fragment Country Analysis Binding Ċ import Ġcom . mobile cor on at rack er . ui . chart . w illiam chart . view . Implements Alpha Chart Ċ import Ġorg . k oin . android x . view model . ext . android . viewModel Ċ Ċ @ Implements Alpha Chart Ċ class ĠCountry Analysis Fragment Ġ: ĠFragment () Ġ{ ĊĠĠĠ Ġprivate Ġval ĠviewModel : ĠCountry Analysis ViewModel able Ġby ĠviewModel < Country Analysis ViewModel >() ĊĠĠĠ Ġprivate Ġval Ġargs : ĠCountry Analysis Fragment Args Ġby Ġnav Args () ĊĊĠĠĠ Ġprivate Ġvar Ġ_ binding : ĠFragment Country Analysis Binding ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġval Ġbinding Ġget () Ġ= Ġ_ binding !! ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , ĊĠĠĠĠĠĠĠ Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ_ binding Ġ= ĠFragment Country Analysis Binding . inflate ( in flater , Ġcontainer , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġbinding . viewModel Ġ= ĠviewModel ĊĠĠĠĠĠĠĠ Ġbinding . lifecycle Owner Ġ= Ġview Lifecycle Owner ĊĠĠĠĠĠĠĠ Ġreturn Ġbinding . root ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĠĠĠĠĠĠĠ ĠviewModel . set Country ( args . country Name ) ĊĠĠĠĠĠĠĠ Ġsetup Views () ĊĠĠĠĠĠĠĠ Ġbind Observer s () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy View () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy View () ĊĠĠĠĠĠĠĠ Ġ_ binding Ġ= Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsetup Views () Ġ{ ĊĠĠĠĠĠĠĠ Ġsetup Don ut Chart () ĊĠĠĠĠĠĠĠ Ġsetup History Chart () ĊĠĠĠĠĠĠĠ Ġsetup Active History Chart () ĊĠĠĠĠĠĠĠ Ġsetup Per M illion Data Chart () ĊĠĠĠĠĠĠĠ Ġsetup Daily Increase Chart () ĊĠĠĠĠĠĠĠ Ġsetup Daily Increase As Percent Chart () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsetup Don ut Chart () Ġ= Ġwith ( binding . tested To Ident ified Chart ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdon ut Colors Ġ= Ġint ArrayOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresources . getColor ( R . color . re covered , Ġnull ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresources . getColor ( R . color . existing , Ġnull ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġanimation . duration Ġ= Ġdefault Animation Duration ĊĠĠĠĠĠĠĠ Ġanimate ( initial Don ut Chart Values ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsetup History Chart () Ġ= Ġwith ( binding . country History Chart ) Ġ{ ĊĠĠĠĠĠĠĠ Ġanimation . duration Ġ= Ġdefault Animation Duration ĊĠĠĠĠĠĠĠ Ġlabels Formatter Ġ= Ġ{ Ġdata Ġ-> Ġdata . toInt (). toString () Ġ} ĊĠĠĠĠĠĠĠ Ġset Line Colors ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresources . getColor ( R . color . existing , Ġnull ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresources . getColor ( R . color . re covered , Ġnull ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresources . getColor ( R . color . dead , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsetup Active History Chart () Ġ= Ġwith ( binding . country Active History Chart ) Ġ{ ĊĠĠĠĠĠĠĠ Ġanimation . duration Ġ= Ġdefault Animation Duration ĊĠĠĠĠĠĠĠ Ġlabels Formatter Ġ= Ġ{ Ġdata Ġ-> Ġdata . toInt (). toString () Ġ} ĊĠĠĠĠĠĠĠ Ġset Line Colors ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresources . getColor ( R . color . existing , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsetup Daily Increase Chart () Ġ= Ġwith ( binding . daily Increase Chart ) Ġ{ ĊĠĠĠĠĠĠĠ Ġanimation . duration Ġ= Ġdefault Animation Duration ĊĠĠĠĠĠĠĠ Ġlabels Formatter Ġ= Ġ{ Ġdata Ġ-> Ġdata . toInt (). toString () Ġ} ĊĠĠĠĠĠĠĠ Ġset Line Colors ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresources . getColor ( R . color . existing , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsetup Daily Increase As Percent Chart () Ġ= ĊĠĠĠĠĠĠĠ Ġwith ( binding . daily Increase As Percent Of All Chart ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġanimation . duration Ġ= Ġdefault Animation Duration ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlabels Formatter Ġ= Ġ{ Ġdata Ġ-> Ġdata . toInt (). toString () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Line Colors ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresources . getColor ( R . color . existing , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsetup Per M illion Data Chart () Ġ= Ġwith ( binding . data Per M illion Chart ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlabels Formatter Ġ= Ġ{ Ġdata Ġ-> Ġdata . toInt (). toString () Ġ} ĊĠĠĠĠĠĠĠ Ġanimation . duration Ġ= Ġdefault Animation Duration ĊĠĠĠĠĠĠĠ Ġbars Color Ġ= Ġresources . getColor ( R . color . existing , Ġnull ) ĊĠĠĠĠĠĠĠ Ġlabels Color Ġ= Ġresources . getColor ( R . color . gray , Ġnull ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġbind Observer s () Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel . tested To Ident ified Data . observe ( view Lifecycle Owner , Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . tested To Ident ified Chart . don ut Total Ġ= Ġit . reduce Ġ{ Ġacc , Ġfl Ġ-> Ġacc Ġ+ Ġfl Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . tested To Ident ified Chart . animate ( it ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ ĠviewModel . cases Per M illion Data . observe ( view Lifecycle Owner , Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . data Per M illion Chart . animate ( it . labels , Ġit . values ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ ĠviewModel . country History Data . observe ( view Lifecycle Owner , Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . country History Chart . animate ( it . labels , Ġit . time Lines ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ ĠviewModel . country Active Cases Data . observe ( view Lifecycle Owner , Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . country Active History Chart . animate ( it . labels , ĠlistOf ( it . values )) ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ ĠviewModel . daily Increase Data . observe ( view Lifecycle Owner , Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . daily Increase Chart . animate ( it . labels , ĠlistOf ( it . values )) ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ ĠviewModel . daily Increase As Percent Of All Data . observe ( view Lifecycle Owner , Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . daily Increase As Percent Of All Chart . animate ( it . labels , ĠlistOf ( it . values )) ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ ĠviewModel . country Flag Path . observe ( view Lifecycle Owner , Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . country Flag . load ( it ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval Ġdefault Animation Duration Ġ= Ġ 1 5 0 0 L ĊĠĠĠĠĠĠĠ Ġval Ġinitial Don ut Chart Values Ġ= ĠlistOf ( 0 f ) ĊĠĠĠ Ġ} Ċ }