package Ġadapter Ċ Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . databinding . Data Binding Util Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . x od us . template three . R Ċ import Ġcom . x od us . template three . databinding . Row Template Binding Ċ import Ġmodel . Template Ċ import Ġutil . get Rain bow Ċ import Ġview model . Template ViewModel Ċ Ċ class ĠTemplate Adapter ( private Ġval Ġtemplate : ĠTemplate ViewModel ) Ġ: ĊĠĠĠ ĠBase Adapter < Template >( false , Ġfalse , Ġ 0 , Ġtemplate ) Ġ{ ĊĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠRecyclerView . ViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( view Type Ġ< Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . onCreate ViewHolder ( parent , Ġview Type ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbinding Ġ= ĠData Binding Util . inflate < Row Template Binding >( LayoutInflater . from ( parent . context ), ĠR . layout . row _ template , Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( bind List . any Ġ{ Ġit . first Ġ== Ġview Type Ġ}. not ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbind List . add ( Pair ( view Type , Ġbinding )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTemplate Holder ( binding , Ġsection Index , Ġtemplate ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġclass ĠTemplate Holder ( private Ġval Ġbinding : ĠRow Template Binding , Ġprivate Ġval Ġsection Index : ĠInt , Ġtemplate ViewModel : ĠTemplate ViewModel ?) Ġ: ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBase Adapter . Companion . Base ViewHolder < Template >( binding , Ġtemplate ViewModel Ġ= Ġtemplate ViewModel ) Ġ{ Ġ// todo ĠRow Number Binding , ĠTemplate Holder , ĠTemplate ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġbind Data ( data : ĠTemplate ) Ġ{ Ġ// todo ĠTemplate ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . bind Data ( data ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrow Template Tv Number . setTextColor ( get Rain bow ()[ adapter Position Ġ% Ġget Rain bow (). size ]) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrow Template Tv Number . setOnClickListener Ġ{ Ġtemplate ViewModel ?. on Tv Item Click ( data , Ġrow Template Tv Number ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }