package Ġcom . application . covid 1 9 Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . content . SharedPreferences Ċ import Ġandroid . content . res . Configuration Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . text . Sp ann able Ċ import Ġandroid . text . Text Paint Ċ import Ġandroid . text . method . Link Movement Method Ċ import Ġandroid . text . style . URL Span Ċ import Ġandroid . text . style . Underline Span Ċ import Ġandroid . view . View Ċ import Ġandroid . webkit . Javascript Interface Ċ import Ġandroid . webkit . WebView Ċ import Ġandroid . webkit . WebView Client Ċ import Ġandroid . widget .* Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . appcompat . app . AppCompat Delegate Ċ import Ġandroidx . card view . widget . Card View Ċ import Ġandroidx . core . content . Context Compat Ċ import Ġandroidx . core . text . Html Compat Ċ import Ġcom . application . covid 1 9 . data .* Ċ import Ġcom . application . covid 1 9 . states . States Ċ import Ġcom . y ab u . live chart . model . DataPoint Ċ import Ġcom . y ab u . live chart . model . Dataset Ċ import Ġcom . y ab u . live chart . view . Live Chart Ċ import Ġcom . y ab u . live chart . view . Live Chart Style Ċ import Ġjava . text . NumberFormat Ċ import Ġjava . text . SimpleDateFormat Ċ import Ġjava . util .* Ċ import Ġkotlin . math . round ToInt Ċ Ċ class ĠMainActivity Ġ: ĠAppCompatActivity () Ġ{ ĊĠĠĠ Ġ// ĠInitialize Ġglobal Ġvariables ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġquestion naire Card View : ĠCard View ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġstates Spinner : ĠSp inner ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġinf ected LinearLayout : ĠLinearLayout ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġv acc inated LinearLayout : ĠLinearLayout ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġdeath s LinearLayout : ĠLinearLayout ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġdate TextView : ĠTextView ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġsettings ImageView : ĠImageView ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġlatest Update Title TextView : ĠTextView ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġlatest Update TextView : ĠTextView ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġinf ected TextView : ĠTextView ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġv acc inated TextView : ĠTextView ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġdeath s TextView : ĠTextView ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġnew Inf ected TextView : ĠTextView ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġnew V acc inated TextView : ĠTextView ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġnew Death s TextView : ĠTextView ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġdetails Link TextView : ĠTextView ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġline Chart TextView : ĠTextView ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġline Chart : ĠLive Chart ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġline Chart Date TextView : ĠTextView ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġline Chart Daily TextView : ĠTextView ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġline Chart Sum TextView : ĠTextView ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġch or ople th TextView : ĠTextView ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġd 3 WebView : ĠWebView ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġd 3 State TextView : ĠTextView ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġd 3 Total TextView : ĠTextView ĊĊĠĠĠ Ġprivate Ġvar Ġvis Selected Ġ= Ġ" INF ECT ED " ĊĠĠĠ Ġprivate Ġvar Ġstate Selected Ġ= Ġ" US " ĊĠĠĠ Ġprivate Ġvar Ġcode Selected Ġ= Ġ" US " ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠIt Ġdoes Ġa Ġlot Ġof Ġstuff , Ġread Ġcomments . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Suppress Lint (" Set JavaScript Enabled ") ĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠShow Ġlayout ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġset Theme ( R . style . Theme _ white ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ main ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠGet Ġcomponents Ġfrom Ġlayout ĊĠĠĠĠĠĠĠ Ġquestion naire Card View Ġ= ĠfindViewById ( R . id . cv _ question naire _ button ) ĊĊĠĠĠĠĠĠĠ Ġstates Spinner Ġ= ĠfindViewById ( R . id . sp _ states ) ĊĊĠĠĠĠĠĠĠ Ġinf ected LinearLayout Ġ= ĠfindViewById ( R . id . cv _ inf ected ) ĊĠĠĠĠĠĠĠ Ġv acc inated LinearLayout Ġ= ĠfindViewById ( R . id . cv _ v acc inated ) ĊĠĠĠĠĠĠĠ Ġdeath s LinearLayout Ġ= ĠfindViewById ( R . id . cv _ deaths ) ĊĊĠĠĠĠĠĠĠ Ġdate TextView Ġ= ĠfindViewById ( R . id . tv _ date ) ĊĠĠĠĠĠĠĠ Ġsettings ImageView Ġ= ĠfindViewById ( R . id . iv _ settings ) ĊĊĠĠĠĠĠĠĠ Ġlatest Update Title TextView Ġ= ĠfindViewById ( R . id . tv _ latest _ update _ title ) ĊĠĠĠĠĠĠĠ Ġlatest Update TextView Ġ= ĠfindViewById ( R . id . tv _ latest _ update ) ĊĊĠĠĠĠĠĠĠ Ġinf ected TextView Ġ= ĠfindViewById ( R . id . tv _ inf ected ) ĊĠĠĠĠĠĠĠ Ġv acc inated TextView Ġ= ĠfindViewById ( R . id . tv _ v acc inated ) ĊĠĠĠĠĠĠĠ Ġdeath s TextView Ġ= ĠfindViewById ( R . id . tv _ deaths ) ĊĊĠĠĠĠĠĠĠ Ġnew Inf ected TextView Ġ= ĠfindViewById ( R . id . tv _ new _ inf ected ) ĊĠĠĠĠĠĠĠ Ġnew V acc inated TextView Ġ= ĠfindViewById ( R . id . tv _ new _ v acc inated ) ĊĠĠĠĠĠĠĠ Ġnew Death s TextView Ġ= ĠfindViewById ( R . id . tv _ new _ deaths ) ĊĊĠĠĠĠĠĠĠ Ġdetails Link TextView Ġ= ĠfindViewById ( R . id . tv _ details ) ĊĊĠĠĠĠĠĠĠ Ġline Chart TextView Ġ= ĠfindViewById ( R . id . tv _ line _ chart ) ĊĊĠĠĠĠĠĠĠ Ġline Chart Ġ= ĠfindViewById ( R . id . line _ chart ) ĊĠĠĠĠĠĠĠ Ġline Chart Date TextView Ġ= ĠfindViewById ( R . id . live _ chart _ date ) ĊĠĠĠĠĠĠĠ Ġline Chart Sum TextView Ġ= ĠfindViewById ( R . id . live _ chart _ sum ) ĊĠĠĠĠĠĠĠ Ġline Chart Daily TextView Ġ= ĠfindViewById ( R . id . live _ chart _ daily ) ĊĊĠĠĠĠĠĠĠ Ġd 3 WebView Ġ= ĠfindViewById ( R . id . wv _ d 3 ) ĊĊĠĠĠĠĠĠĠ Ġch or ople th TextView Ġ= ĠfindViewById ( R . id . tv _ chor ople th ) ĊĊĠĠĠĠĠĠĠ Ġd 3 State TextView Ġ= ĠfindViewById ( R . id . tv _ d 3 _ state ) ĊĠĠĠĠĠĠĠ Ġd 3 Total TextView Ġ= ĠfindViewById ( R . id . tv _ d 3 _ total ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠAssign ĠWebView Ġsettings ĊĠĠĠĠĠĠĠ Ġd 3 WebView . settings . java Script Enabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġd 3 WebView . settings . use Wide View Port Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġd 3 WebView . settings . allow Content Access Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġd 3 WebView . settings . allow File Access Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġd 3 WebView . setInitial Scale ( 1 ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠGet Ġphone 's ĠShare Preferences ĊĠĠĠĠĠĠĠ Ġval Ġshared Preferences Ġ= Ġget SharedPreferences (" CO VID _ 1 9 ", ĠContext . MODE _ PRIVATE ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠSet Ġtoday 's Ġdate Ġtext ĊĠĠĠĠĠĠĠ Ġdate TextView . text Ġ= ĠSimpleDateFormat (" EEEE , ĠM MM Ġd , Ġy yyy ", ĠLocale . US ). format ( Calendar . getInstance (). time ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠAssign Ġitems Ġand Ġstyling Ġto Ġspinner ĊĠĠĠĠĠĠĠ Ġval Ġstates Spinner Adapter : ĠArray Adapter < *> Ġ= ĠArray Adapter . createFrom Resource ( this , ĠR . array . states , ĠR . layout . spinner _ states _ item ) ĊĠĠĠĠĠĠĠ Ġstates Spinner Adapter . set DropDown View Resource ( R . layout . spinner _ states _ dropdown _ item ) ĊĠĠĠĠĠĠĠ Ġstates Spinner . adapter Ġ= Ġstates Spinner Adapter ĊĊĠĠĠĠĠĠĠ Ġ// ĠStates Ġspinner Ġlistener ĊĠĠĠĠĠĠĠ Ġstates Spinner . on ItemSelected Listener Ġ= Ġobject Ġ: ĠAdapter View . On ItemSelected Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon ItemSelected ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadapter View : ĠAdapter View < *> ?, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview : ĠView ?, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġposition : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid : ĠLong ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠUpdate Ġglobal Ġvariable Ġstate Selected ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstate Selected Ġ= Ġadapter View ?. getItem At Position ( position ). toString () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠUpdate Ġglobal Ġvariable Ġcode Selected ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcode Selected Ġ= Ġif Ġ( state Selected Ġ!= Ġ" All ĠStates ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠStates (). get States Map ()[ adapter View ?. getItem At Position ( position )]. toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" US " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠUpdate Ġdata Ġand Ġvisual izations ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Data And Visual izations ( shared Preferences , Ġfalse ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠClear ĠCh or ople th ĠMap Ġstate Ġoutline ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġd 3 WebView . pivot X Ġ= Ġ 0 F ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Nothing Selected ( parent : ĠAdapter View < *> ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠIgnore , Ġthere Ġis Ġalways Ġan Ġitem Ġselected ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠInf ected , ĠV acc inated , Ġand ĠDe ath s Ġcard Ġlistener ĊĠĠĠĠĠĠĠ Ġ// ĠUpdates Ġthe Ġglobal Ġvariable Ġvis Selected Ġand Ġupdates Ġdata Ġvisual izations ĊĠĠĠĠĠĠĠ Ġinf ected LinearLayout . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvis Selected Ġ= Ġ" INF ECT ED " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Data And Visual izations ( shared Preferences , Ġtrue ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġv acc inated LinearLayout . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvis Selected Ġ= Ġ" V ACC IN ATED " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Data And Visual izations ( shared Preferences , Ġtrue ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġdeath s LinearLayout . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvis Selected Ġ= Ġ" DE ATH S " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Data And Visual izations ( shared Preferences , Ġtrue ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠWebView Ġlistener ĊĠĠĠĠĠĠĠ Ġd 3 WebView . add Javascript Interface ( Ġobject Ġ: ĠAny () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Javascript Interface ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun ĠsetState Text ( state : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrun On Ui Thread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠFormat Ġselected Ġstate Ġfrom Ġ" New ĠYork " Ġto Ġ" NEW Y ORK " Ġor Ġ" All ĠStates " Ġto Ġ" US " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġselected Formatted Ġ= Ġstate . replace (" Ġ", Ġ""). uppercase ( Locale . US ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠGets Ġthe Ġstate Ġselected Ġand Ġtotals ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstate Text Ġ= Ġ" State : Ġ$ state " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtotal Text Ġ= Ġ Ġ" Total Ġ${ vis Selected . lowercase ( Locale . US )} : Ġ${ shared Preferences . getString ("${ selected Formatted }_${ vis Selected }", Ġ" 0 ") }" ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠSets Ġthe Ġstate Ġselected Ġand Ġtotals ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġd 3 State TextView . text Ġ= Ġstate Text ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġd 3 Total TextView . text Ġ= Ġtotal Text ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠSets Ġspinner Ġvalue Ġto Ġmatch Ġmap Ġselection ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġindex Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġstates Spinner . count ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( states Spinner . getItem At Position ( i ). toString () Ġ== Ġstate ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġindex Ġ= Ġi ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstates Spinner . setSelection ( index ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Javascript Interface ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġset Country Text () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrun On Ui Thread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠGets Ġthe Ġstate Ġselected Ġand Ġtotals ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstate Text Ġ= Ġ" State : ĠAll ĠStates " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtotal Text Ġ= Ġ Ġ" Total Ġ${ vis Selected . lowercase ( Locale . US )} : Ġ${ shared Preferences . getString (" US _${ vis Selected }", Ġ" 0 ") }" ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠSets Ġthe Ġstate Ġselected Ġand Ġtotals ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġd 3 State TextView . text Ġ= Ġstate Text ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġd 3 Total TextView . text Ġ= Ġtotal Text ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠSets Ġspinner Ġvalue Ġto Ġfirst Ġindex Ġ[ All ĠStates ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstates Spinner . setSelection ( 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}, Ġ" kotlin ") ĊĊĠĠĠĠĠĠĠ Ġ// ĠDraw ĠCh or ople th ĠMap ĊĠĠĠĠĠĠĠ Ġset Ch or ople th Map ( d 3 WebView , Ġshared Preferences ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠSettings Ġlink Ġlistener ĊĠĠĠĠĠĠĠ Ġsettings ImageView . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠStarts Ġsettings Ġactivity ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( this , ĠSettings Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠQuestion naire Ġlink Ġlistener ĊĠĠĠĠĠĠĠ Ġquestion naire Card View . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠStarts Ġquestion naire Ġactivity ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( this , ĠQuestion naire Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠRemoves Ġhyper link 's Ġunder lining ĊĠĠĠĠĠĠĠ Ġval Ġs Ġ= ĠHtml Compat . from Html ("< a Ġhref =' https :// covid . cdc . gov / covid - data - tracker /# datat rack er - home '> Details </ a >", ĠHtml Compat . FROM _ HTML _ MODE _ LEG ACY ) Ġas ĠSp ann able ĊĠĠĠĠĠĠĠ Ġfor Ġ( u Ġin Ġs . get Spans ( 0 , Ġs . length , ĠURL Span :: class . java )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġs . set Span ( object Ġ: ĠUnder line Span () Ġ{ Ġoverride Ġfun Ġupdate Draw State ( tp : ĠText Paint ) Ġ{ Ġtp . is Underline Text Ġ= Ġfalse Ġ} Ġ}, Ġs . get Span Start ( u ), Ġs . get Span End ( u ), Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġdetails Link TextView . text Ġ= Ġs ĊĠĠĠĠĠĠĠ Ġ// ĠOpen ĠC DC Ġhyper link ĊĠĠĠĠĠĠĠ Ġdetails Link TextView . movement Method Ġ= ĠLink Movement Method . getInstance () ĊĊĠĠĠĠĠĠĠ Ġ// ĠRemove Ġtitle Ġbar ĊĠĠĠĠĠĠĠ Ġif Ġ( support ActionBar Ġ!= Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsupport ActionBar ?. hide () ĊĊĠĠĠĠĠĠĠ Ġ// ĠSup press Ġdark Ġmode ĊĠĠĠĠĠĠĠ ĠAppCompat Delegate . setDefault Night Mode ( AppCompat Delegate . MODE _ N IGHT _ NO ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupdate Data And Visual izations ( shared Preferences : ĠSharedPreferences , Ġcalled From Card View : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠSet Ġcard Ġtext ĊĠĠĠĠĠĠĠ Ġset Card Text ( shared Preferences ) ĊĠĠĠĠĠĠĠ Ġ// ĠSet Ġinitial ĠLine Chart Ġtooltip Ġtext ĊĠĠĠĠĠĠĠ Ġset Initial Line Chart ToolTip ( shared Preferences ) ĊĠĠĠĠĠĠĠ Ġ// ĠDraw ĠLine Chart ĊĠĠĠĠĠĠĠ Ġset Line Chart ( line Chart , Ġshared Preferences ) ĊĠĠĠĠĠĠĠ Ġ// ĠSet Ġinitial ĠCh or ople th Ġtooltip Ġtext ĊĠĠĠĠĠĠĠ Ġset Initial Ch or ople th ToolTip ( shared Preferences ) ĊĠĠĠĠĠĠĠ Ġ// ĠDraw ĠCh or ople th ĠMap ĊĠĠĠĠĠĠĠ Ġif Ġ( called From Card View ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Ch or ople th Map ( d 3 WebView , Ġshared Preferences ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSets Ġthe Ġtext Ġfor Ġvarious ĠText Views Ġwith ĠCOVID - 1 9 Ġdata Ġbased Ġon Ġwhat 's Ġfound Ġon Ġ[ shared Preferences ]. ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġset Card Text ( shared Preferences : ĠSharedPreferences ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠSet ĠC ards Ġsubtitle Ġtext ĊĠĠĠĠĠĠĠ Ġval Ġlatest Update Tile Text Ġ= Ġ"$ code Selected ĠC ases ĠOverview " ĊĠĠĠĠĠĠĠ Ġlatest Update Title TextView . text Ġ= Ġlatest Update Tile Text ĊĊĠĠĠĠĠĠĠ Ġ// ĠFormat Ġselected Ġstate Ġfrom Ġ" New ĠYork " Ġto Ġ" NEW Y ORK " Ġor Ġ" All ĠStates " Ġto Ġ" US " ĊĠĠĠĠĠĠĠ Ġval Ġstate Ġ= Ġif Ġ( state Selected Ġ== Ġ" All ĠStates ") Ġ" US " Ġelse Ġstate Selected . uppercase ( Locale . ROOT ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. replace (" Ġ", Ġ"") ĊĊĠĠĠĠĠĠĠ Ġ// ĠSet Ġlast Ġupdated Ġtext ĊĠĠĠĠĠĠĠ Ġlatest Update TextView . text Ġ= Ġshared Preferences . getString ("${ state }_ UPDATED ", Ġ" Unknown ") ĊĊĠĠĠĠĠĠĠ Ġ// ĠSet Ġtotal Ġnumbers ĊĠĠĠĠĠĠĠ Ġinf ected TextView . text Ġ= Ġshared Preferences . getString ("${ state }_ INF ECT ED ", Ġ" Unknown ") ĊĠĠĠĠĠĠĠ Ġv acc inated TextView . text Ġ= Ġshared Preferences . getString ("${ state }_ V ACC IN ATED ", Ġ" Unknown ") ĊĠĠĠĠĠĠĠ Ġdeath s TextView . text Ġ= Ġshared Preferences . getString ("${ state }_ DE ATH S ", Ġ" Unknown ") ĊĊĠĠĠĠĠĠĠ Ġ// ĠGet Ġnew Ġnumbers ĊĠĠĠĠĠĠĠ Ġval Ġnew Inf ected Ġ= Ġshared Preferences . getString ("${ state }_ NEW _ INF ECT ED ", Ġ" 0 ") ĊĠĠĠĠĠĠĠ Ġval Ġnew V acc inated Ġ= Ġshared Preferences . getString ("${ state }_ NEW _ V ACC IN ATED ", Ġ" 0 ") ĊĠĠĠĠĠĠĠ Ġval Ġnew Death s Ġ= Ġshared Preferences . getString ("${ state }_ NEW _ DE ATH S ", Ġ" 0 ") ĊĊĠĠĠĠĠĠĠ Ġ// ĠFormat Ġnew Ġnumbers ĊĠĠĠĠĠĠĠ Ġval Ġformatted New Inf ected Ġ= Ġif Ġ( new Inf ected !!. replace (",", Ġ""). toInt () Ġ<= Ġ 0 ) Ġ" No ĠChanges " Ġelse Ġ"+ Ġ$ new Inf ected " ĊĠĠĠĠĠĠĠ Ġval Ġformatted New V acc inated Ġ= Ġif Ġ( new V acc inated !!. replace (",", Ġ""). toInt () Ġ<= Ġ 0 ) Ġ" No ĠChanges " Ġelse Ġ"+ Ġ$ new V acc inated " ĊĠĠĠĠĠĠĠ Ġval Ġformatted New Death s Ġ= Ġif Ġ( new Death s !!. replace (",", Ġ""). toInt () Ġ<= Ġ 0 ) Ġ" No ĠChanges " Ġelse Ġ"+ Ġ$ new Death s " ĊĊĠĠĠĠĠĠĠ Ġ// ĠSet Ġnew Ġnumbers ĊĠĠĠĠĠĠĠ Ġnew Inf ected TextView . text Ġ= Ġformatted New Inf ected ĊĠĠĠĠĠĠĠ Ġnew V acc inated TextView . text Ġ= Ġformatted New V acc inated ĊĠĠĠĠĠĠĠ Ġnew Death s TextView . text Ġ= Ġformatted New Death s ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSets Ġthe Ġtext Ġfor Ġthe ĠLine Chart Ġtooltip 's ĠText Views Ġwith ĠCOVID - 1 9 Ġdata Ġbased Ġon Ġwhat 's Ġfound Ġon Ġ[ shared Preferences ]. ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġset Initial Line Chart ToolTip ( shared Preferences : ĠSharedPreferences ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠSet ĠLine Chart Ġsubtitle Ġtext ĊĠĠĠĠĠĠĠ Ġval Ġline Chart Text Ġ= Ġ"$ code Selected Ġ${ vis Selected . lowercase ( Locale . ROOT ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. replace First Char Ġ{ Ġif Ġ( it . is LowerCase ()) Ġit . title case ( Locale . ROOT ) Ġelse Ġit . toString () Ġ}} ĠOver ĠTime " ĊĠĠĠĠĠĠĠ Ġline Chart TextView . text Ġ= Ġline Chart Text ĊĊĠĠĠĠĠĠĠ Ġ// ĠFormat Ġselected Ġstate Ġfrom Ġ" New ĠYork " Ġto Ġ" NEW Y ORK " Ġor Ġ" All ĠStates " Ġto Ġ" US " ĊĠĠĠĠĠĠĠ Ġval Ġstate Ġ= Ġif Ġ( state Selected Ġ== Ġ" All ĠStates ") Ġ" US " Ġelse Ġstate Selected . uppercase ( Locale . ROOT ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. replace (" Ġ", Ġ"") ĊĊĠĠĠĠĠĠĠ Ġ// ĠGet Ġlist Ġsize ĊĠĠĠĠĠĠĠ Ġval Ġlist Size Ġ= Ġshared Preferences . getInt ("${ state }_${ vis Selected }_ LIST _ SIZE ", Ġ 0 ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠGet Ġdate Ġand Ġformat Ġit Ġas ĠMM / DD / YYYY ĊĠĠĠĠĠĠĠ Ġval Ġline Chart Date Text Ġ= Ġif Ġ( shared Preferences . getString ("${ state }_${ vis Selected }_ LIST _ DATE _${ list Size Ġ- Ġ 1 }", Ġ" No ĠDate ") !!. contains ("/ ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Date : Ġ${ shared Preferences . getString ("${ state }_${ vis Selected }_ LIST _ DATE _${ list Size Ġ- Ġ 1 }", Ġ" No ĠDate ") }" ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdate Split Ġ= Ġshared Preferences . getString ("${ state }_${ vis Selected }_ LIST _ DATE _${ list Size Ġ- Ġ 1 }", Ġ" No ĠDate ") !!. split (" T ")[ 0 ]. split ("- ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Date : Ġ${ if Ġ( date Split [ 1 ][ 0 ] Ġ== Ġ' 0 ') Ġdate Split [ 1 ][ 1 ] Ġelse Ġdate Split [ 1 ] }/${ if Ġ( date Split [ 2 ][ 0 ] Ġ== Ġ' 0 ') Ġdate Split [ 2 ][ 1 ] Ġelse Ġdate Split [ 2 ] }/${ date Split [ 0 ]}" ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠGet Ġtotals Ġand Ġdaily ĊĠĠĠĠĠĠĠ Ġval Ġline Chart Sum Text Ġ= Ġ" Total Ġ${ vis Selected . lowercase ( Locale . ROOT )} : Ġ${ NumberFormat . getNumber Instance ( Locale . US ). format ( shared Preferences . getString ("${ state }_${ vis Selected }_ LIST _ SUM _${ list Size Ġ- Ġ 1 }", Ġ" 0 ") !!. toFloat ()) }" ĊĠĠĠĠĠĠĠ Ġval Ġline Chart Daily Text Ġ= Ġ"${ vis Selected . lowercase ( Locale . ROOT ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. replace First Char Ġ{ Ġif Ġ( it . is LowerCase ()) Ġit . title case ( Locale . ROOT ) Ġelse Ġit . toString () Ġ}} : Ġ${ NumberFormat . getNumber Instance ( Locale . US ). format ( shared Preferences . getString ("${ state }_${ vis Selected }_ LIST _${ list Size Ġ- Ġ 1 }", Ġ" 0 ") !!. toFloat ()) }" ĊĊĠĠĠĠĠĠĠ Ġ// ĠSet Ġdate , Ġtotals , Ġand Ġdaily Ġtext ĊĠĠĠĠĠĠĠ Ġline Chart Date TextView . text Ġ= Ġline Chart Date Text ĊĠĠĠĠĠĠĠ Ġline Chart Sum TextView . text Ġ= Ġline Chart Sum Text ĊĠĠĠĠĠĠĠ Ġline Chart Daily TextView . text Ġ= Ġline Chart Daily Text ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠDraw s Ġthe Ġ[ live Chart ] Ġbased Ġon Ġthe ĠGlobal Ġvariable Ġ[ vis Selected ] Ġvisualization Ġand Ġthe Ġ[ state Selected ] Ġby Ġretrieving ĠCOVID - 1 9 Ġdata Ġfrom Ġthe Ġphone 's Ġ[ shared Preferences ]. ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġset Line Chart ( ĊĠĠĠĠĠĠĠ Ġlive Chart : ĠLive Chart , ĊĠĠĠĠĠĠĠ Ġshared Preferences : ĠSharedPreferences , ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠInitialize Ġempty ĠMutable ĠLists Ġto Ġstore Ġdata Ġpoints Ġand Ġdates ĊĠĠĠĠĠĠĠ Ġval Ġdate Re corded Ġ: ĠMutable List < String > Ġ= Ġmutable ListOf () ĊĠĠĠĠĠĠĠ Ġval Ġcumulative Re corded Ġ: ĠMutable List < DataPoint > Ġ= Ġmutable ListOf () ĊĠĠĠĠĠĠĠ Ġval Ġrecorded Ġ: ĠMutable List < DataPoint > Ġ= Ġmutable ListOf () ĊĊĠĠĠĠĠĠĠ Ġ// ĠFormat Ġselected Ġstate Ġfrom Ġ" New ĠYork " Ġto Ġ" NEW Y ORK " Ġor Ġ" All ĠStates " Ġto Ġ" US " ĊĠĠĠĠĠĠĠ Ġval Ġstate Ġ= Ġif Ġ( state Selected Ġ== Ġ" All ĠStates ") Ġ" US " Ġelse Ġstate Selected . uppercase ( Locale . ROOT ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. replace (" Ġ", Ġ"") ĊĊĠĠĠĠĠĠĠ Ġ// ĠGet Ġlist Ġsize Ġfrom ĠSharedPreferences ĊĠĠĠĠĠĠĠ Ġval Ġlist Size Ġ= Ġshared Preferences . getInt ("${ state }_${ vis Selected }_ LIST _ SIZE ", Ġ 0 ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠAdd Ġdata Ġfrom ĠSharedPreferences Ġto ĠMutable ĠLists ĊĠĠĠĠĠĠĠ Ġvar Ġskipped Data Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġlist Size ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdata Ġ: ĠFloat ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠSkip Ġnegative Ġnumbers ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( shared Preferences . getString ("${ state }_${ vis Selected }_ LIST _$ i ", Ġ" 0 ") !!. toFloat () Ġ>= Ġ 0 f ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠNon - negative Ġnumber Ġfound ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata Ġ= Ġshared Preferences . getString ("${ state }_${ vis Selected }_ LIST _$ i ", Ġ" 0 ") !!. toFloat () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠKeep Ġtrack Ġof Ġskipped Ġnumbers ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġskipped Data Ġ+= Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠContinue Ġto Ġnext Ġiteration Ġin Ġfor - loop ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontinue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠAdd Ġall Ġthe Ġdata Ġof Ġnon - negative Ġnumbers Ġto Ġthe Ġlists ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdate Re corded . add ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshared Preferences . getString ("${ state }_${ vis Selected }_ LIST _ DATE _$ i ", Ġ" 0 ") !! ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrecorded . add ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠData Point (( i Ġ- Ġskipped Data ). toFloat (), Ġdata ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcumulative Re corded . add ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠData Point (( i Ġ- Ġskipped Data ). toFloat (), Ġshared Preferences . getString ("${ state }_${ vis Selected }_ LIST _ SUM _$ i ", Ġ" 0 ") !!. toFloat ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠInitialize ĠDataSet Ġfor ĠLine Chart ĊĠĠĠĠĠĠĠ Ġval Ġmain DataSet Ġ= ĠDataset ( re corded ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠDraw ĠLine ĠChart ĊĠĠĠĠĠĠĠ Ġlive Chart ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Dataset ( main DataSet ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Live Chart Style ( getLine Chart Style ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setOn Touch Callback Listener ( object Ġ: ĠLive Chart . On Touch Callback Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ĠSets Ġthe Ġtext Ġinside Ġthe Ġ[ live Chart ] Ġwith Ġmatching Ġfrom Ġthe Ġline Ġbased Ġon Ġwhat 's Ġfound Ġon Ġ[ shared Preferences ] Ġwhen Ġtouch ing Ġthe Ġ[ live Chart ] Ġby Ġusing Ġ[ point ]. x Ġas Ġindex . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġand Ġstops Ġscrolling Ġfrom ĠScroll View Ġwhen Ġtouch ing Ġthe Ġchart ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Touch Callback ( point : ĠData Point ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠConvert Ġpoint . x : ĠFloat Ġto ĠInt ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġi Ġ= Ġpoint . x . round ToInt () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠForm ats Ġdate Ġto ĠMM / DD / YYYY ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġline Chart Date Text Ġ= Ġif Ġ( date Re corded [ i ]. contains ("/ ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Date : Ġ${ date Re corded [ i ]}" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdate Split Ġ= Ġdate Re corded [ i ]. split (" T ")[ 0 ]. split ("- ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Date : Ġ${ if Ġ( date Split [ 1 ][ 0 ] Ġ== Ġ' 0 ') Ġdate Split [ 1 ][ 1 ] Ġelse Ġdate Split [ 1 ] }/${ if Ġ( date Split [ 2 ][ 0 ] Ġ== Ġ' 0 ') Ġdate Split [ 2 ][ 1 ] Ġelse Ġdate Split [ 2 ] }/${ date Split [ 0 ]}" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠGets Ġtotals Ġand Ġdaily Ġnumbers ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġline Chart Sum Text Ġ= Ġ" Total Ġ${ vis Selected . lowercase ( Locale . ROOT )} : Ġ${ NumberFormat . getNumber Instance ( Locale . US ). format ( cumulative Re corded [ i ]. y )}" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġline Chart Daily Text Ġ= Ġ"${ vis Selected . lowercase ( Locale . ROOT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. replace First Char Ġ{ Ġif Ġ( it . is LowerCase ()) Ġit . title case ( Locale . ROOT ) Ġelse Ġit . toString () Ġ}} : Ġ${ NumberFormat . getNumber Instance ( Locale . US ). format ( re corded [ i ]. y )}" ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠSets Ġthe ĠLine Chart Ġtooltip Ġtext ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġline Chart Date TextView . text Ġ= Ġline Chart Date Text ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġline Chart Sum TextView . text Ġ= Ġline Chart Sum Text ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġline Chart Daily TextView . text Ġ= Ġline Chart Daily Text ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠSto ps Ġscreen Ġscrolling Ġwhen Ġinteracting Ġwith ĠLine Chart ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlive Chart . parent . request Dis allow Intercept Touch Event ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠRest ores Ġscreen Ġscrolling Ġwhen Ġfinished Ġinteracting Ġwith ĠLine Chart ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Touch Finished () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlive Chart . parent . request Dis allow Intercept Touch Event ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. draw Baseline () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Baseline Man ually ( re corded [ re corded . size Ġ- Ġ 1 ]. y ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. draw Smooth Path () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. draw Dataset () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReturns Ġa ĠLive Chart Style Ġbased Ġon Ġ[ vis Selected ] ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġget Line Chart Style (): ĠLive Chart Style Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠLive Chart Style (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠDetermines Ġthe Ġmain Ġcolor ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmain Color Ġ= Ġwhen Ġ( vis Selected ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" INF ECT ED " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠContext Compat . getColor ( this @ MainActivity , ĠR . color . orange ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" V ACC IN ATED " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠContext Compat . getColor ( this @ MainActivity , ĠR . color . green ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠContext Compat . getColor ( this @ MainActivity , ĠR . color . red ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠSets Ġcolors ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverlay Line Color Ġ= ĠContext Compat . getColor ( this @ MainActivity , ĠR . color . light _ gray 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverlay Circle Color Ġ= ĠContext Compat . getColor ( this @ MainActivity , ĠR . color . gray ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbaseline Color Ġ= ĠContext Compat . getColor ( this @ MainActivity , ĠR . color . light _ gray 2 ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠSets Ġdimensions ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpath Stroke Width Ġ= Ġ 4 f ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbaseline Stroke Width Ġ= Ġ 4 f ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverlay Circle Di ameter Ġ= Ġ 1 0 f ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSets Ġthe Ġtext Ġfor Ġthe ĠCh or ople th ĠMap Ġtooltip 's ĠText Views Ġwith ĠCOVID - 1 9 Ġdata Ġbased Ġon Ġwhat 's Ġfound Ġon Ġ[ shared Preferences ]. ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġset Initial Ch or ople th ToolTip ( shared Preferences : ĠSharedPreferences ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠSet ĠCh or ople th Ġsubtitle Ġtext ĊĠĠĠĠĠĠĠ Ġval Ġch or ople th Text Ġ= Ġ" US Ġ${ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvis Selected . lowercase ( Locale . ROOT ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. replace First Char Ġ{ Ġif Ġ( it . is LowerCase ()) Ġit . title case ( Locale . ROOT ) Ġelse Ġit . toString () Ġ}} ĠMap " ĊĠĠĠĠĠĠĠ Ġch or ople th TextView . text Ġ= Ġch or ople th Text ĊĊĠĠĠĠĠĠĠ Ġ// ĠFormat Ġselected Ġstate Ġfrom Ġ" New ĠYork " Ġto Ġ" NEW Y ORK " Ġor Ġ" All ĠStates " Ġto Ġ" US " ĊĠĠĠĠĠĠĠ Ġval Ġstate Ġ= Ġif Ġ( state Selected Ġ== Ġ" All ĠStates ") Ġ" US " Ġelse Ġstate Selected . uppercase ( Locale . ROOT ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. replace (" Ġ", Ġ"") ĊĊĠĠĠĠĠĠĠ Ġ// ĠGet Ġlist Ġsize Ġfrom ĠSharedPreferences ĊĠĠĠĠĠĠĠ Ġval Ġlist Size Ġ= Ġshared Preferences . getInt ("${ state }_${ vis Selected }_ LIST _ SIZE ", Ġ 0 ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠGets Ġthe Ġstate Ġselected Ġand Ġtotals ĊĠĠĠĠĠĠĠ Ġval Ġd 3 State Text Ġ= Ġ" State : Ġ${ state Selected . replace First Char Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . is LowerCase ()) Ġit . title case ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLocale . ROOT ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġelse Ġit . toString () ĊĠĠĠĠĠĠĠ Ġ}}" ĊĠĠĠĠĠĠĠ Ġval Ġd 3 Total Text Ġ= Ġ" Total Ġ${ vis Selected . lowercase ( Locale . ROOT )} : Ġ${ NumberFormat . getNumber Instance ( Locale . US ). format ( shared Preferences . getString ("${ state }_${ vis Selected }_ LIST _ SUM _${ list Size Ġ- Ġ 1 }", Ġ" 0 ") !!. toFloat ()) }" ĊĊĠĠĠĠĠĠĠ Ġ// ĠSets Ġthe ĠCh or ople th Ġtooltip Ġtext ĊĠĠĠĠĠĠĠ Ġd 3 State TextView . text Ġ= Ġd 3 State Text ĊĠĠĠĠĠĠĠ Ġd 3 Total TextView . text Ġ= Ġd 3 Total Text ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠLoads Ġhtml Ġfile Ġin ĠWebView Ġand Ġcalls ĠJavaScript Ġfunction Ġwith Ġparameters Ġas Ġstrings ĊĠĠĠĠ Ġ* ĠArray Ġof Ġdata Ġvalues , Ġarray Ġof Ġstates Ġvalues , Ġtotal , Ġstate Selected , Ġvis Selected , ĠWebView Ġwidth , Ġand ĠWebView Ġheight . ĊĠĠĠĠ Ġ* Ġe . g . Ġmake Ch or ople th Map ('[ 0 , 1 , 2 , ..., 1 0 ]', Ġ'[ Al ab ama , Al ask a , ..., Wy om ing ]', Ġ' 1 0 0 0 0 0 0 ', Ġ' California ', Ġ' INF ECT ED ', Ġ' 9 0 0 ', Ġ' 6 0 0 '); ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġset Ch or ople th Map ( d 3 WebView Ġ: ĠWebView , Ġshared Preferences : ĠSharedPreferences ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠLoad ĠWebView Ġfile ĊĠĠĠĠĠĠĠ Ġd 3 WebView . load Url (" file :/// android _ asset / html / chor ople th Map . html ") ĊĊĠĠĠĠĠĠĠ Ġ// ĠWait Ġfor Ġclient Ġto Ġload Ġthe Ġfile ĊĠĠĠĠĠĠĠ Ġd 3 WebView . web View Client Ġ= Ġobject Ġ: ĠWebView Client () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Page Finished ( view : ĠWebView , Ġurl : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠGet Ġstring Ġarray Ġstates Ġfrom Ġarrays . xml ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstates String Array Ġ= Ġresources . getString Array ( R . array . states ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstates Ġ= Ġstates String Array . toList (). toString () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠCreate Ġempty Ġmutable Ġlist ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdata Ġ= Ġmutable ListOf < String >() ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠGet ĠU . S ĠTotal Ġnumbers Ġof Ġ[ vis Selected ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtotal Ġ= Ġshared Preferences . getString (" US _${ vis Selected }", Ġ" 0 ") !!. replace (",", Ġ"") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠGet ĠTotal Ġnumbers Ġof Ġeach Ġstate Ġof Ġ[ vis Selected ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstates String Array . forEach Ġ{ Ġstate Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠFormat Ġselected Ġstate Ġfrom Ġ" New ĠYork " Ġto Ġ" NEW Y ORK " Ġor Ġ" All ĠStates " Ġto Ġ" US " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġselected Formatted Ġ= Ġstate . replace (" Ġ", Ġ""). uppercase ( Locale . US ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠAdd Ġvalue Ġto Ġlist ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata . add ( shared Preferences . getString ("${ selected Formatted }_${ vis Selected }", Ġ" 0 ") !!. replace (",", Ġ"")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠGet Ġphone 's Ġorientation Ġto Ġavoid Ġsending Ġwidth Ġas Ġheight Ġand Ġheight Ġas Ġwidth ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġbased Ġon Ġorientation Ġcall ĠJavaScript Ġfunction Ġwith Ġstring Ġformatted Ġarguments ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġorientation Ġ= Ġresources . configuration . orientation ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( orientation Ġ== ĠConfiguration . OR IENTATION _ LAND SC APE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġd 3 WebView . load Url (" javascript : make Ch or ople th Map (' ${ data }', Ġ'${ states }', Ġ'${ total }', Ġ'${ vis Selected }', Ġ'${ d 3 WebView . width }', Ġ${ d 3 WebView . height }); ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġd 3 WebView . load Url (" javascript : make Ch or ople th Map (' ${ data }', Ġ'${ states }', Ġ'${ total }', Ġ'${ vis Selected }', Ġ'${ d 3 WebView . height }', Ġ${ d 3 WebView . width }); ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } ĊĊ