package Ġcom . ib ns ina . utils . recyclerview Ċ Ċ import Ġandroid . view . View Ċ import Ġandroidx . annotation . Layout Res Ċ Ċ abstract Ġclass ĠHeader Adapter < T , VH Ġ: ĠBase ViewHolder < T >> : ĠBase Adapter < T , ĠBase ViewHolder < T >> Ġwhere ĠT : Any , T : Header Item Ġ{ ĊĠĠĠ Ġconstructor ( on ItemClickListener : ĠOn ItemClickListener < T , ĠView ?> ) Ġ: Ġsuper ( on ItemClickListener ) ĊĠĠĠ Ġconstructor ( items : ĠMutable List < T >) Ġ: Ġsuper ( items ) ĊĠĠĠ Ġconstructor ( ĊĠĠĠĠĠĠĠ Ġitems : ĠMutable List < T >, ĊĠĠĠĠĠĠĠ Ġon ItemClickListener : ĠOn ItemClickListener < T , ĠView ?> ĊĠĠĠ Ġ) Ġ: Ġsuper ( items , Ġon ItemClickListener ) ĊĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThis Ġmethod Ġgets Ġcalled Ġby Ġ{@ link ĠSt ick Header Item Decoration } Ġto Ġfetch Ġthe Ġposition Ġof Ġthe Ġheader Ġitem Ġin Ġthe Ġadapter ĊĠĠĠĠ Ġ* Ġthat Ġis Ġused Ġfor Ġ( re presents ) Ġitem Ġat Ġspecified Ġposition . ĊĠĠĠĠ Ġ* Ġ@ param Ġitem Position Ġint . ĠAdapter 's Ġposition Ġof Ġthe Ġitem Ġfor Ġwhich Ġto Ġdo Ġthe Ġsearch Ġof Ġthe Ġposition Ġof Ġthe Ġheader Ġitem . ĊĠĠĠĠ Ġ* Ġ@ return Ġint . ĠPosition Ġof Ġthe Ġheader Ġitem Ġin Ġthe Ġadapter . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġabstract Ġfun Ġget Header Position For Item ( item Position : ĠInt ) Ġ: ĠInt ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThis Ġmethod Ġgets Ġcalled Ġby Ġ{@ link ĠSt ick Header Item Decoration } Ġto Ġget Ġlayout Ġresource Ġid Ġfor Ġthe Ġheader Ġitem Ġat Ġspecified Ġadapter 's Ġposition . ĊĠĠĠĠ Ġ* Ġ@ param Ġheader Position Ġint . ĠPosition Ġof Ġthe Ġheader Ġitem Ġin Ġthe Ġadapter . ĊĠĠĠĠ Ġ* Ġ@ return Ġint . ĠLayout Ġresource Ġid . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Layout Res ĊĠĠĠ Ġabstract Ġfun Ġget Header Layout ( header Position : ĠInt ) Ġ: ĠInt ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThis Ġmethod Ġgets Ġcalled Ġby Ġ{@ link ĠSt ick Header Item Decoration } Ġto Ġsetup Ġthe Ġheader ĠView . ĊĠĠĠĠ Ġ* Ġ@ param Ġheader ĠView . ĠHeader Ġto Ġset Ġthe Ġdata Ġon . ĊĠĠĠĠ Ġ* Ġ@ param Ġheader Position Ġint . ĠPosition Ġof Ġthe Ġheader Ġitem Ġin Ġthe Ġadapter . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġabstract Ġfun Ġbind Header Data ( header : ĠView , Ġheader Position : ĠInt ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThis Ġmethod Ġgets Ġcalled Ġby Ġ[ Stick Header Item Decoration ] Ġto Ġverify Ġwhether Ġthe Ġitem Ġrepresents Ġa Ġheader . ĊĠĠĠĠ Ġ* Ġ@ param Ġitem Position Ġint . ĊĠĠĠĠ Ġ* Ġ@ return Ġtrue , Ġif Ġitem Ġat Ġthe Ġspecified Ġadapter 's Ġposition Ġrepresents Ġa Ġheader . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġis Header ( item Position : ĠInt ): ĠBoolean { ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( getItem ( item Position ) Ġ== Ġnull ) Ġfalse Ġelse ĠgetItem ( item Position ) !!. is Header () ĊĠĠĠ Ġ} Ċ }