package Ġcom . ger o sp ri me . gy log . ui . work outs . session . adapters . sets Ċ Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . ger o sp ri me . gy log . base . On ItemClickListener Ċ import Ġcom . ger o sp ri me . gy log . models . exercises . per formed sets . Performed Set Entity Ċ import Ġcom . ger o sp ri me . gy log . ui . work outs . R Ċ import Ġcom . ger o sp ri me . gy log . ui . work outs . session . adapters . sets . Performed Set Adapter . ViewType . ADD _ BUTTON Ċ import Ġcom . ger o sp ri me . gy log . ui . work outs . session . adapters . sets . Performed Set Adapter . ViewType . EX ER CI SE ĊĊ Ċ internal Ġclass ĠPer formed Set Adapter ( ĊĠĠĠ Ġvar Ġperformed Sets : ĠList < Performed Set Entity >, ĊĠĠĠ Ġprivate Ġvar Ġset Item Click : ĠOn ItemClickListener < Int >, ĊĠĠĠ Ġprivate Ġvar Ġadd Item Click : ĠAdd Set ClickListener , ĊĠĠĠ Ġprivate Ġvar Ġremove Set Click : ĠOn ItemClickListener < Int >, ĊĠĠĠ Ġprivate Ġvar Ġun Remove Set Click : ĠOn ItemClickListener < Int > Ċ ) ĊĠĠĠ Ġ: ĠRecyclerView . Adapter < Session Set ViewHolder >() Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġlayout Inflater Ġ: ĠLayoutInflater ? Ġ= Ġnull ĊĊĠĠĠ Ġprivate Ġobject ĠView Type Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠEX ER CI SE Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠADD _ BUTTON Ġ= Ġ 1 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinterface ĠAdd Set ClickListener Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġon Add Set Clicked () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠSession Set ViewHolder Ġ{ ĊĊĠĠĠĠĠĠĠ Ġif Ġ( layout Inflater Ġ== Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlayout Inflater Ġ= ĠLayoutInflater . from ( parent . context ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( view Type Ġ== ĠEX ER CI SE ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinfl ated Ġ= Ġlayout Inflater !!. inflate ( R . layout . view holder _ work out _ session _ sets , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPer formed Set ViewHolder ( in fl ated , Ġset Item Click , Ġremove Set Click , Ġun Remove Set Click ) ĊĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinfl ated Ġ= Ġlayout Inflater !!. inflate ( R . layout . view holder _ work out _ session _ add _ set , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinfl ated . setOnClickListener Ġ{ Ġadd Item Click . on Add Set Clicked () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAdd Set ViewHolder ( in fl ated ) ĊĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem ViewType ( position : ĠInt ): ĠInt Ġ= ĊĠĠĠĠĠĠĠ Ġif Ġ( position Ġ== Ġperformed Sets . size ) ĠADD _ BUTTON ĊĠĠĠĠĠĠĠ Ġelse ĠEX ER CI SE ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ= Ġperformed Sets . size Ġ+ Ġ 1 ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠSession Set ViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( holder Ġis ĠPer formed Set ViewHolder ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . set ( per formed Sets [ position ], Ġposition ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }