/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 1 7 Ġ- Ġpresent Ġ ĠIn structure , ĠInc . Ċ Ġ* Ċ Ġ* ĠĠĠĠ ĠThis Ġprogram Ġis Ġfree Ġsoftware : Ġyou Ġcan Ġredistribute Ġit Ġand / or Ġmodify Ċ Ġ* ĠĠĠĠ Ġit Ġunder Ġthe Ġterms Ġof Ġthe ĠGNU ĠGeneral ĠPublic ĠLicense Ġas Ġpublished Ġby Ċ Ġ* ĠĠĠĠ Ġthe ĠFree ĠSoftware ĠFoundation , Ġversion Ġ 3 Ġof Ġthe ĠLicense . Ċ Ġ* Ċ Ġ* ĠĠĠĠ ĠThis Ġprogram Ġis Ġdistributed Ġin Ġthe Ġhope Ġthat Ġit Ġwill Ġbe Ġuseful , Ċ Ġ* ĠĠĠĠ Ġbut ĠWITHOUT ĠANY ĠWARRANTY ; Ġwithout Ġeven Ġthe Ġimplied Ġwarranty Ġof Ċ Ġ* ĠĠĠĠ ĠMERCHANTABILITY Ġor ĠFITNESS ĠFOR ĠA ĠPARTICULAR ĠPURPOSE . Ġ ĠSee Ġthe Ċ Ġ* ĠĠĠĠ ĠGNU ĠGeneral ĠPublic ĠLicense Ġfor Ġmore Ġdetails . Ċ Ġ* Ċ Ġ* ĠĠĠĠ ĠYou Ġshould Ġhave Ġreceived Ġa Ġcopy Ġof Ġthe ĠGNU ĠGeneral ĠPublic ĠLicense Ċ Ġ* ĠĠĠĠ Ġalong Ġwith Ġthis Ġprogram . Ġ ĠIf Ġnot , Ġsee Ġ< http :// www . gnu . org / licenses />. Ċ Ġ*/ ĊĊ Ċ package Ġcom . in structure . teacher . adapters Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . view . View Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . in structure . canvas api 2 . models . Assignment Ċ import Ġcom . in structure . canvas api 2 . models . Assignment Group Ċ import Ġcom . in structure . pand are cycler . util . Types Ċ import Ġcom . in structure . teacher . holders . Assignment Group Header ViewHolder Ċ import Ġcom . in structure . teacher . holders . Assignment ViewHolder Ċ import Ġcom . in structure . teacher . present ers . Assignment List Presenter Ċ import Ġcom . in structure . teacher . view interface . Assignment ListView Ċ import Ġin structure . android blueprint . Sync Expand able Recycler Adapter Ċ Ċ class ĠAssignment Adapter ( context : ĠContext , Ġexpand able Presenter : ĠAssignment List Presenter , Ġprivate Ġval Ġm Course Color : ĠInt , Ġprivate Ġval Ġm Callback : Ġ( Assignment ) Ġ-> ĠUnit ) Ġ: ĊĠĠĠĠĠĠĠ ĠSync Expand able Recycler Adapter < Assignment Group , ĠAssignment , ĠRecyclerView . ViewHolder , ĠAssignment ListView >( context , Ġexpand able Presenter ) Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġcreate ViewHolder ( v : ĠView , Ġview Type : ĠInt ): ĠRecyclerView . ViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen ( view Type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTypes . TYPE _ ITEM Ġ-> ĠAssignment ViewHolder ( v ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠAssignment Group Header ViewHolder ( v ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġitem Layout Res Id ( view Type : ĠInt ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen ( view Type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTypes . TYPE _ ITEM Ġ-> ĠAssignment ViewHolder . HOLDER _ RES _ ID ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠAssignment Group Header ViewHolder . HOLDER _ RES _ ID ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind Header Holder ( holder : ĠRecyclerView . ViewHolder , Ġgroup : ĠAssignment Group , Ġis Expanded : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ( holder Ġas ĠAssignment Group Header ViewHolder ). bind ( group , Ġis Expanded ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassignment Group Ġ-> Ġexpand Collapse Group ( assignment Group ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind Child Holder ( holder : ĠRecyclerView . ViewHolder , Ġgroup : ĠAssignment Group , Ġitem : ĠAssignment ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcontext ?. let Ġ{ Ġ( holder Ġas ĠAssignment ViewHolder ). bind ( it , Ġitem , Ġm Course Color , Ġm Callback ) Ġ} ĊĠĠĠ Ġ} Ċ Ċ } Ċ