package Ġorg . step ik . android . view . download . ui . adapter Ċ Ċ import Ġandroid . graphics . Bitmap Factory Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . core . graphics . drawable . Rounded Bitmap Drawable Factory Ċ import Ġcom . bump tech . glide . G lide Ċ import Ġcom . bump tech . glide . request . target . Bitmap ImageView Target Ċ import Ġkotlinx . android . synt hetic . main . downloaded _ course _ item . view .* Ċ import Ġorg . step ic . d roid . R Ċ import Ġorg . step ic . d roid . persistence . model . Download Item Ċ import Ġorg . step ic . d roid . persistence . model . Download Progress Ċ import Ġorg . step ic . d roid . ui . util . Rounded Bitmap ImageView Target Ċ import Ġru . nob ird . android . ui . adapter deleg ates . Adapter Delegate Ċ import Ġru . nob ird . android . ui . adapter deleg ates . Delegate ViewHolder Ċ Ċ class ĠDown loaded Courses Adapter Delegate ( ĊĠĠĠ Ġprivate Ġval Ġon Item Click : Ġ( Download Item ) Ġ-> ĠUnit , ĊĠĠĠ Ġprivate Ġval Ġon Item Remove Click : Ġ( Download Item ) Ġ-> ĠUnit Ċ ) Ġ: ĠAdapter Delegate < Download Item , ĠDelegate ViewHolder < Download Item >>() Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠSM ALLE ST _ FORMAT _ UNIT Ġ= Ġ 1 0 2 4 Ġ* Ġ 1 0 2 4 L Ġ// Ġ 1 Ġmb ĊĠĠĠ Ġ} ĊĠĠĠ Ġoverride Ġfun Ġis For ViewType ( position : ĠInt , Ġdata : ĠDownload Item ): ĠBoolean Ġ= ĊĠĠĠĠĠĠĠ Ġtrue ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup ): ĠDelegate ViewHolder < Download Item > Ġ= ĊĠĠĠĠĠĠĠ ĠViewHolder ( create View ( parent , ĠR . layout . downloaded _ course _ item )) ĊĊĠĠĠ Ġprivate Ġinner Ġclass ĠViewHolder ( root : ĠView ) Ġ: ĠDelegate ViewHolder < Download Item >( root ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġdownloaded Course Title Ġ= Ġroot . downloaded Course Name ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġdownloaded Course Image Ġ= Ġroot . downloaded Course Image ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġdownloaded Course Status Ġ= Ġroot . downloaded Course Status ĊĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġcourse Placeholder Bitmap Ġ= ĠBitmap Factory . decode Resource ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . resources , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . drawable . general _ placeholder ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġcircular Bitmap Drawable Ġ= ĠRo unded Bitmap Drawable Factory . create ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . resources , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcourse Placeholder Bitmap ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠimageView Target : ĠBitmap ImageView Target Ġ= Ġ ĠRo unded Bitmap ImageView Target ( item View . resources . get Dimension ( R . dim en . course _ image _ radius ), Ġdownloaded Course Image ) ĊĊĠĠĠĠĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġroot . setOnClickListener Ġ{ Ġitem Data ?. let ( on Item Click ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdownloaded Course Status . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( downloaded Course Status . status Ġis ĠDownload Progress . Status . Cached ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem Data ?. let ( on Item Remove Click ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcircular Bitmap Drawable . corner Radius Ġ= Ġcontext . resources . get Dimension ( R . dim en . course _ image _ radius ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Bind ( data : ĠDownload Item ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdownloaded Course Title . text Ġ= Ġdata . course . title ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdownloaded Course Status . status Ġ= Ġdata . status ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠG lide . with ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. as Bitmap () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. load ( data . course . cover ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. placeholder ( circular Bitmap Drawable ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. fit Center () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. into ( imageView Target ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }