package Ġcom . w uh en zh iz ao . adapter . example . image Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . content . Context Ċ import Ġandroid . graphics . drawable . Anim atable Ċ import Ġandroid . net . Uri Ċ import Ġandroid . os . Environment Ċ import Ġandroid . text . TextUtils Ċ import Ġcom . facebook . cache . disk . Disk Cache Config Ċ import Ġcom . facebook . common . internal . Sets Ċ import Ġcom . facebook . common . util . Byte Constants Ċ import Ġcom . facebook . draw ee . backends . pipeline . F resco Ċ import Ġcom . facebook . draw ee . backends . pipeline . Pipeline Draw ee Controller Builder Ċ import Ġcom . facebook . draw ee . controller . Controller Listener Ċ import Ġcom . facebook . draw ee . view . Simple Draw ee View Ċ import Ġcom . facebook . image pipeline . backends . okhttp 3 . Ok Http Image Pipeline Config Factory Ċ import Ġcom . facebook . image pipeline . cache . Memory Cache Params Ċ import Ġcom . facebook . image pipeline . common . Priority Ċ import Ġcom . facebook . image pipeline . common . Resize Options Ċ import Ġcom . facebook . image pipeline . core . Image Pipeline Config Ċ import Ġcom . facebook . image pipeline . decoder . Simple Progress ive J peg Config Ċ import Ġcom . facebook . image pipeline . image . Image Info Ċ import Ġcom . facebook . image pipeline . listener . RequestListener Ċ import Ġcom . facebook . image pipeline . listener . Request Logging Listener Ċ import Ġcom . facebook . image pipeline . request . Image Request Ċ import Ġcom . facebook . image pipeline . request . Image RequestBuilder Ċ import Ġokhttp 3 . Ok HttpClient Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġli ufe i Ġon Ġ 2 0 1 7 / 1 0 / 1 1 . Ċ Ġ*/ Ċ object ĠImage Core Ġ{ ĊĠĠĠ Ġ/** * ĊĠĠĠĠ Ġ* Ġ æľĢå¤§ åı¯ è¿Ĳè¡Į åĨħåŃĺ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġval ĠMAX _ HEAP _ SIZE Ġ= ĠRuntime . get Runtime (). max Memory (). toInt () ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ æľĢå¤§ æĸĩä»¶ ç¼ĵåŃĺ éĻĲåĪ¶ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġval ĠMAX _ DISK _ CACHE _ SIZE Ġ= Ġ 4 0 Ġ* ĠByte Constants . MB ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ æľĢå¤§ åĨħåŃĺ éĻĲåĪ¶ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġval ĠMAX _ MEMORY _ CACHE _ SIZE Ġ= ĠMAX _ HEAP _ SIZE Ġ/ Ġ 4 ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ ç¼ĵåŃĺ çĽ®å½ķ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġval ĠIMAGE _ PIPELINE _ CACHE _ DIR Ġ= Ġ" Android / data / com . mx . os / F resco Cache " ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġå°ı ç¼ĵåŃĺ çĽ®å½ķ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġval ĠIMAGE _ PIPELINE _ SMALL _ CACHE _ DIR Ġ= Ġ" Android / data / com . mx . os / F resco Small Cache " ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠPipeline éħįç½® ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Suppress Lint (" Static Field Leak ") ĊĠĠĠ Ġprivate Ġvar Ġs Ok Http Image Pipeline Config : ĠImage Pipeline Config ? Ġ= Ġnull ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ éĿŀ wifi çİ¯å¢ĥ æĺ¯åĲ¦ æĺ¾ç¤º åĽ¾çīĩ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġvar Ġund is play Out Off Wifi Net Work Ġ= Ġfalse ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCreates Ġconfig Ġusing ĠOk Http Ġas Ġnetwork Ġbacked . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget Ok Http Image Pipeline Config ( context : ĠContext , Ġok HttpClient : ĠOk HttpClient ): ĠImage Pipeline Config ? Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( s Ok Http Image Pipeline Config Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġconfig Builder Ġ= ĠOk Http Image Pipeline Config Factory . newBuilder ( context , Ġok HttpClient ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconfigure Caches ( context , Ġconfig Builder ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconfigure Logging Listeners ( config Builder ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġs Ok Http Image Pipeline Config Ġ= Ġconfig Builder . build () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġs Ok Http Image Pipeline Config ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠConfig ures Ġdisk Ġand Ġmemory Ġcache Ġnot Ġto Ġexceed Ġcommon Ġlimits ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġconfigure Caches ( context : ĠContext , Ġconfig Builder : ĠImage Pipeline Config . Builder ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbitmap Cache Params Ġ= ĠMemory Cache Params ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMAX _ MEMORY _ CACHE _ SIZE , Ġ// ĠMax Ġtotal Ġsize Ġof Ġelements Ġin Ġthe Ġcache ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠInteger . MAX _ VALUE , Ġ// ĠMax Ġentries Ġin Ġthe Ġcache ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMAX _ MEMORY _ CACHE _ SIZE Ġ/ Ġ 2 , Ġ// ĠMax Ġtotal Ġsize Ġof Ġelements Ġin Ġe viction Ġqueue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠInteger . MAX _ VALUE , Ġ// ĠMax Ġlength Ġof Ġe viction Ġqueue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠInteger . MAX _ VALUE ) ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠMax Ġcache Ġentry Ġsize ĊĠĠĠĠĠĠĠ Ġconfig Builder . set Bitmap Memory Cache Params Supplier Ġ{ Ġbitmap Cache Params Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Decode FileDescriptor Enabled ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Bit maps Config ( Bitmap . Config . ARGB _ 8 8 8 8 ) Ġ// TODO : Ġif Ġneed Ġhigh Ġpicture Ġquality , Ġremove Ġcomment Ġhere ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Resize And Rotate Enabled For Network ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Progress ive J peg Config ( Simple Progress ive J peg Config ()) ĊĠĠĠĠĠĠĠ Ġif Ġ( Environment . MEDIA _ MOUNT ED Ġ== ĠEnvironment . get External Storage State ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconfig Builder . set Main Disk Cache Config ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDisk Cache Config . newBuilder ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Base DirectoryPath ( Environment . get External Storage Directory ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Base DirectoryName ( IMAGE _ PIPELINE _ CACHE _ DIR ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setMax Cache Size ( MAX _ DISK _ CACHE _ SIZE . to Long ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Small Image Disk Cache Config ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDisk Cache Config . newBuilder ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Base DirectoryPath ( Environment . get External Storage Directory ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Base DirectoryName ( IMAGE _ PIPELINE _ SMALL _ CACHE _ DIR ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setMax Cache Size (( MAX _ DISK _ CACHE _ SIZE Ġ/ Ġ 2 ). to Long ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build ()) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconfig Builder . set Main Disk Cache Config ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDisk Cache Config . newBuilder ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Base DirectoryPath ( context . application Context . cacheDir ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Base DirectoryName ( IMAGE _ PIPELINE _ CACHE _ DIR ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setMax Cache Size ( MAX _ DISK _ CACHE _ SIZE . to Long ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Small Image Disk Cache Config ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDisk Cache Config . newBuilder ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Base DirectoryPath ( context . application Context . cacheDir ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Base DirectoryName ( IMAGE _ PIPELINE _ SMALL _ CACHE _ DIR ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setMax Cache Size (( MAX _ DISK _ CACHE _ SIZE Ġ/ Ġ 2 ). to Long ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġconfigure Logging Listeners ( config Builder : ĠImage Pipeline Config . Builder ) Ġ{ ĊĠĠĠĠĠĠĠ Ġconfig Builder . setRequest Listeners ( Sets . new HashSet ( Request Logging Listener () Ġas ĠRequest Listener )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Image RequestBuilder ( builder : ĠImage RequestBuilder , Ġpriority : ĠPriority ?, Ġoptions : ĠResize Options ?, Ġlevel : ĠImage Request . Request Level ?, Ġpersistent Cache : ĠBoolean ): ĠImage RequestBuilder Ġ{ ĊĠĠĠĠĠĠĠ Ġbuilder . is Progress ive Rendering Enabled Ġ= Ġtrue ĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠæĶ¯æĮģ æ¸ Ĳ è¿Ľ å¼ı åĽ¾çīĩ ĊĠĠĠĠĠĠĠ Ġif Ġ( persistent Cache ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . image Type Ġ= ĠImage Request . ImageType . SMALL ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( priority Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . request Priority Ġ= Ġpriority ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġè®¾ç½® ä¼ĺåħĪ çº§ ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( options Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . resize Options Ġ= Ġoptions ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( level Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . lowest Per mitted Request Level Ġ= Ġlevel ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġbuilder ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcreate Image Request Width Url ( url : ĠString , Ġpriority : ĠPriority ?, Ġoptions : ĠResize Options ?, Ġlevel : ĠImage Request . Request Level ?, Ġpersistent Cache : ĠBoolean ): ĠImage Request Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġbuilder Ġ= ĠImage RequestBuilder . newBuilder With Source ( Uri . parse ( url )) ĊĠĠĠĠĠĠĠ Ġbuilder Ġ= Ġset Image RequestBuilder ( builder , Ġpriority , Ġoptions , Ġlevel , Ġpersistent Cache ) ĊĠĠĠĠĠĠĠ Ġreturn Ġbuilder . build () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcreate Image Request Width Local Resource ( res Id : ĠInt ): ĠImage Request Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġbuilder Ġ= ĠImage RequestBuilder . newBuilder With ResourceId ( res Id ) ĊĠĠĠĠĠĠĠ Ġbuilder Ġ= Ġset Image RequestBuilder ( builder , Ġnull , Ġnull , ĠImage Request . Request Level . FULL _ FETCH , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġreturn Ġbuilder . build () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġèİ·åıĸ Pipeline Draw ee Controller Builder å®ŀä¾ĭ ï¼Į å®ŀçİ° å¯¹ åĬłè½½ åĽ¾çīĩ çļĦ æİ§åĪ¶ åĴĮ å®ļ åĪ¶ ĊĊĠĠĠĠ Ġ* Ġ@ param Ġcaller Context ĊĠĠĠĠ Ġ* Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġview ĊĠĠĠĠ Ġ* Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġlistener ĊĠĠĠĠ Ġ* Ġ* ĊĠĠĠĠ Ġ* Ġ@ return ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġget Controller Builder ( caller Context : ĠContext , Ġview : ĠSimple Draw ee View , Ġlistener : ĠG Image Load Listener < Image Info >? ): ĠPipeline Draw ee Controller Builder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbuilder Ġ= ĠF resco . new Draw ee Controller Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Ret ain Image On Failure ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Old Controller ( view . controller ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setAuto Play Animations ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Caller Context ( caller Context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Tap To Retry Enabled ( false ) ĊĠĠĠĠĠĠĠ Ġif Ġ( listener Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . controller Listener Ġ= Ġobject Ġ: ĠController Listener < Image Info > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonSubmit ( id : ĠString , Ġcaller Context : ĠAny ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlistener . on Submit ( view , Ġid , Ġcaller Context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Final Image Set ( id : ĠString , Ġimage Info : ĠImage Info ?, Ġanim atable : ĠAnim atable ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlistener . on Final Image Set ( view , Ġid , Ġimage Info ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Intermediate Image Set ( id : ĠString , Ġimage Info : ĠImage Info ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlistener . on Intermediate Image Set ( view , Ġid , Ġimage Info ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Intermediate Image Failed ( id : ĠString , Ġthrowable : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlistener . on Intermediate Image Failed ( view , Ġid , Ġthrowable ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Failure ( id : ĠString , Ġthrowable : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlistener . on Failure ( view , Ġid , Ġthrowable ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Release ( id : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlistener . on Release ( view , Ġid ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġbuilder ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠéĢļè¿ĩ èµĦæºĲ Id åĬłè½½ åĽ¾çīĩ ĊĊĠĠĠĠ Ġ* Ġ@ param Ġcaller Context ĊĠĠĠĠ Ġ* Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġview ĊĠĠĠĠ Ġ* Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġres Id ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġload ( caller Context : ĠContext , Ġview : ĠSimple Draw ee View , Ġres Id : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcontroller Builder Ġ= Ġget Controller Builder ( caller Context , Ġview , Ġnull ) ĊĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= Ġcreate Image Request Width Local Resource ( res Id ) ĊĠĠĠĠĠĠĠ Ġcontroller Builder . image Request Ġ= Ġrequest ĊĠĠĠĠĠĠĠ Ġview . controller Ġ= Ġcontroller Builder . build () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ åĬłè½½ åĽ¾çīĩ æĸ¹æ³ķ ï¼Į ĊĠĠĠĠ Ġ* ĠæĶ¯æĮģ çļĦ ç±»åŀĭ ï¼ļ ĊĠĠĠĠ Ġ* Ġ è¿ľç¨ĭ åĽ¾çīĩ ĉ http :// , Ġhttps :// ĉ Http URLConnection Ġ æĪĸèĢħ åıĤèĢĥ Ġä½¿çĶ¨ åħ¶ä»ĸ ç½ĳç»ľ åĬłè½½ æĸ¹æ¡Ī ĊĠĠĠĠ Ġ* Ġ æľ¬åľ° æĸĩä»¶ ĉ file :// ĉ FileInputStream ĊĠĠĠĠ Ġ* ĠContent Ġprovider ĉ content :// ĉ Content Resolver ĊĠĠĠĠ Ġ* Ġasset çĽ®å½ķ ä¸ĭçļĦ èµĦæºĲ ĉ asset :// ĉ Asset Manager ĊĠĠĠĠ Ġ* Ġres çĽ®å½ķ ä¸ĭçļĦ èµĦæºĲ ĉ res :// ĉ Resources . open Raw Resource ĊĊĠĠĠĠ Ġ* Ġ@ param Ġcaller Context ĊĠĠĠĠ Ġ* Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġview ĊĠĠĠĠ Ġ* Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġurl ĊĠĠĠĠ Ġ* Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġthumbnail Url ĊĠĠĠĠ Ġ* Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġpriority ĊĠĠĠĠ Ġ* Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġoptions ĊĠĠĠĠ Ġ* Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġpersistent Cache ĊĠĠĠĠ Ġ* Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġonly Load Cache ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġload ( caller Context : ĠContext , Ġview : ĠSimple Draw ee View , Ġurl : ĠString , Ġthumbnail Url : ĠString ?, Ġpriority : ĠPriority ?, Ġoptions : ĠResize Options ?, Ġlevel : ĠImage Request . Request Level ?, Ġpersistent Cache : ĠBoolean , Ġonly Load Cache : ĠBoolean , Ġlistener : ĠG Image Load Listener < Image Info > ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġthumbnail Request : ĠImage Request ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġif Ġ( thumbnail Url Ġ!= Ġnull Ġ&& Ġthumbnail Url . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthumbnail Request Ġ= Ġcreate Image Request Width Url ( thumbnail Url , Ġpriority , Ġoptions , Ġlevel , Ġpersistent Cache ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġvar Ġrequest : ĠImage Request ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġif Ġ(! TextUtils . isEmpty ( url )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Ġ= Ġcreate Image Request Width Url ( url , Ġpriority , Ġoptions , Ġlevel , Ġpersistent Cache ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġcontroller Builder Ġ= Ġget Controller Builder ( caller Context , Ġview , Ġlistener ) ĊĠĠĠĠĠĠĠ Ġif Ġ( thumbnail Request Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontroller Builder . low Res Image Request Ġ= Ġthumbnail Request ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( request Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontroller Builder . image Request Ġ= Ġrequest ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġview . controller Ġ= Ġcontroller Builder . build () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Un display Out Off Wifi Net Work ( show : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġund is play Out Off Wifi Net Work Ġ= Ġshow ĊĠĠĠ Ġ} Ċ }