package Ġcom . sa arth ak . a 7 min ut ew ork out . model Ċ Ċ import Ġandroid . app . Dialog Ċ import Ġandroid . content . Intent Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . util . Log Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . recyclerview . selection . Selection Pred icates Ċ import Ġandroidx . recyclerview . selection . Selection Tracker Ċ import Ġandroidx . recyclerview . selection . Stable Id Key Provider Ċ import Ġandroidx . recyclerview . selection . Storage Strategy Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġcom . sa arth ak . a 7 min ut ew ork out . R Ċ import Ġcom . sa arth ak . a 7 min ut ew ork out . data . Constants Ċ import Ġcom . sa arth ak . a 7 min ut ew ork out . ui . My Lookup Ċ import Ġcom . sa arth ak . a 7 min ut ew ork out . ui . RecyclerView Adapter 2 Ċ import Ġkotlinx . android . synt hetic . main . activity _ customize .* Ċ import Ġkotlinx . android . synt hetic . main . activity _ exercise .* Ċ import Ġkotlinx . android . synt hetic . main . conf _ dialog .* Ċ import Ġjava . io . Serializable Ċ Ċ class ĠCustom ize Activity Ġ: ĠAppCompatActivity (), ĠSerializable Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġadapter Ġ: ĠRecyclerView Adapter 2 ? Ġ= Ġnull ĊĊĠĠĠ Ġprivate Ġvar Ġtracker Ġ: ĠSelection Tracker < Long >? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ customize ) ĊĊĠĠĠĠĠĠĠ Ġset Support ActionBar ( c _ toolbar ) ĊĊĠĠĠĠĠĠĠ Ġval Ġaction Bar Ġ= Ġsupport ActionBar ĊĠĠĠĠĠĠĠ Ġaction Bar !!. set Display Home As Up Enabled ( true ) ĊĊĠĠĠĠĠĠĠ Ġc _ toolbar . set Navigation OnClickListener { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Back Pressed () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif ( savedInstanceState Ġ!= Ġnull ) Ġtracker ?. on Restore InstanceState ( savedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġall Ex _ rv . set Has Fixed Size ( true ) ĊĠĠĠĠĠĠĠ Ġall Ex _ rv . layout Manager Ġ= ĠLinearLayoutManager ( this ) ĊĊĠĠĠĠĠĠĠ Ġadapter Ġ= ĠRecyclerView Adapter 2 ( this , ĠConstants . exercise List ()) ĊĠĠĠĠĠĠĠ Ġall Ex _ rv . adapter Ġ= Ġadapter ĊĊĠĠĠĠĠĠĠ Ġtracker Ġ= ĠSelection Tracker . Builder < Long >(" selection - 1 ", Ġall Ex _ rv , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSt able Id Key Provider ( all Ex _ rv ), ĠMy Lookup ( all Ex _ rv ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠStorage Strategy . create Long Storage ()). with Selection Predicate ( Selection Pred icates . create Select Anything ()). build () ĊĊĠĠĠĠĠĠĠ Ġtracker !!. add Observer ( object Ġ: ĠSelection Tracker . Selection Observer < Long >() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Selection Changed () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġno Of Items Ġ= Ġtracker !!. selection . size () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( no Of Items Ġ>= Ġ 0 ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġno Item _ tv . text Ġ= Ġ"$ no Of Items Ġitems Ġselected " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġadapter !!. set Tracker ( tracker ) ĊĊĠĠĠĠĠĠĠ Ġadapter !!. notify DataSet Changed () ĊĊĠĠĠĠĠĠĠ Ġstart B _ c . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġex : ĠArrayList < Ex ercises > Ġ= Ġadapter !!. getSelected Ex () Ċ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġex . forEach Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" ex Ġ: Ġ", Ġit . name Ġ+ Ġ"\ n ") Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( ex . size Ġ!= Ġ 1 0 ) ĠToast . makeText ( this , Ġ" Please Ġselect Ġ 1 0 Ġitems ", ĠToast . LENGTH _ SHORT ). show () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse { ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠTODO Ġ: Ġin order Ġto Ġsend Ġarray List < Ex ercises > Ġvia Ġintent Ġthe Ġclass ĠEx ercises Ġmust Ġalso Ġextend Ġ" Serializable " ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( this , ĠExercise Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra (" ex ", Ġex ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Save InstanceState ( out State : ĠBundle ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Save InstanceState ( out State ) ĊĊĠĠĠĠĠĠĠ Ġtracker !!. on Save InstanceState ( out State ) ĊĠĠĠ Ġ} Ċ }