package Ġcom . aw ave . wrk out . dashboard . work out . work out Progress Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . os . Bundle Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġcom . aw ave . wrk out . R Ċ import Ġcom . aw ave . wrk out . db . Set Ċ import Ġcom . aw ave . wrk out . db . Set Exercise Ċ import Ġcom . aw ave . wrk out . util . Constants Ċ import Ġkotlinx . android . synt hetic . main . activity _ work out _ progress .* Ċ import Ġtim ber . log . Tim ber Ċ Ċ class ĠWork out Progress Activity : ĠAppCompatActivity (), ĠWork out Progress Contract . View Ġ{ ĊĠĠĠ Ġoverride Ġlateinit Ġvar Ġpresenter : ĠWork out Progress Contract . Presenter ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġadapter : ĠWork out Progress Adapter ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ work out _ progress ) ĊĊĊĠĠĠĠĠĠĠ Ġval Ġshared Pref Ġ= Ġget SharedPreferences ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresources ?. getString ( R . string . preference _ file _ key ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠContext . MODE _ PRIVATE ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval ĠuserId Ġ= Ġshared Pref ?. getInt ( Constants . CURRENT _ USER _ ID , Ġ- 1 ) Ġas ĠInt ĊĠĠĠĠĠĠĠ Ġval Ġwork out Id Ġ= Ġintent . getInt Extra ( Constants . WORK OUT _ ID , Ġ 0 ) ĊĠĠĠĠĠĠĠ ĠTim ber . d (" work out Ġ$ work out Id ") ĊĊĠĠĠĠĠĠĠ Ġpresenter Ġ= ĠWork out Progress Presenter ( this , Ġthis ) ĊĠĠĠĠĠĠĠ Ġpresenter . load Ex ercises ( work out Id ) ĊĊĠĠĠĠĠĠĠ Ġadapter Ġ= ĠWork out Progress Adapter ( presenter Ġas ĠWork out Progress Presenter ) ĊĊĠĠĠĠĠĠĠ Ġexercise List . layout Manager Ġ= ĠLinearLayoutManager ( this ) ĊĠĠĠĠĠĠĠ Ġexercise List . adapter Ġ= Ġadapter ĊĊĠĠĠĠĠĠĠ Ġfinish Work out . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġis Finished Ġ= Ġadapter . items . filter Indexed Ġ{ Ġindex , Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġv h Ġ= Ġexercise List . find ViewHolder For Adapter Position ( index ) Ġas ĠWork out Progress ViewHolder ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . d (" finished ? Ġ${ vh . is Complete () }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ filter Indexed Ġv h . is Complete () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. size Ġ== Ġadapter . items . size ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Finished ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcompleted Sets Ġ= ĠHashMap < Int , ĠMutable List < Set >>() ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadapter . items . forEach Indexed Ġ{ Ġindex , Ġset Exercise Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġv h Ġ= Ġexercise List . find ViewHolder For Adapter Position ( index ) Ġas ĠWork out Progress ViewHolder ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcompleted Sets [ set Exercise . exercise Id ] Ġ= Ġv h . get Sets () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpresenter . finish Work out ( userId , Ġwork out Id , Ġcompleted Sets ) Ġ{ Ġfinish () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpresenter . show Warning () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow Ex ercises ( exercises : ĠList < Set Exercise >) Ġ{ ĊĠĠĠĠĠĠĠ Ġadapter . items Ġ= Ġexercises ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Back Pressed () Ġ{ ĊĠĠĠĠĠĠĠ Ġpresenter . show Warning () ĊĠĠĠ Ġ} Ċ }