package Ġcom . den z co sk un . image slider . adapters Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . view .* Ċ import Ġandroid . widget . ImageView Ċ import Ġandroid . widget . LinearLayout Ċ import Ġandroid . widget . Relative Layout Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . view pager . widget . Pager Adapter Ċ import Ġcom . den z co sk un . image slider . R Ċ import Ġcom . den z co sk un . image slider . constants . Action Types Ċ import Ġcom . den z co sk un . image slider . constants . Scale Types Ċ import Ġcom . den z co sk un . image slider . interfaces . Item ChangeListener Ċ import Ġcom . den z co sk un . image slider . interfaces . ItemClickListener Ċ import Ġcom . den z co sk un . image slider . interfaces . Touch Listener Ċ import Ġcom . den z co sk un . image slider . models . Slide Model Ċ import Ġcom . den z co sk un . image slider . transformation . Rounded Transformation Ċ import Ġcom . squareup . pic asso . Pic asso Ċ Ċ /** Ċ Ġ* ĠCreated Ġby ĠDen iz ĠCo ÅŁ k un Ġon Ġ 6 / 2 3 / 2 0 2 0 . Ċ Ġ* Ġden z co sk un @ hotmail . com Ċ Ġ* ĠÄ° stan bul Ċ Ġ*/ Ċ class ĠView Pager Adapter ( context : ĠContext ?, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage List : ĠList < Slide Model >, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġvar Ġradius : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġvar Ġerror Image : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġvar Ġplaceholder : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġvar Ġtitle Background : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġvar Ġscale Type : ĠScale Types ?, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġvar ĠtextAlign : ĠString ) Ġ: ĠP ager Adapter () Ġ{ ĊĊĠĠĠ Ġconstructor ( context : ĠContext , Ġimage List : ĠList < Slide Model >, Ġradius : ĠInt , Ġerror Image : ĠInt , Ġplaceholder : ĠInt , Ġtitle Background : ĠInt , ĠtextAlign : ĠString ) Ġ: ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis ( context , Ġimage List , Ġradius , Ġerror Image , Ġplaceholder , Ġtitle Background , Ġnull , ĠtextAlign ) ĊĊĠĠĠ Ġprivate Ġvar Ġimage List : ĠList < Slide Model >? Ġ= Ġimage List ĊĠĠĠ Ġprivate Ġvar Ġlayout Inflater : ĠLayoutInflater ? Ġ= Ġcontext !!. getSystem Service ( Context . LAYOUT _ IN FL ATER _ SERVICE ) Ġas ĠLayoutInflater ? ĊĊĠĠĠ Ġprivate Ġvar Ġitem ClickListener : ĠItem ClickListener ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġtouch Listener : ĠTouch Listener ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun Ġis View From Object ( view : ĠView , Ġobj : ĠAny ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġview Ġ== Ġobj ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Count (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġimage List !!. size ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinstantiate Item ( container : ĠViewGroup , Ġposition : ĠInt ): ĠView { ĊĠĠĠĠĠĠĠ Ġval ĠitemView Ġ= Ġlayout Inflater !!. inflate ( R . layout . pager _ row , Ġcontainer , Ġfalse ) ĊĊĠĠĠĠĠĠĠ Ġval ĠimageView Ġ= ĠitemView . findViewById < ImageView >( R . id . image _ view ) ĊĠĠĠĠĠĠĠ Ġval Ġlinear Layout Ġ= ĠitemView . findViewById < LinearLayout >( R . id . linear _ layout ) ĊĠĠĠĠĠĠĠ Ġval ĠtextView Ġ= ĠitemView . findViewById < TextView >( R . id . text _ view ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( image List ! ![ position ]. title Ġ!= Ġnull ){ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠtextView . text Ġ= Ġimage List ! ![ position ]. title ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlinear Layout . setBackground Resource ( title Background ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠtextView . gravity Ġ= Ġget Gravity From Align ( textAlign ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlinear Layout . gravity Ġ= Ġget Gravity From Align ( textAlign ) ĊĠĠĠĠĠĠĠ Ġ} else { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlinear Layout . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠImage Ġfrom Ġurl Ġor Ġlocal Ġpath Ġcheck . ĊĠĠĠĠĠĠĠ Ġval Ġloader Ġ= Ġif Ġ( image List ! ![ position ]. imageUrl Ġ== Ġnull ){ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPic asso . get (). load ( image List ! ![ position ]. image Path !! ) ĊĠĠĠĠĠĠĠ Ġ} else { ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPic asso . get (). load ( image List ! ![ position ]. imageUrl !! ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Ġset ĠPic asso Ġoptions . ĊĠĠĠĠĠĠĠ Ġif Ġ(( scale Type Ġ!= Ġnull Ġ&& Ġscale Type Ġ== ĠScale Types . CENTER _ C ROP ) Ġ|| Ġimage List ! ![ position ]. scale Type Ġ== ĠScale Types . CENTER _ C ROP ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġloader . fit (). center Crop () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif (( scale Type Ġ!= Ġnull Ġ&& Ġscale Type Ġ== ĠScale Types . CENTER _ INS IDE ) Ġ|| Ġimage List ! ![ position ]. scale Type Ġ== ĠScale Types . CENTER _ INS IDE ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġloader . fit (). center Inside () ĊĠĠĠĠĠĠĠ Ġ} else Ġif (( scale Type Ġ!= Ġnull Ġ&& Ġscale Type Ġ== ĠScale Types . FIT ) Ġ|| Ġimage List ! ![ position ]. scale Type Ġ== ĠScale Types . FIT ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġloader . fit () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġloader . transform ( Rounded Transformation ( radius , Ġ 0 )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. placeholder ( placeholder ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. error ( error Image ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. into ( imageView ) ĊĊĠĠĠĠĠĠĠ Ġcontainer . addView ( item View ) ĊĊĠĠĠĠĠĠĠ ĠimageView . setOnClickListener { item ClickListener ?. on ItemSelected ( position )} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( touch Listener Ġ!= Ġnull ){ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠimageView !!. setOn Touch Listener Ġ{ Ġv , Ġevent Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( event . action ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMotion Event . ACTION _ MOVE Ġ-> Ġtouch Listener !!. on Tou ched ( Action Types . MOVE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMotion Event . ACTION _ DOWN Ġ-> Ġtouch Listener !!. on Tou ched ( Action Types . DOWN ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMotion Event . ACTION _ UP Ġ-> Ġtouch Listener !!. on Tou ched ( Action Types . UP ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠ Ġreturn ĠitemView ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGet Ġlayout Ġgravity Ġvalue Ġfrom ĠtextAlign Ġvariable ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġ ĠtextAlign Ġ Ġtext Ġalign Ġby Ġuser ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget Gravity From Align ( textAlign : ĠString ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( textAlign ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" RIGHT " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGr avity . RIGHT ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" CENTER " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGr avity . CENTER ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGr avity . LEFT ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSet Ġitem Ġclick Ġlistener ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġ Ġitem ClickListener Ġ Ġcallback Ġby Ġuser ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġset ItemClickListener ( item ClickListener : ĠItem ClickListener ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . item ClickListener Ġ= Ġitem ClickListener ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSet Ġtouch Ġlistener Ġfor Ġlisten Ġto Ġimage Ġtouch ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġ Ġtouch Listener Ġ Ġinterface Ġcallback ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġset Touch Listener ( touch Listener : ĠTouch Listener ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . touch Listener Ġ= Ġtouch Listener ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdestroy Item ( container : ĠViewGroup , Ġposition : ĠInt , Ġ` object `: ĠAny ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcontainer . remove View (` object ` Ġas ĠRelative Layout ) ĊĠĠĠ Ġ} Ċ Ċ }