/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 2 1 Ġpan pf Ġ< pan p fp an pf @ outlook . com > Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ package Ġcom . github . pan pf . assembly adapter . sample . item Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . Context Ċ import Ġandroid . os . Build Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . appcompat . app . AlertDialog Ċ import Ġandroidx . core . view . isVisible Ċ import Ġandroidx . core . view . update LayoutParams Ċ import Ġcom . github . pan pf . assembly adapter . Binding Item Factory Ċ import Ġcom . github . pan pf . assembly adapter . sample . bean . List Separator Ċ import Ġcom . github . pan pf . assembly adapter . sample . databinding . ItemList Separator Binding Ċ Ċ open Ġclass ĠList Separator Item Factory ( ĊĠĠĠ Ġprivate Ġval Ġactivity : ĠActivity , ĊĠĠĠ Ġprivate Ġval Ġhide Start Margin : ĠBoolean Ġ= Ġfalse , ĊĠĠĠ Ġprivate Ġval Ġhide Divider : ĠBoolean Ġ= Ġfalse , Ċ ) Ġ: ĠBinding Item Factory < List Separator , ĠItem List Separator Binding >( List Separator :: class ) Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġcreate Item View Binding ( ĊĠĠĠĠĠĠĠ Ġcontext : ĠContext , Ġinflater : ĠLayoutInflater , Ġparent : ĠViewGroup ĊĠĠĠ Ġ): ĠItem List Separator Binding Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠItem List Separator Binding . inflate ( in flater , Ġparent , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinit Item ( ĊĠĠĠĠĠĠĠ Ġcontext : ĠContext , ĊĠĠĠĠĠĠĠ Ġbinding : ĠItem List Separator Binding , ĊĠĠĠĠĠĠĠ Ġitem : ĠBinding Item < List Separator , ĠItem List Separator Binding > ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( hide Start Margin ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . list Separator Item Title Text . update LayoutParams < ViewGroup . Margin LayoutParams > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġleft Margin Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġright Margin Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . J EL LY _ BE AN _ MR 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmargin Start Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmargin End Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbinding . list Separator Item Divider View . isVisible Ġ= Ġ! hide Divider ĊĊĠĠĠĠĠĠĠ Ġbinding . root . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdata Ġ= Ġitem . data OrThrow ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbinding Adapter Position Ġ= Ġitem . binding Adapter Position ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġabsolute Adapter Position Ġ= Ġitem . absolute Adapter Position ĊĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ data }: Ġ$ binding Adapter Position /$ absolute Adapter Position ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . LENGTH _ LONG ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). show () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġbinding . root . setOn Long ClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdata Ġ= Ġitem . data OrThrow ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAlertDialog . Builder ( activity ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Message ( build String Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġappend (" List Separator ï¼Ī ${ data . title } ï¼ī "). append Line () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġappend Line () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġappend (" binding Adapter Position : Ġ${ item . binding Adapter Position } "). append Line () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġappend (" absolute Adapter Position : Ġ${ item . absolute Adapter Position } "). append Line () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġappend (" data : Ġ${ item . data OrThrow . title } "). append Line () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġbind Item Data ( ĊĠĠĠĠĠĠĠ Ġcontext : ĠContext , ĊĠĠĠĠĠĠĠ Ġbinding : ĠItem List Separator Binding , ĊĠĠĠĠĠĠĠ Ġitem : ĠBinding Item < List Separator , ĠItem List Separator Binding >, ĊĠĠĠĠĠĠĠ Ġbinding Adapter Position : ĠInt , ĊĠĠĠĠĠĠĠ Ġabsolute Adapter Position : ĠInt , ĊĠĠĠĠĠĠĠ Ġdata : ĠList Separator ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding . list Separator Item Title Text . text Ġ= Ġdata . title ĊĠĠĠ Ġ} Ċ } Ċ