/* Ċ Ġ* ĠCopyright Ġ 2 0 2 1 ĠPeter ĠKen ji ĠY aman aka Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġcom . py am soft . spl attr ak . ui . test Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . graphics . Bitmap Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . graphics . drawable . Color Drawable Ċ import Ġandroidx . annotation . Check Result Ċ import Ġandroidx . compose . runtime . Composable Ċ import Ġco il . Image Loader Ċ import Ġco il . annotation . Experimental Co il Api Ċ import Ġco il . bitmap . Bitmap Pool Ċ import Ġco il . decode . DataSource Ċ import Ġco il . memory . Memory Cache Ċ import Ġco il . request . Default RequestOptions Ċ import Ġco il . request . Disposable Ċ import Ġco il . request . Image Request Ċ import Ġco il . request . Image Result Ċ import Ġco il . request . Success Result Ċ Ċ /** ĠOnly Ġuse Ġfor Ġtests / pre views Ġ*/ Ċ private Ġclass ĠTest Image Loader ( context : ĠContext ) Ġ: ĠImage Loader Ġ{ ĊĊĠ Ġprivate Ġval Ġcontext Ġ= Ġcontext . application Context ĊĠ Ġprivate Ġval Ġloading Drawable Ġby Ġlazy ( Lazy Thread Safety Mode . NONE ) Ġ{ ĠColor Drawable ( Color . BLACK ) Ġ} ĊĠ Ġprivate Ġval Ġsuccess Drawable Ġby Ġlazy ( Lazy Thread Safety Mode . NONE ) Ġ{ ĠColor Drawable ( Color . GREEN ) Ġ} ĊĊĠ Ġprivate Ġval Ġdis posable Ġ= ĊĠĠĠĠĠ Ġobject Ġ: ĠDis posable Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġis Disposed : ĠBoolean Ġ= Ġtrue ĊĊĠĠĠĠĠĠĠ Ġ@ Experimental Co il Api Ġoverride Ġsuspend Ġfun Ġawait () Ġ{} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġdispose () Ġ{} ĊĠĠĠĠĠ Ġ} ĊĊĠ Ġoverride Ġval Ġbitmap Pool : ĠBitmap Pool Ġ= ĠBitmap Pool ( 0 ) ĊĠ Ġoverride Ġval Ġdefaults : ĠDefault RequestOptions Ġ= ĠDefault RequestOptions () ĊĠ Ġoverride Ġval Ġmemory Cache : ĠMemory Cache Ġ= ĊĠĠĠĠĠ Ġobject Ġ: ĠMemory Cache Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġval ĠmaxSize : ĠInt Ġ= Ġ 1 ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġsize : ĠInt Ġ= Ġ 0 ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġclear () Ġ{} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget ( key : ĠMemory Cache . Key ): ĠBitmap ? Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġremove ( key : ĠMemory Cache . Key ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġset ( key : ĠMemory Cache . Key , Ġbitmap : ĠBitmap ) Ġ{} ĊĠĠĠĠĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġenqueue ( request : ĠImage Request ): ĠDis posable Ġ{ ĊĠĠĠ Ġrequest . apply Ġ{ ĊĠĠĠĠĠ Ġtarget ?. onStart ( placeholder Ġ= Ġloading Drawable ) ĊĠĠĠĠĠ Ġtarget ?. on Success ( result Ġ= Ġsuccess Drawable ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġdis posable ĊĠ Ġ} ĊĊĠ Ġoverride Ġsuspend Ġfun Ġexecute ( request : ĠImage Request ): ĠImage Result Ġ{ ĊĠĠĠ Ġreturn ĠSuccess Result ( ĊĠĠĠĠĠĠĠ Ġdrawable Ġ= Ġsuccess Drawable , ĊĠĠĠĠĠĠĠ Ġrequest Ġ= Ġrequest , ĊĠĠĠĠĠĠĠ Ġmetadata Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠImage Result . Metadata ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmemory CacheKey Ġ= ĠMemory Cache . Key (""), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Sample d Ġ= Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠdataSource Ġ= ĠDataSource . MEMORY _ CACHE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Placeholder Memory CacheKey Present Ġ= Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ)) ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun ĠnewBuilder (): ĠImage Loader . Builder Ġ{ ĊĠĠĠ Ġreturn ĠImage Loader . Builder ( context ) ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġshutdown () Ġ{} Ċ } Ċ Ċ /** ĠOnly Ġuse Ġfor Ġtests / pre views Ġ*/ Ċ @ Composable Ċ @ Check Result Ċ fun Ġcreate New Test Image Loader ( context : ĠContext ): ĠImage Loader Ġ{ ĊĠ Ġreturn ĠTest Image Loader ( context ) Ċ } Ċ