/* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 2 0 . Ġdv nl abs . ml Ġ, ĠD av in ĠA lf ar iz ky ĠPut ra ĠBas ude wa Ċ Ġ* ĠEmail Ġ: Ġdb as ude wa @ gmail . com Ġ/ Ġm oshi 2 _ dav in @ dv nl abs . ml Ċ Ġ* ĠUn S ik ad u Ġsource Ġcode Ġfor ĠAndroid Ġ( tm ) Ġ, Ċ Ġ* ĠInternal ĠLicense ĠOnly , NOT ĠFOR ĠRED ISTR IB UTE Ċ Ġ*/ ĊĊ Ċ package Ġml . dv nl abs . uns ik ad u . ui . view . table view . schedule Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . content . Context Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . LinearLayout Ċ import Ġandroid . widget . TextView Ċ import Ġcom . ev ren co sk un . table view . adapter . Abstract Table Adapter Ċ import Ġcom . ev ren co sk un . table view . adapter . recyclerview . holder . Abstract ViewHolder Ċ import Ġml . dv nl abs . uns ik ad u . R Ċ import Ġml . dv nl abs . uns ik ad u . ui . view . table view . schedule . model . Cell Ċ import Ġml . dv nl abs . uns ik ad u . ui . view . table view . schedule . model . Column Header Ċ import Ġml . dv nl abs . uns ik ad u . ui . view . table view . schedule . model . Row Header ĊĊ Ċ // Column Header Ċ class ĠSchedule Column Head ( item View : ĠView ) Ġ: ĠAbstract ViewHolder ( item View ){ ĊĠĠĠ Ġvar Ġcolumn Text Ġ: ĠTextView Ġ= ĠitemView . findViewById ( R . id . m Column Text ) ĊĠĠĠ Ġvar Ġcolumn Container Ġ: ĠLinearLayout Ġ= ĠitemView . findViewById ( R . id . m Column Container ) Ċ } Ċ Ċ // Row Ġheader Ċ class ĠSchedule Row Head ( item View : ĠView ) Ġ: ĠAbstract ViewHolder ( item View ){ ĊĠĠĠ Ġvar Ġrow Text Ġ: ĠTextView Ġ= ĠitemView . findViewById ( R . id . m Row Text ) Ċ } Ċ Ċ // Cell Ċ class ĠSchedule Cell ( item View : ĠView ): ĠAbstract ViewHolder ( item View ){ ĊĠĠĠ Ġvar Ġcell Text Ġ: ĠTextView Ġ= ĠitemView . findViewById ( R . id . m Cell Text ) ĊĠĠĠ Ġvar Ġcell Container Ġ: ĠLinearLayout Ġ= ĠitemView . findViewById ( R . id . m Cell Container ) Ċ } ĊĊ Ċ class ĠSchedule Table Adapter ( context : ĠContext ) Ġ: ĠAbstract Table Adapter < Column Header , ĠRow Header , ĠCell >( ĊĠĠĠ Ġcontext Ċ ) Ġ{ ĊĠĠĠ Ġoverride Ġfun ĠonCreate Column Header ViewHolder ( parent : ĠViewGroup ?, Ġview Type : ĠInt ): ĠAbstract ViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlayout Ġ= ĠLayoutInflater . from ( mContext ). inflate ( R . layout . m _ column _ layout , parent , false ) ĊĠĠĠĠĠĠĠ Ġreturn ĠSchedule Column Head ( layout ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate Row Header ViewHolder ( parent : ĠViewGroup ?, Ġview Type : ĠInt ): ĠAbstract ViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlayout Ġ= ĠLayoutInflater . from ( mContext ). inflate ( R . layout . m _ row _ layout , parent , false ) ĊĠĠĠĠĠĠĠ Ġreturn ĠSchedule Row Head ( layout ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate Cell ViewHolder ( parent : ĠViewGroup ?, Ġview Type : ĠInt ): ĠAbstract ViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlayout Ġ= ĠLayoutInflater . from ( mContext ). inflate ( R . layout . m _ cell _ layout , parent , false ) ĊĠĠĠĠĠĠĠ Ġreturn ĠSchedule Cell ( layout ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress Lint (" Inf late Params ") ĊĠĠĠ Ġoverride Ġfun ĠonCreate Corner View (): ĠView Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠLayoutInflater . from ( mContext ). inflate ( R . layout . m _ view _ corner , null ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Column Header Item ViewType ( position : ĠInt ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ 0 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Row Header Item ViewType ( position : ĠInt ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ 0 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind Column Header ViewHolder ( ĊĠĠĠĠĠĠĠ Ġholder : ĠAbstract ViewHolder ?, ĊĠĠĠĠĠĠĠ Ġcolumn Header Item Model : ĠAny ?, ĊĠĠĠĠĠĠĠ Ġcolumn Position : ĠInt ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcolumn Header Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcolumn Header Item Model Ġas ĠColumn Header ĊĊĠĠĠĠĠĠĠ Ġval Ġcolumn Header ViewHolder : ĠSchedule Column Head Ġ= Ġholder Ġas ĠSchedule Column Head ĊĠĠĠĠĠĠĠ Ġcolumn Header ViewHolder . column Text . text = Ġcolumn Header . data . toString () ĊĊĠĠĠĠĠĠĠ Ġcolumn Header ViewHolder . column Container . layout Params . width Ġ= ĠLinearLayout ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. LayoutParams . WRAP _ CONTENT ĊĠĠĠĠĠĠĠ Ġcolumn Header ViewHolder . column Text . request Layout () ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind Row Header ViewHolder ( holder : ĠAbstract ViewHolder ?, Ġrow Header Item Model : ĠAny ?, Ġrow Position : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrow Header Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrow Header Item Model Ġas ĠRow Header ĊĊĠĠĠĠĠĠĠ Ġval Ġrow Header ViewHolder : ĠSchedule Row Head Ġ= Ġholder Ġas ĠSchedule Row Head ĊĠĠĠĠĠĠĠ Ġrow Header ViewHolder . row Text . text = Ġrow Header . data . toString () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind Cell ViewHolder ( ĊĠĠĠĠĠĠĠ Ġholder : ĠAbstract ViewHolder ?, ĊĠĠĠĠĠĠĠ Ġcell Item Model : ĠAny ?, ĊĠĠĠĠĠĠĠ Ġcolumn Position : ĠInt , ĊĠĠĠĠĠĠĠ Ġrow Position : ĠInt ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcell : ĠCell Ġ= Ġcell Item Model Ġas ĠCell ĊĠĠĠĠĠĠĠ Ġval ĠviewHolder Ġ: ĠSchedule Cell Ġ= Ġholder Ġas ĠSchedule Cell ĊĠĠĠĠĠĠĠ ĠviewHolder . cell Text . text Ġ= Ġcell . data . toString () ĊĠĠĠĠĠĠĠ ĠviewHolder . item View . layout Params . width Ġ= ĠLinearLayout . LayoutParams . WRAP _ CONTENT ; ĊĠĠĠĠĠĠĠ ĠviewHolder . cell Text . request Layout (); ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Cell Item ViewType ( position : ĠInt ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ 0 ĊĠĠĠ Ġ} Ċ }