/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 1 7 - 2 0 1 8 ĠH az uki Ċ Ġ* Ċ Ġ* Ġ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 Ġjp . h az uki . y uz ub rowser . speed dial Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . graphics . Bitmap Ċ import Ġjp . h az uki . y uz ub rowser . utils . Logger Ċ import Ġjava . util .* Ċ import Ġjava . util . concurrent . Linked BlockingQueue Ċ Ċ class ĠSpeed Dial Async Manager ( context : ĠContext ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġmanager Ġ= ĠSpeed Dial Manager ( context ) ĊĠĠĠ Ġprivate Ġval Ġsd Thread Ġ= ĠSD Thread ( manager ) ĊĊĠĠĠ Ġval Ġall : ĠArrayList < Speed Dial > ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġmanager . all ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġsd Thread . start () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdestroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġsd Thread . interrupt () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġupdate Async ( url : ĠString ?, Ġicon : ĠBitmap ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( url Ġ!= Ġnull Ġ&& Ġicon Ġ!= Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsd Thread . add Queue ( SD Item ( url , Ġicon )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġis Need Update ( url : ĠString ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( url Ġ!= Ġnull ) Ġmanager . is Need Update ( url ) Ġelse Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġclass ĠSD Item Ġinternal Ġconstructor ( val Ġurl : ĠString , Ġval Ġicon : ĠBitmap ) ĊĊĠĠĠ Ġprivate Ġclass ĠSD Thread Ġinternal Ġconstructor ( private Ġval Ġmanager : ĠSpeed Dial Manager ) Ġ: ĠThread () Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġqueue Ġ= ĠLinked BlockingQueue < SD Item >() ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġrun () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpriority Ġ= ĠThread . MIN _ PRIORITY ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ( true ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupdate ( queue . take ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠInterruptedException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLogger . i (" Speed Ġdial ", Ġ" thread Ġstop ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġupdate ( item : ĠSD Item ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmanager . update ( item . url , Ġitem . icon ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġinternal Ġfun Ġadd Queue ( item : ĠSD Item ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġqueue . add ( item ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ