package Ġcom . example . project Ċ Ċ import Ġandroid . util . Log Ċ 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 . bump tech . glide . G lide Ċ import Ġcom . google . firebase . k tx . Firebase Ċ import Ġcom . google . firebase . storage . Firebase Storage Ċ import Ġcom . google . firebase . storage . Storage Reference Ċ import Ġcom . google . firebase . storage . k tx . storage Ċ Ċ class ĠArticle Adapter ( private Ġval ĠData List : ĠArrayList < Article Model >, Ġval Ġitem Click : Ġ( Article Model ) Ġ-> ĠUnit ): ĠRecyclerView . Adapter < Article Adapter . ViewHolder > Ġ() Ġ{ ĊĊĠĠĠ Ġvar Ġarticle DataList Ġ= ĠArrayList < Article Model >() ĊĠĠĠ Ġval Ġstorage Ġ: ĠFirebase Storage Ġ= ĠFirebase . storage (" gs :// food 0 9 - 5 8 1 c 6 . app spot . com /") ĊĠĠĠ Ġval Ġimage Ref Ġ: ĠStorage Reference Ġ= Ġstorage . getReference (" Images ") ĊĊĠĠĠ Ġinner Ġclass ĠViewHolder ( item View : ĠView ?, Ġitem Click : Ġ( Article Model ) Ġ-> ĠUnit ): ĠRecyclerView . ViewHolder ( item View !! ){ ĊĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġtxt Title : ĠTextView Ġ= ĠitemView !!. findViewById ( R . id . title TextView ) ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġtxt Content : ĠTextView Ġ= ĠitemView !!. findViewById ( R . id . content TextView ) ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġtxt Num : ĠTextView Ġ= ĠitemView !!. findViewById ( R . id . num TextView ) ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġimg Thumbnail Ġ: ĠImageView Ġ= ĠitemView !!. findViewById ( R . id . thumbnail ImageView ) ĊĊĠĠĠĠĠĠĠ Ġfun Ġbind ( data : ĠArticle Model , Ġposition : ĠInt ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtxt Title . text Ġ= Ġdata . get _ title () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtxt Content . text Ġ= Ġdata . get _ content () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcur Num Ġ= Ġdata . get _ cur Num () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmax Num Ġ= Ġdata . get _ max Num () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnum Str Ġ= Ġcur Num . toString () Ġ+ Ġ" Ġ/ Ġ" Ġ+ Ġmax Num . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtxt Num . text Ġ= Ġnum Str ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" Article Adapter ĠimageUrl Ġtest ", Ġdata . image Urls . toString ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtmp Image Ref Ġ: ĠStorage Reference Ġ= Ġimage Ref . child ( data . image Urls [ 0 ]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtmp Image Ref . download Url . add On Complete Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . is Successful ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠG lide . with ( img Thumbnail . context ). load ( it . result ). placeholder ( R . drawable . ic _ baseline _ fast food _ 2 4 ). into ( img Thumbnail ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem Click ( data ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= ĠLayoutInflater . from ( parent . context ). inflate ( R . layout . item _ article , Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġreturn ĠViewHolder ( view , Ġitem Click ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ{ Ċ // ĠĠĠĠĠĠĠ ĠLog . d (" Article Adapter ", Ġ" getItem Count Ġ: Ġ" Ġ+ Ġarticle DataList . count ()) ĊĠĠĠĠĠĠĠ Ġreturn Ġarticle DataList . count () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠViewHolder , Ġposition : ĠInt ) Ġ{ Ċ // ĠĠĠĠĠĠĠ ĠLog . d (" Article Adapter ", Ġ" ===== Ġ===== Ġ===== Ġ===== Ġon Bind ViewHolder Ġ===== Ġ===== Ġ===== Ġ=== ==" ) ĊĠĠĠĠĠĠĠ Ġholder . bind ( article DataList [ position ], Ġposition ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġreplace List ( new List : ĠArrayList < Article Model > ){ ĊĠĠĠĠĠĠĠ Ġarticle DataList Ġ= Ġnew List ĊĠĠĠĠĠĠĠ Ġnotify DataSet Changed () ĊĠĠĠ Ġ} Ċ }