package Ġcom . example . andro learn . adapters Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . Intent Ċ import Ġandroid . graphics . drawable . Drawable Ċ import Ġandroid . util . Display Metrics Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . ImageView Ċ import Ġandroid . widget . TextView Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . bump tech . glide . G lide Ċ import Ġcom . bump tech . glide . load . DataSource Ċ import Ġcom . bump tech . glide . load . engine . Disk Cache Strategy Ċ import Ġcom . bump tech . glide . load . engine . G lide Exception Ċ import Ġcom . bump tech . glide . request . RequestListener Ċ import Ġcom . bump tech . glide . request . target . Target Ċ import Ġcom . example . andro learn . R Ċ import Ġcom . example . andro learn . models . Category Ċ // import Ġcom . example . andro learn . models . Component Ċ import Ġcom . example . andro learn . screens . Category Items ĊĊ Ċ class ĠCategory Adapter ( var Ġcategory List : ĠList < Category >) Ġ: ĊĠĠĠ ĠRecyclerView . Adapter < Category Adapter . ViewHolder >() Ġ{ ĊĊĊĊĠĠĠ Ġclass ĠViewHolder ( item View : ĠView ) Ġ: ĠRecyclerView . ViewHolder ( item View ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġbackground : ĠImageView Ġ= ĠitemView . findViewById < ImageView >( R . id . background Image ) ĊĠĠĠĠĠĠĠ Ġval Ġsub Title : ĠTextView Ġ= ĠitemView . findViewById ( R . id . subtitle ) ĊĠĠĠĠĠĠĠ Ġval Ġtitle : ĠTextView Ġ= ĠitemView . findViewById ( R . id . title ) ĊĠĠĠĠĠĠĠ Ġvar Ġcomp List : ĠArrayList < String > Ġ= ĠArrayList () ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlayout Inflater Ġ= ĠLayoutInflater . from ( parent . context ) ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġlayout Inflater . inflate ( R . layout . category _ item , Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġreturn ĠViewHolder ( view ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠViewHolder , Ġposition : ĠInt ) Ġ{ Ċ Ċ // ĠĠĠĠĠĠĠ Ġval Ġdisplay Metrics Ġ: ĠDisplay Metrics Ġ= ĠDisplay Metrics () Ċ // ĠĠĠĠĠĠĠ Ġ( holder . item View . context Ġas ĠActivity ). window Manager . default Display . get Real Metrics ( display Metrics ) Ċ // ĠĠĠĠĠĠĠ Ġval Ġwidth : ĠInt Ġ= Ġdisplay Metrics . width Pixels ; ĊĊĠĠĠĠĠĠĠ Ġ// Toast . makeText ( holder . item View . context , Ġ"" + width , ĠToast . LENGTH _ LONG ). show () ĊĊĠĠĠĠĠĠĠ Ġval Ġcategory Item Ġ= Ġcategory List [ position ] ĊĠĠĠĠĠĠĠ Ġ// Toast . makeText ( holder . item View . context , Ġcategory Item . imageUrl , ĠToast . LENGTH _ LONG ). show () ĊĠĠĠĠĠĠĠ ĠG lide . with ( holder . item View . context ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. load ( category Item . imageUrl ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. disk Cache Strategy ( Disk Cache Strategy . ALL ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. placeholder ( R . drawable . background ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. error ( R . drawable . background ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. timeout ( 6 0 0 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. into ( holder . background ) Ċ // ĠĠĠĠĠĠĠ Ġholder . background . setBackground Resource ( category Item . imageUrl ) ĊĠĠĠĠĠĠĠ Ġholder . sub Title . text Ġ= Ġcategory Item . subtitle ĊĠĠĠĠĠĠĠ Ġholder . title . text Ġ= Ġcategory Item . title ĊĠĠĠĠĠĠĠ Ġholder . comp List Ġ= Ġcategory Item . comp list ĊĊĠĠĠĠĠĠĠ Ġ// Toast . makeText ( holder . item View . context , Ġ"" + holder . comp List [ 0 ], ĠToast . LENGTH _ LONG ). show () ĊĊĠĠĠĠĠĠĠ Ġholder . item View . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( holder . item View . context , ĠCategory Items :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( holder . comp List . size Ġ> Ġ 0 ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra (" comp List ", Ġholder . comp List ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra (" category Title ", Ġholder . title . text . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . item View . context . startActivity ( intent ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} else { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( holder . item View . context , Ġ" Component ĠList Ġisn 't Ġadded Ġyet !! !", Toast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// intent . putExtra (" title ", Ġ"${ category Item . title }") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// intent . putString ArrayList Extra (" comp List ", Ġholder . comp List ) ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġcategory List . size ĊĠĠĠ Ġ} Ċ } Ċ