package Ġdev . wall ace gs . rtp ocket guide . ui . map Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . util . Log Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . annotation . Color Int Ċ import Ġandroidx . core . content . Context Compat Ċ import Ġandroidx . lifecycle . ViewModel Provider Ċ import Ġdev . wall ace gs . rtp ocket guide . databinding . Fragment Map Binding Ċ import Ġdev . wall ace gs . rtp ocket guide . hide Keyboard Ċ Ċ private Ġconst Ġval ĠTAG Ġ= Ġ" MAP Fragment " Ċ Ċ class ĠMAP Fragment Ġ: ĠFragment () Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġ_ binding : ĠFragment Map Binding ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġval Ġbinding Ġget () Ġ= Ġ_ binding !! ĊĠĠĠ Ġprivate Ġlateinit Ġvar ĠviewModel : ĠMap ViewModel ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView Ġ{ ĊĠĠĠĠĠĠĠ Ġ_ binding Ġ= ĠFragment Map Binding . inflate ( in flater , Ġcontainer , Ġfalse ) ĊĊĠĠĠĠĠĠĠ ĠLog . i ( TAG , Ġ" Called ĠViewModel Provider () ") ĊĠĠĠĠĠĠĠ ĠviewModel Ġ= ĠViewModel Provider ( this ). get ( Map ViewModel :: class . java ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġbinding . root ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy View () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy View () ĊĠĠĠĠĠĠĠ Ġ_ binding Ġ= Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠTODO : Ġadd Ġerror Ġhandling Ġfor Ġempty ĠEdit Texts ĊĠĠĠĠĠĠĠ Ġbinding . btn Calculate . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . btn Calculate . isEnabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsyst olic Ġ= Ġbinding . et S yst olic . text . toString (). toFloat () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdi ast olic Ġ= Ġbinding . et Di ast olic . text . toString (). toFloat () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdisplay Map ( syst olic , Ġdi ast olic ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhide Keyboard () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow Results () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbinding . btn Re calculate . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhide Results () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġhide Results () Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding . result Group . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠ Ġbinding . main Group . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġreset Results () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow Results () Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding . main Group . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠ Ġbinding . result Group . visibility Ġ= ĠView . VISIBLE ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġreset Results () Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding . et S yst olic . text . clear () ĊĠĠĠĠĠĠĠ Ġbinding . et Di ast olic . text . clear () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdisplay Map ( syst olic : ĠFloat , Ġdi ast olic : ĠFloat ) Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel . calculate Map ( syst olic , Ġdi ast olic ) ĊĠĠĠĠĠĠĠ Ġ@ Color Int Ġval Ġcolor Int Ġ= Ġcontext ?. let Ġ{ ĠContext Compat . getColor ( it , ĠviewModel . color ) Ġ} ĊĠĠĠĠĠĠĠ Ġbinding . tv Result . text Ġ= ĠviewModel . result Text ĊĠĠĠĠĠĠĠ Ġbinding . tv Num Result . text Ġ= ĠviewModel . num Result Text ĊĠĠĠĠĠĠĠ Ġif Ġ( color Int Ġ!= Ġnull ) Ġbinding . tv Result . setTextColor ( color Int ) ĊĠĠĠ Ġ} Ċ }