package Ġcom . example . gallery . adapter ĊĊ Ċ import Ġandroid . content . Context Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . ImageView Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . card view . widget . Card View Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . bump tech . glide . G lide Ċ import Ġcom . bump tech . glide . request . RequestOptions Ċ import Ġcom . example . gallery . R Ċ import Ġcom . example . gallery . utils . image Folder Ċ import Ġcom . example . gallery . utils . interfaces . item ClickListener ĊĊ Ċ class Ġpicture Folder Adapter Ġ: ĠRecyclerView . Adapter < picture Folder Adapter . Folder Holder > Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġfolders : ĠArrayList < image Folder >? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġfolder Cont x : ĠContext ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġlisten To Click : Ġitem ClickListener ? Ġ= Ġnull ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġfolders ĠAn ĠArrayList Ġof ĠString Ġthat Ġrepresents Ġpaths Ġto Ġfolders Ġon Ġthe Ġexternal Ġstorage Ġthat Ġcontain Ġpictures ĊĠĠĠĠ Ġ* Ġ@ param Ġfolder Cont x ĠThe ĠActivity Ġor Ġfragment ĠContext ĊĠĠĠĠ Ġ* Ġ@ param Ġlisten Ġinter Face Ġfor Ġcommunication Ġbetween Ġadapter Ġand Ġfragment Ġor Ġactivity ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġconstructor ( ĊĠĠĠĠĠĠĠ Ġfolders : ĠArrayList < image Folder > ?, ĊĠĠĠĠĠĠĠ Ġfolder Cont x : ĠContext ?, ĊĠĠĠĠĠĠĠ Ġlisten : Ġitem ClickListener ? ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . folders Ġ= Ġfolders ĊĠĠĠĠĠĠĠ Ġthis . folder Cont x Ġ= Ġfolder Cont x ĊĠĠĠĠĠĠĠ Ġlisten To Click Ġ= Ġlisten ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠFolder Holder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinflater Ġ= ĠLayoutInflater . from ( parent . context ) ĊĠĠĠĠĠĠĠ Ġval Ġcell : ĠView Ġ= Ġinflater . inflate ( R . layout . picture _ folder _ item , Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġreturn ĠFolder Holder ( cell ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠFolder Holder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfolder Ġ= Ġfolders ! ![ position ] ĊĠĠĠĠĠĠĠ ĠG lide . with ( folder Cont x !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. load ( folder . getFirst Pic ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply ( RequestOptions (). center Crop ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. into ( holder . folder Pic ) ĊĠĠĠĠĠĠĠ Ġval Ġtext Ġ= Ġ"(" Ġ+ Ġfolder . getNumberOf P ics () Ġ+ Ġ") Ġ" Ġ+ Ġfolder . get Folder Name () ĊĠĠĠĠĠĠĠ Ġholder . folder Name . text Ġ= Ġtext ĊĠĠĠĠĠĠĠ Ġholder . folder Pic . setOnClickListener { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlisten To Click !!. on Pic Clicked ( folder . getPath (), Ġfolder . get Folder Name ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġfolders !!. size ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġclass ĠFolder Holder ( item View : ĠView ) Ġ: ĠRecyclerView . ViewHolder ( item View ) Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġfolder Pic : ĠImageView ĊĠĠĠĠĠĠĠ Ġvar Ġfolder Name : ĠTextView ĊĠĠĠĠĠĠĠ Ġvar Ġfolder Card : ĠCard View ĊĊĠĠĠĠĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfolder Pic Ġ= ĠitemView . findViewById ( R . id . folder Pic ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfolder Name Ġ= ĠitemView . findViewById ( R . id . folder Name ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfolder Card Ġ= ĠitemView . findViewById ( R . id . folder Card ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }