package Ġcom . gather ing hall stud ios . m hw or l dd atabase . features . workshop . list Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . LinearLayout Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . gather ing hall stud ios . m hw or l dd atabase . R Ċ import Ġcom . gather ing hall stud ios . m hw or l dd atabase . assets . Asset Loader Ċ import Ġcom . gather ing hall stud ios . m hw or l dd atabase . data . models . Skill Level Ċ import Ġkotlinx . android . synt hetic . main . list item _ skill _ level _ armor . view .* Ċ import Ġkotlin . math . ceil Ċ import Ġkotlin . math . round ToInt ĊĊ Ċ class ĠWork shop ViewPager Adapter ( private Ġval Ġcontext : ĠContext , Ġprivate Ġval Ġskills : ĠList < Skill Level >) Ġ: ĠRecyclerView . Adapter < Work shop ViewPager Adapter . Skill ViewHolder >() Ġ{ ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠSkill ViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= ĠLinearLayout ( context ) ĊĠĠĠĠĠĠĠ Ġview . layout Params Ġ= ĠViewGroup . LayoutParams ( ViewGroup . LayoutParams . MATCH _ PARENT , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠViewGroup . LayoutParams . MATCH _ PARENT ) ĊĠĠĠĠĠĠĠ Ġview . orientation Ġ= ĠLinearLayout . VERTICAL ĊĠĠĠĠĠĠĠ Ġreturn ĠSkill ViewHolder ( view ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠSkill ViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġholder . bind ( skills , Ġposition ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġceil ( skills . size Ġ/ Ġ 4 . 0 0 ). round ToInt () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠgetMax PageSize ( position : ĠInt ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( skills . size Ġ> Ġ 4 ) Ġ 4 ĊĠĠĠĠĠĠĠ Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠstartIndex Ġ= Ġposition Ġ* Ġ 4 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġend Index Ġ= Ġif Ġ( startIndex Ġ+ Ġ 4 Ġ> Ġskills . size ) Ġskills . size Ġelse ĠstartIndex Ġ+ Ġ 4 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġskills . sub List ( startIndex , Ġend Index ). size ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinner Ġclass ĠSkill ViewHolder ( item View : ĠView ) Ġ: ĠRecyclerView . ViewHolder ( item View ) Ġ{ ĊĠĠĠĠĠĠĠ Ġinternal Ġfun Ġbind ( skills : ĠList < Skill Level >, Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠstartIndex Ġ= Ġposition Ġ* Ġ 4 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġend Index Ġ= Ġif Ġ( startIndex Ġ+ Ġ 4 Ġ> Ġskills . size ) Ġskills . size Ġelse ĠstartIndex Ġ+ Ġ 4 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinflater Ġ= ĠLayoutInflater . from ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( item Ġin Ġskills . sub List ( startIndex , Ġend Index )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġskill Layout Ġ= Ġinflater . inflate ( R . layout . list item _ skill _ level , ĠitemView Ġas ĠViewGroup , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwith ( skill Layout ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon . setImage Drawable ( Asset Loader . load Icon For ( item . skill Tree )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlabel _ text . text Ġ= Ġitem . skill Tree . name ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġskill _ level . max Level Ġ= Ġitem . skill Tree . max _ level ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġskill _ level . level Ġ= Ġitem . level ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġskill _ level . secret Levels Ġ= Ġitem . skill Tree . secret ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlevel _ text . text Ġ= ĠitemView . resources . getString ( R . string . level _ qty , Ġitem . level ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . addView ( skill Layout ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }