package Ġru . ars ich . messenger . utils . images ĊĊ Ċ import Ġandroid . content . Context Ċ import Ġandroid . graphics . Bitmap Ċ import Ġcom . bump tech . glide . G lide Ċ import Ġcom . bump tech . glide . request . animation . G lide Animation Ċ import Ġcom . bump tech . glide . request . target . Simple Target Ċ import Ġru . ars ich . messenger . R Ċ Ċ class ĠMulti Image Loader ( private Ġval Ġurls : ĠArray < String >, Ġprivate Ġval Ġreceiver : ĠMulti Image Receiver ): ĠImage Loader Ġ{ ĊĠĠĠ Ġprivate Ġval Ġbit maps : ĠMutable List < Bitmap > Ġ= Ġmutable ListOf () ĊĠĠĠ Ġprivate Ġvar Ġinterrupted Ġ= Ġfalse ĊĊĠĠĠ Ġprivate Ġvar Ġlast Target : ĠSimple Target < Bitmap >? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun Ġload ( context : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( inter rupted ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbit maps . clear () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġbitmap Size Ġ= Ġbit maps . size ĊĠĠĠĠĠĠĠ Ġif Ġ( bitmap Size Ġ== Ġurls . size ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreceiver . on Images Receive ( bit maps ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġurl Ġ= Ġurls [ bitmap Size ] ĊĊĠĠĠĠĠĠĠ Ġlast Target Ġ= Ġobject : ĠSimple Target < Bitmap >() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Resource Ready ( resource : ĠBitmap ?, Ġg lide Animation : ĠG lide Animation < in ĠBitmap > ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( resource Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbit maps . add ( resource ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinterrupted Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġload ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠG lide Ġhas Ġinternal Ġcache Ġinside ĊĠĠĠĠĠĠĠ Ġ// Ġwe Ġdo Ġnot Ġneed Ġstore Ġbit maps Ġin ĠL ru Cache Ġhere ĊĠĠĠĠĠĠĠ ĠG lide . with ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. load ( url ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. as Bitmap () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. error ( R . drawable . camera ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. into ( last Target ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinterrupt () Ġ{ ĊĠĠĠĠĠĠĠ Ġlast Target ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠG lide . clear ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbit maps . clear () ĊĠĠĠĠĠĠĠ Ġinterrupted Ġ= Ġtrue ĊĠĠĠ Ġ} Ċ }