package Ġorg . od k . collect . geo . ge op oint Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . graphics . drawable . Color Drawable Ċ import Ġandroid . os . Build Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . widget . Frame Layout Ċ import Ġorg . od k . collect . android shared . system . Context Utils . get Theme AttributeValue Ċ import Ġorg . od k . collect . geo . Geo Utils . format Accuracy Ċ import Ġorg . od k . collect . geo . R Ċ import Ġorg . od k . collect . geo . databinding . Accuracy Status Binding Ċ Ċ internal Ġclass ĠAccuracy Status View ( context : ĠContext , Ġattrs : ĠAttributeSet ?) Ġ: ĊĠĠĠ ĠFrame Layout ( context , Ġattrs ) Ġ{ ĊĊĠĠĠ Ġconstructor ( context : ĠContext ) Ġ: Ġthis ( context , Ġnull ) ĊĊĠĠĠ Ġvar Ġbinding Ġ= ĠAccuracy Status Binding . inflate ( LayoutInflater . from ( context ), Ġthis , Ġtrue ) ĊĠĠĠĠĠĠĠ Ġprivate Ġset ĊĊĠĠĠ Ġvar Ġaccuracy : ĠGeo Point Accuracy ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( value Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrender ( value ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġrender ( accuracy : ĠGeo Point Accuracy ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġ( backgroundColor , ĠtextColor ) Ġ= Ġget Background And TextColor ( accuracy ) ĊĠĠĠĠĠĠĠ Ġbinding . root . background Ġ= ĠColor Drawable ( backgroundColor ) ĊĠĠĠĠĠĠĠ Ġbinding . title . setTextColor ( textColor ) ĊĠĠĠĠĠĠĠ Ġbinding . text . setTextColor ( textColor ) ĊĠĠĠĠĠĠĠ Ġbinding . current Accuracy . setTextColor ( textColor ) ĊĠĠĠĠĠĠĠ Ġbinding . strength . set Indicator Color ( textColor ) ĊĊĠĠĠĠĠĠĠ Ġbinding . current Accuracy . text Ġ= Ġformat Accuracy ( context , Ġaccuracy . value ) ĊĊĠĠĠĠĠĠĠ Ġval Ġ( text , Ġstrength ) Ġ= ĠgetText And Strength ( accuracy ) ĊĠĠĠĠĠĠĠ Ġbinding . text . setText ( text ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . N ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . strength . set Progress ( strength , Ġtrue ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . strength . progress Ġ= Ġstrength ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Background And TextColor ( accuracy : ĠGeo Point Accuracy ): ĠPair < Int , ĠInt > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( accuracy Ġis ĠGeo Point Accuracy . Un accept able ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Theme AttributeValue ( context , ĠR . attr . color Error ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Theme AttributeValue ( context , ĠR . attr . color OnError ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Theme AttributeValue ( context , ĠR . attr . color Primary ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Theme AttributeValue ( context , ĠR . attr . color On Primary ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠgetText And Strength ( accuracy : ĠGeo Point Accuracy ): ĠPair < Int , ĠInt > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( accuracy ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠGeo Point Accuracy . Impro ving Ġ-> ĠPair ( R . string . impro ving _ accuracy , Ġ 8 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠGeo Point Accuracy . Po or Ġ-> ĠPair ( R . string . po or _ accuracy , Ġ 6 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠGeo Point Accuracy . Un accept able Ġ-> ĠPair ( R . string . un accept able _ accuracy , Ġ 4 0 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ