package Ġcom . mike pen z . material drawer . util Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . graphics . drawable . Drawable Ċ import Ġandroid . net . Uri Ċ import Ġandroid . widget . ImageView Ċ import Ġcom . mike pen z . material drawer . util . Drawer Image Loader . ID raw er Image Loader Ċ Ċ /** Ċ Ġ* ĠThe Ġgeneral Ġmanagement Ġclass Ġfor Ġthe Ġ[ ID raw er Image Loader ] Ġsupport , Ġto Ġoffer Ġsupport Ġfor Ġany Ġimage Ġloading Ġlibrary . Ċ Ġ*/ Ċ open Ġclass ĠDraw er Image Loader Ġprivate Ġconstructor ( var Ġimage Loader : ĠID raw er Image Loader ?) Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġdefines Ġif Ġwe Ġaccept Ġany Ġprotocol ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġvar Ġhandle All Protocols Ġ= Ġfalse ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġsupported Ġprotocols ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġvar Ġhandled Protocols Ġ= ĠlistOf < String ?> (" http ", Ġ" https ") ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThe Ġpossible Ġtags Ġwe Ġcurrently Ġsupport . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġenum Ġclass ĠTags Ġ{ ĊĠĠĠĠĠĠĠ ĠPRO FILE , ĊĠĠĠĠĠĠĠ ĠPRO FILE _ DRAW ER _ ITEM , ĊĠĠĠĠĠĠĠ ĠAC COUNT _ HEADER ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ@ param ĠimageView ĊĠĠĠĠ Ġ* Ġ@ param Ġuri ĊĠĠĠĠ Ġ* Ġ@ param Ġtag ĊĠĠĠĠ Ġ* Ġ@ return Ġfalse Ġif Ġnot Ġconsumed ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġopen Ġfun Ġset Image ( imageView : ĠImageView , Ġuri : ĠUri , Ġtag : ĠString ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠIf Ġwe Ġdo Ġnot Ġhandle Ġthis Ġprotocol Ġwe Ġkeep Ġthe Ġoriginal Ġbehavior ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( handle All Protocols Ġ|| Ġuri . scheme Ġin Ġhandled Protocols ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimage Loader ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġplace Holder Ġ= Ġit . placeholder ( imageView . context , Ġtag ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit [ imageView , Ġuri , Ġplace Holder ] Ġ= Ġtag ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCancel Ġloading Ġfor Ġthe Ġgiven Ġ[ ImageView ] ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġcancel Image ( imageView : ĠImageView ) Ġ{ ĊĠĠĠĠĠĠĠ Ġimage Loader ?. cancel ( imageView ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinterface ĠID raw er Image Loader Ġ{ ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠStart Ġloading Ġthe Ġimage Ġ[ uri ] Ġfor Ġthe Ġgiven Ġ[ imageView ] Ġproviding Ġthe Ġ[ placeholder ], Ġallowing Ġto Ġidentify Ġthe Ġlocation Ġit Ġis Ġgonna Ġbe Ġused Ġvia Ġthe Ġ[ tag ] ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġoperator Ġfun Ġset ( imageView : ĠImageView , Ġuri : ĠUri , Ġplaceholder : ĠDrawable , Ġtag : ĠString ?) ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠCancel Ġloading Ġimages Ġfor Ġthe ĠimageView ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġcancel ( imageView : ĠImageView ) ĊĊĠĠĠĠĠĠĠ Ġ@ Deprecated (" Please Ġuse Ġthe Ġplaceholder Ġmethod Ġwith Ġthe Ġprovided Ġtag Ġinstead ") ĊĠĠĠĠĠĠĠ Ġfun Ġplaceholder ( ctx : ĠContext ): ĠDrawable ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠRetrieve Ġthe Ġplaceholder Ġto Ġdisplay , Ġusing Ġthe Ġ[ tag ] Ġto Ġidentify Ġthe Ġlocation Ġit Ġis Ġgonna Ġbe Ġused ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġplaceholder ( ctx : ĠContext , Ġtag : ĠString ?): ĠDrawable ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġprivate Ġvar ĠS INGLE TON : ĠDraw er Image Loader ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġfun Ġinit ( loader Impl : ĠID raw er Image Loader ): ĠDraw er Image Loader Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠS INGLE TON Ġ= ĠDraw er Image Loader ( loader Impl ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠS INGLE TON Ġas ĠDraw er Image Loader ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġinstance : ĠDraw er Image Loader ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( SINGLE TON Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠS INGLE TON Ġ= ĠDraw er Image Loader ( object Ġ: ĠAbstract Drawer Image Loader () Ġ{}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠS INGLE TON Ġas ĠDraw er Image Loader ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ