/* Ċ Ġ* ĠCreated Ġby ĠLee ĠOh ĠH young Ġon Ġ 2 0 2 0 / 0 4 / 3 0 Ġ.. ĠĊ Ġ*/ Ċ package Ġkr . y app . te amp lay . presentation . my team Ċ Ċ import Ġandroid . util . Display Metrics Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġkr . y app . te amp lay . databinding . Rv Item My Team Binding Ċ import Ġkr . y app . te amp lay . databinding . Rv Item Team Create Binding Ċ import Ġkr . y app . te amp lay . domain . entity . My Team Ċ import Ġkr . y app . te amp lay . util . dp To Pixel Ċ import Ġorg . jetbrains . ank o . window Manager Ċ Ċ class ĠMy Team Adapter ( ĊĠĠĠ Ġprivate Ġval Ġon Card Click : Ġ() Ġ-> ĠUnit Ġ= Ġ{}, ĊĠĠĠ Ġprivate Ġval Ġon Card Click To Go Team Main : Ġ( id : ĠInt , Ġposition Ġ: ĠInt ) Ġ-> ĠUnit Ċ ) Ġ: ĠRecyclerView . Adapter < RecyclerView . ViewHolder >() Ġ{ ĊĊĠĠĠ Ġenum Ġclass ĠView Type Ġ{ ĊĠĠĠĠĠĠĠ ĠTE AM , ĠCREATE ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġteams : ĠArrayList < My Team > Ġ= Ġarray ListOf () ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠRecyclerView . ViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen ( view Type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠView Type . TEAM Ġ. ordinal Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMy Team ViewHolder ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR v Item My Team Binding . inflate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLayoutInflater . from ( parent . context ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparent , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠView Type . CREATE . ordinal Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTeam Create ViewHolder ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR v Item Team Create Binding . inflate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLayoutInflater . from ( parent . context ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparent , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġthrow ĠIllegalArgumentException (" Un ĠSupport ĠView Type ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠRecyclerView . ViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen ( holder . item ViewType ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠView Type . TEAM . ordinal Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( holder Ġas ĠMy Team ViewHolder ). bind To ( teams [ position ], Ġteams [ position ]. id . toInt ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠView Type . CREATE . ordinal Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( holder Ġas ĠTeam Create ViewHolder ). bind To () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ= Ġteams . count () ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem ViewType ( position : ĠInt ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif ( teams [ position ]. is Create Card ) ĠView Type . CREATE . ordinal Ġelse ĠView Type . TEAM . ordinal ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġupdate My Team ( list : ĠList < My Team >) Ġ{ ĊĠĠĠĠĠĠĠ Ġteams . clear () ĊĠĠĠĠĠĠĠ Ġteams . addAll ( list ) ĊĠĠĠĠĠĠĠ Ġnotify DataSet Changed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinner Ġclass ĠMy Team ViewHolder ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġbinding : ĠR v Item My Team Binding ĊĠĠĠ Ġ): ĠRecyclerView . ViewHolder ( binding . root ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġdisplay Metrics Ġ= ĠDisplay Metrics () ĊĊĠĠĠĠĠĠĠ Ġfun Ġbind To ( my Team : ĠMy Team , Ġid : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . my Team Ġ= Ġmy Team ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . root . setOnClickListener Ġ{ Ġon Card Click To Go Team Main ( id , Ġadapter Position ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . context . window Manager . default Display . get Metrics ( display Metrics ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . layout Params . width Ġ= Ġ( display Metrics . width Pixels . toDouble () Ġ- Ġ 6 4 . dp To Pixel ()). toInt () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinner Ġclass ĠTeam Create ViewHolder ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġbinding : ĠR v Item Team Create Binding ĊĠĠĠ Ġ): ĠRecyclerView . ViewHolder ( binding . root ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġdisplay Metrics Ġ= ĠDisplay Metrics () ĊĊĠĠĠĠĠĠĠ Ġfun Ġbind To () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . root . setOnClickListener Ġ{ Ġon Card Click () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . context . window Manager . default Display . get Metrics ( display Metrics ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . layout Params . width Ġ= Ġ( display Metrics . width Pixels . toDouble () Ġ- Ġ 6 4 . dp To Pixel ()). toInt () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ