package Ġcom . slider . demo Ċ Ċ import Ġandroid . widget . ImageView Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . view pager . widget . ViewPager Ċ import Ġco il . size . Original Size Ċ import Ġco il . size . Scale Ċ import Ġco il . size . Size Ċ import Ġco il . size . Size Resolver Ċ import Ġco il . transform . Circle Crop Transformation Ċ import Ġcom . bump tech . glide . G lide Ċ import Ġcom . bump tech . glide . request . RequestOptions Ċ import Ġcom . ou att ar ar om ual d . slider . Image Loader Ċ import Ġcom . ou att ar ar om ual d . slider . Image Slider Ċ import Ġcom . ou att ar ar om ual d . slider . Slider Adapter Ċ import Ġcom . ou att ar ar om ual d . slider . loaders . co il . Co il Image Loader Factory Ċ import Ġcom . ou att ar ar om ual d . slider . loaders . glide . G lide Image Loader Factory Ċ import Ġcom . ou att ar ar om ual d . slider . loaders . pic asso . Pic asso Image Loader Factory Ċ import Ġcom . x wr ay . group ie . kotlin and roi dex t ensions . Item Ċ import Ġcom . x wr ay . group ie . kotlin and roi dex t ensions . ViewHolder Ċ import Ġkotlinx . android . synt hetic . main . slider _ item . slider Ċ Ċ internal Ġclass ĠSlider Item ( ĊĠ Ġprivate Ġval Ġimage Loader Type : ĠImage Loader Type , ĊĠ Ġprivate Ġval Ġimage Urls : ĠArray < String >, ĊĠ Ġprivate Ġval Ġpage Transformer : ĠView Pager . Page Transformer Ċ ) Ġ: ĠItem () Ġ{ ĊĊĠ Ġprivate Ġvar Ġimage Slider : ĠImage Slider ? Ġ= Ġnull ĊĊĠ Ġprivate Ġval Ġimage Loader Event Callback Ġ= Ġobject Ġ: ĠImage Loader . EventListener Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġon ImageView Configuration ( imageView : ĠImageView ) Ġ{ ĊĠĠĠĠĠ ĠimageView . scale Type Ġ= ĠImageView . Scale Type . FIT _ XY ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġbind ( view Holder : ĠViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠ Ġimage Slider Ġ= ĠviewHolder . slider ĊĠĠĠ ĠviewHolder . slider . adapter Ġ= ĠSlider Adapter ( view Holder . slider . context , ĊĠĠĠĠĠĠĠ ĠgetImage Loader (), ĊĠĠĠĠĠĠĠ Ġimage Urls Ġ= Ġimage Urls . toList (), ĊĠĠĠĠĠĠĠ Ġdescriptions Ġ= ĠData . generate Descriptions ( image Loader Type . name , Ġimage Urls . size ) ĊĠĠĠ Ġ) ĊĠĠĠ Ġ( view Holder . slider . adapter Ġas ĠSlider Adapter ). setImage ClickListener ( object Ġ: ĠSlider Adapter . ImageView ClickListener Ġ{ ĊĠĠĠĠĠ Ġoverride Ġfun Ġon Item Clicked ( slider Id : ĠString , Ġposition : ĠInt , ĠimageUrl : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ ĠToast . makeText ( view Holder . container View . context , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" ID : Ġ$ slider Id , ĠPosition : Ġ$ position , ĠImage ĠURL : Ġ$ imageUrl ", ĠToast . LENGTH _ LONG ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. show () ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ}) ĊĠĠĠ ĠviewHolder . slider . page Transformer Ġ= Ġpage Transformer ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġget Layout (): ĠInt Ġ= ĠR . layout . slider _ item ĊĊĠ Ġfun Ġshow Page Indicator () Ġ{ ĊĠĠĠ Ġimage Slider ?. is Page Indicator Visible Ġ= Ġtrue ĊĠ Ġ} ĊĊĠ Ġfun Ġhide Page Indicator () Ġ{ ĊĠĠĠ Ġimage Slider ?. is Page Indicator Visible Ġ= Ġfalse ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun ĠgetImage Loader (): ĠImage Loader . Factory < out ĠImage Loader > Ġ{ ĊĠĠĠ Ġreturn Ġwhen Ġ( image Loader Type ) Ġ{ ĊĠĠĠĠĠ ĠImage Loader Type . CO IL Ġ-> Ġ{ ĊĠĠĠĠĠĠĠ ĠCo il Image Loader Factory ( image Loader Event Callback ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ ĠImage Loader Type . GL IDE Ġ-> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrequest Options Ġ= ĠRequest Options . error Of ( R . drawable . ic _ error ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. placeholder ( R . drawable . ic _ placeholder ) ĊĠĠĠĠĠĠĠ ĠG lide Image Loader Factory ( request Options Ġ= Ġrequest Options ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ ĠImage Loader Type . PIC ASS O Ġ-> ĠPic asso Image Loader Factory ( ĊĠĠĠĠĠĠĠĠĠ Ġerror Res Id Ġ= ĠR . drawable . ic _ error , ĊĠĠĠĠĠĠĠĠĠ Ġplaceholder Res Id Ġ= ĠR . drawable . ic _ placeholder ĊĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ } Ċ