package Ġcom . br ins . light music . ui . fragment . discovery Ċ Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . ImageView Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . br ins . light music . Base Application Ċ import Ġcom . br ins . light music . R Ċ import Ġcom . br ins . light music . model . banner . Banner Ċ import Ġcom . br ins . light music . model . on lin em usic . Music List Bean Ċ import Ġcom . bump tech . glide . G lide Ċ Ċ class ĠDiscovery Adapter < T >( var Ġtype : ĠInt , Ġvar Ġlist Bean : ĠArrayList < T >) Ġ: ĊĠĠĠ ĠRecyclerView . Adapter < Discovery Adapter . ViewHolder >() ĊĠĠĠ Ġ, ĠView . OnClickListener Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġval ĠTYPE _ M US IC _ LIST Ġ= Ġ 1 ĊĠĠĠĠĠĠĠ Ġval ĠTYPE _ BAN NER Ġ= Ġ 2 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġvar Ġon ItemClickListener : ĠOn ItemClickListener ? Ġ= Ġnull ĊĊĠĠĠ Ġinterface ĠOn ItemClickListener Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġon Item Click ( view : ĠView , Ġposition : ĠInt ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= ĠLayoutInflater . from ( parent . context ). inflate ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( type Ġ== ĠTYPE _ M US IC _ LIST ) ĠR . layout . item _ music _ list ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĠR . layout . item _ recycler _ banner , Ġparent , Ġfalse ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġmy ViewHolder Ġ= ĠViewHolder ( view ) ĊĠĠĠĠĠĠĠ Ġview . setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġreturn Ġmy ViewHolder ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġlist Bean . size ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( list Bean . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// æ¨ ª å¹ ħ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( TYPE _ BAN NER Ġ== Ġtype ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbanner Ġ= Ġlist Bean [ position ] Ġas ĠBanner ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠG lide . with ( Base Application . getInstance (). base Context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. load ( banner . pic Url ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. into ( holder . cover ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . item View . tag Ġ= Ġposition ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( TYPE _ M US IC _ LIST Ġ== Ġtype ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmusic List Ġ= Ġlist Bean [ position ] Ġas ĠMusic List Bean ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . title . text Ġ= Ġmusic List . name ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . description . text Ġ= Ġmusic List . description ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠG lide . with ( Base Application . getInstance (). base Context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. load ( music List . cover Img Url ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. into ( holder . cover ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . item View . tag Ġ= Ġposition ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset On ItemClickListener ( listener : ĠOn ItemClickListener ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . on ItemClickListener Ġ= Ġlistener ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonClick ( v : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( on ItemClickListener Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// æ³¨æĦı è¿ĻéĩĮ ä½¿çĶ¨ getTag æĸ¹æ³ķ èİ·åıĸ position ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon ItemClickListener !!. on Item Click ( v , Ġv . tag Ġas ĠInt ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠViewHolder ( var Ġview : ĠView ) Ġ: ĠRecyclerView . ViewHolder ( view ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcover : ĠImageView Ġ= Ġview . findViewById ( R . id . cover ) ĊĠĠĠĠĠĠĠ Ġval Ġtitle : ĠTextView Ġ= Ġview . findViewById ( R . id . title ) ĊĠĠĠĠĠĠĠ Ġval Ġdescription : ĠTextView Ġ= Ġview . findViewById ( R . id . description ) ĊĠĠĠ Ġ} Ċ }