/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 1 7 - 2 0 1 9 ĠDi ep DT Ċ Ġ* Ċ Ġ* Ġ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 . one vn . browser . favicon Ċ Ċ import Ġandroid . graphics . Bitmap Ċ import Ġjava . util .* Ċ Ċ internal Ġclass ĠF av icon Cache ( ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġmax Mem Size : ĠInt , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġm Listener : ĠOn Icon Cache Over Flow Listener Ċ ) Ġ: ĠLinkedHashMap < Long , ĠBitmap >( max Mem Size , Ġ 0 . 7 5 f , Ġtrue ) Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġcached Mem Size Ġ= Ġ 0 ĊĊĠĠĠ Ġoverride Ġfun Ġput ( key : ĠLong , Ġvalue : ĠBitmap ): ĠBitmap ? Ġ{ ĊĠĠĠĠĠĠĠ Ġcached Mem Size Ġ+= Ġvalue . byte Count ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġsuper . put ( key , Ġvalue ) ĊĠĠĠĠĠĠĠ Ġif Ġ( result Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcached Mem Size Ġ-= Ġresult . byte Count ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġtrim Size () ĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġclear () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . clear () ĊĠĠĠĠĠĠĠ Ġcached Mem Size Ġ= Ġ 0 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Size ( size : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġmax Mem Size Ġ= Ġsize ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġtrim Size () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( cached Mem Size Ġ<= Ġmax Mem Size ) Ġreturn ĊĊĠĠĠĠĠĠĠ Ġval Ġitems Ġ= Ġentries . iterator () ĊĠĠĠĠĠĠĠ Ġwhile Ġ( items . hasNext () Ġ&& Ġcached Mem Size Ġ> Ġmax Mem Size ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġitem Ġ= Ġitems . next () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitems . remove () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġcached Mem Size Ġ-= Ġitem . value . byte Count ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Listener . on Cache Overflow ( item . key ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( size Ġ== Ġ 0 Ġ&& Ġcached Mem Size Ġ> Ġ 0 ) Ġcached Mem Size Ġ= Ġ 0 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinternal Ġinterface ĠOn Icon Cache Over Flow Listener Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġon Cache Overflow ( hash : ĠLong ) ĊĠĠĠ Ġ} Ċ } Ċ