package Ġcom . pr asan . app leg ames . ui . adapter Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . ImageView Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . recyclerview . widget . Grid LayoutManager Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġandroidx . recyclerview . widget . St agger ed Grid LayoutManager Ċ import Ġcom . bump tech . glide . G lide Ċ import Ġcom . bump tech . glide . load . engine . Disk Cache Strategy Ċ import Ġcom . pr asan . app leg ames . R Ċ import Ġcom . pr asan . app leg ames . model . Game Response Ċ import Ġcom . pr asan . app leg ames . ui . detail . Game Detail Activity Ċ Ċ class ĠGame Adapter ( private Ġval Ġlayout Manager : ĠSt agger ed Grid LayoutManager ? Ġ= Ġnull ) Ġ: ĠRecyclerView . Adapter < Game Adapter . ViewHolder >() Ġ{ ĊĊĊĠĠĠ Ġprivate Ġvar Ġentries : ĠList < Game Response . Entry > Ġ= ĠArrayList () ĊĊĠĠĠ Ġenum Ġclass ĠView Type Ġ{ ĊĠĠĠĠĠĠĠ ĠSMALL , ĊĠĠĠĠĠĠĠ ĠD ETA ILED ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen ( view Type ){ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠView Type . DE TA ILED . ordinal Ġ-> ĠD eta iled ViewHolder ( parent ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Simple ViewHolder ( parent ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġentries . size ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem ViewType ( position : ĠInt ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif ( layout Manager ?. span Count Ġ== Ġ 1 Ġ) ĠView Type . DE TA ILED . ordinal ĊĠĠĠĠĠĠĠ Ġelse ĠView Type . SMALL . ordinal ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Entries ( entries : List < Game Response . Entry > ){ ĊĠĠĠĠĠĠĠ Ġthis . entries Ġ= Ġentries ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġholder . bind Items ( entries [ position ]) ĊĠĠĠĠĠĠĠ Ġholder . item View . setOnClickListener { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontext : ĠContext Ġ= Ġit !!. context ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( context , ĠGame Detail Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġgame : Game Response . Entry Ġ= Ġentries [ position ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra (" game Info ", game ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . startActivity ( intent ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠĠ Ġopen Ġclass ĠViewHolder ( item View : ĠView ) Ġ: ĠRecyclerView . ViewHolder ( item View ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġbind Items ( game : ĠGame Response . Entry ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġentry Image Ġ= ĠitemView . findViewById ( R . id . game _ image ) Ġas ĠImageView ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġgame Name Ġ= ĠitemView . findViewById ( R . id . game _ name ) Ġas ĠTextView ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġgame Artist Ġ= ĠitemView . findViewById ( R . id . game _ artist ) Ġas ĠTextView ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠimageUrl Ġ= Ġgame . image [ 0 ]. label ĊĠĠĠĠĠĠĠĠĠĠĠ ĠG lide . with ( item View ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. load ( imageUrl ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. disk Cache Strategy ( Disk Cache Strategy . RESOURCE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. into ( entry Image ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgame Name . text Ġ= Ġgame . name . label ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgame Artist . text Ġ= Ġgame . artist . label ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }