package Ġnet . my env . my energy . ui . statistics ĊĊ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . View . TEXT _ ALIGNMENT _ TEXT _ END Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . TableRow Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġnet . my env . my energy . Main ViewModel Ċ import Ġnet . my env . my energy . R Ċ import Ġnet . my env . my energy . databinding . Fragment Statistics Binding Ċ import Ġnet . my env . my energy . databinding . TableRow Binding Ċ import Ġnet . my env . my energy . model . Energy Stats Ċ import Ġnet . my env . my energy . model . Result Ċ import Ġnet . my env . my energy . utils . extension . getDate from Timestamp Ċ import Ġnet . my env . my energy . utils . extension . show Ċ import Ġorg . k oin . android x . view model . ext . android . shared ViewModel Ċ import Ġorg . k oin . android x . view model . ext . android . viewModel ĊĊ Ċ class ĠStatistics Fragment Ġ: ĠFragment () Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġmain ViewModel Ġby Ġshared ViewModel < Main ViewModel >() ĊĊĠĠĠ Ġprivate Ġvar Ġ_ binding : ĠFragment Statistics Binding ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġval Ġbinding Ġget () Ġ= Ġ_ binding !! ĊĊĠĠĠ Ġprivate Ġval ĠprogressBar Ġby Ġlazy Ġ{ Ġ Ġbinding . progress . root Ġ} ĊĠĠĠ Ġprivate Ġval Ġerror Ġby Ġlazy Ġ{ Ġbinding . not Found Data Ġ} ĊĠĠĠ Ġprivate Ġval Ġstats Table Ġby Ġlazy Ġ{ Ġbinding . stats Table Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , ĊĠĠĠĠĠĠĠ Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView Ġ{ ĊĠĠĠĠĠĠĠ Ġ_ binding Ġ= ĠFragment Statistics Binding . inflate ( in flater , Ġcontainer , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġreturn Ġbinding . root ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġmain ViewModel . get Stats () ĊĠĠĠĠĠĠĠ Ġinit Listener () ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Listener () Ġ{ ĊĠĠĠĠĠĠĠ Ġmain ViewModel . stats Energy . observe ( view Lifecycle Owner , Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( it ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠResult . Loading Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠprogressBar . show ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠResult . Success Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġerror . show ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠprogressBar . show ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstats Table . show ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstats Ġ= Ġit . data Ġas ĠEnergy Stats ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Data ( stats ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠResult . Failure Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġerror . show ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠprogressBar . show ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow Data ( stats : ĠEnergy Stats ) Ġ{ ĊĠĠĠĠĠĠĠ Ġadd Row ( R . string . total _ production , Ġ"${ stats . pv _ production } ĠK W ") ĊĠĠĠĠĠĠĠ Ġadd Row ( R . string . max _ power , Ġstats . max _ power . toString ()) ĊĠĠĠĠĠĠĠ Ġadd Row ( R . string . max _ power _ date , Ġget Date from Timestamp ( stats . max _ power _ date ," yyyy - MM - dd ")) ĊĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġadd Row ( name : ĠInt , Ġvalue : ĠString ){ ĊĠĠĠĠĠĠĠ Ġval Ġtable Row Ġ= ĠTable Row Binding . inflate ( this . layout Inflater ) ĊĠĠĠĠĠĠĠ Ġtable Row . value . text Alignment Ġ= ĠTEXT _ ALIGNMENT _ TEXT _ END ĊĠĠĠĠĠĠĠ Ġtable Row . name . text Ġ= ĠgetString ( name ) ĊĠĠĠĠĠĠĠ Ġtable Row . value . text Ġ= Ġvalue ĊĠĠĠĠĠĠĠ Ġstats Table . addView ( table Row . root ) ĊĠĠĠ Ġ} ĊĊĊ Ċ } Ċ