package Ġcom . fro go box . recycler . core Ċ Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġandroidx . view binding . View Binding Ċ Ċ /* Ċ Ġ* ĠCreated Ġby ĠF ais al ĠA mir Ċ Ġ* Ġ================================= ======== Ċ Ġ* ĠF ro go RecyclerView Adapter Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 7 / 0 4 / 2 0 2 0 . ĠĠĠĠĠĠ Ċ Ġ* ĠAll Ġrights Ġreserved Ċ Ġ* Ġ-------------------------------- --------- Ċ Ġ* ĠName ĠĠĠĠ Ġ: ĠMu ham mad ĠF ais al ĠA mir Ċ Ġ* ĠE - mail ĠĠ Ġ: Ġfa is alam ir cs @ gmail . com Ċ Ġ* ĠGithub ĠĠ Ġ: Ġgithub . com / am iris back Ċ Ġ* Ġ-------------------------------- --------- Ċ Ġ* ĠF ro go Box ĠInc Ċ Ġ* Ġcom . fro go box . recycler . util Ċ Ġ* ĠĊ Ġ*/ Ċ interface ĠIF ro go Single Rv Binding < T , ĠVB Ġ: ĠView Binding > Ġ{ ĊĊĠĠĠ Ġ// ĠInit ĠF ro go RecyclerView ĊĠĠĠ Ġfun Ġinit Singleton ( fro go RecyclerView : ĠRecyclerView ): ĠF ro go Single Rv Binding < T , ĠVB > ĊĊĠĠĠ Ġ// ĠCreate ĠLinear ĠVertical ĠLayout ĠManager ĊĠĠĠ Ġfun Ġcreate Layout Linear Vertical ( divider Item : ĠBoolean ): ĠF ro go Single Rv Binding < T , ĠVB > ĊĊĠĠĠ Ġ// ĠCreate ĠLinear ĠVertical ĠLayout ĠManager ĠFrom ĠEnd ĊĠĠĠ Ġfun Ġcreate Layout Linear Vertical ( ĊĠĠĠĠĠĠĠ Ġdivider Item : ĠBoolean , ĊĠĠĠĠĠĠĠ Ġreverse Layout : ĠBoolean , ĊĠĠĠĠĠĠĠ Ġstack From End : ĠBoolean ĊĠĠĠ Ġ): ĠF ro go Single Rv Binding < T , ĠVB > ĊĊĠĠĠ Ġ// ĠCreate ĠLinear ĠHorizontal ĠLayout ĠManager ĊĠĠĠ Ġfun Ġcreate Layout Linear Horizontal ( divider Item : ĠBoolean ): ĠF ro go Single Rv Binding < T , ĠVB > ĊĊĠĠĠ Ġ// ĠCreate ĠLinear ĠHorizontal ĠLayout ĠManager ĠFrom ĠEnd ĊĠĠĠ Ġfun Ġcreate Layout Linear Horizontal ( ĊĠĠĠĠĠĠĠ Ġdivider Item : ĠBoolean , ĊĠĠĠĠĠĠĠ Ġreverse Layout : ĠBoolean , ĊĠĠĠĠĠĠĠ Ġstack From End : ĠBoolean ĊĠĠĠ Ġ): ĠF ro go Single Rv Binding < T , ĠVB > ĊĊĠĠĠ Ġ// ĠCreate ĠSt agger ed ĠGrid ĠLayout ĠManager ĊĠĠĠ Ġfun Ġcreate Layout St agger ed Grid ( span Count : ĠInt ): ĠF ro go Single Rv Binding < T , ĠVB > ĊĊĠĠĠ Ġ// ĠCreate ĠGrid ĠLayout ĠManager ĊĠĠĠ Ġfun Ġcreate Layout Grid ( span Count : ĠInt ): ĠF ro go Single Rv Binding < T , ĠVB > ĊĊĠĠĠ Ġ// ĠAdding ĠData Ġfor ĠRecyclerView ĊĠĠĠ Ġfun Ġadd Data ( list Data : ĠList < T >): ĠF ro go Single Rv Binding < T , ĠVB > ĊĊĠĠĠ Ġ// ĠAdding ĠCallback Ġfor Ġadapter ĊĠĠĠ Ġfun Ġadd Callback ( fro go View Adapter Callback : ĠIF ro go Binding Adapter < T , ĠVB >): ĠF ro go Single Rv Binding < T , ĠVB > ĊĊĠĠĠ Ġ// ĠBuild Ġthis ĠF ro go RecyclerView ĊĠĠĠ Ġfun Ġbuild (): ĠF ro go Single Rv Binding < T , ĠVB > ĊĊĠĠĠ Ġ// Ġ-------------------------------------------------------------------------------- ------------- ĊĊĠĠĠ Ġ// ĠNotify ĠData ĠList ĊĠĠĠ Ġfun Ġf ro go Notify Data () Ġ: ĠMutable List < T > ĊĊĠĠĠ Ġ// ĠNotify ĠData ĠSet ĠChanged ĊĠĠĠ Ġfun Ġf ro go Notify DataSet Changed () ĊĊĠĠĠ Ġ// ĠNotify ĠData ĠItem ĠChanged ĊĠĠĠ Ġfun Ġf ro go Notify Item Changed ( data : ĠT , Ġposition : ĠInt , Ġpayload : ĠAny ) ĊĊĠĠĠ Ġ// ĠNotify ĠData ĠItem ĠChanged ĊĠĠĠ Ġfun Ġf ro go Notify Item Changed ( data : ĠT , Ġposition : ĠInt ) ĊĊĠĠĠ Ġ// ĠNotify ĠData ĠItem ĠInsert ed ĊĠĠĠ Ġfun Ġf ro go Notify Item Inserted ( data : ĠT , Ġposition : ĠInt ) ĊĊĠĠĠ Ġ// ĠNotify ĠData ĠItem ĠM oved ĊĠĠĠ Ġfun Ġf ro go Notify Item Moved ( data : ĠT , Ġfrom Position : ĠInt , Ġto Position : ĠInt ) ĊĊĠĠĠ Ġ// ĠNotify ĠData ĠItem ĠRange ĠChanged ĊĠĠĠ Ġfun Ġf ro go Notify Item Range Changed ( data : ĠList < T >, Ġposition Start : ĠInt , Ġpayload : ĠAny ) ĊĊĠĠĠ Ġ// ĠNotify ĠData ĠItem ĠRange ĠChanged ĊĠĠĠ Ġfun Ġf ro go Notify Item Range Changed ( data : ĠList < T >, Ġposition Start : ĠInt ) ĊĊĠĠĠ Ġ// ĠNotify ĠData ĠItem ĠRange ĠInsert ed ĊĠĠĠ Ġfun Ġf ro go Notify Item Range Inserted ( data : ĠList < T >, Ġposition Start : ĠInt ) ĊĊĠĠĠ Ġ// ĠNotify ĠData ĠItem ĠRange ĠRemoved ĊĠĠĠ Ġfun Ġf ro go Notify Item Range Removed ( position Start : ĠInt , Ġitem Count : ĠInt ) ĊĊĠĠĠ Ġ// ĠNotify ĠData ĠItem ĠRemoved ĊĠĠĠ Ġfun Ġf ro go Notify Item Removed ( position : ĠInt ) Ċ Ċ }