/* Ċ Ġ* ĠCopyright Ġ 2 0 2 2 ĠP era ĠWallet , ĠL DA Ċ Ġ* Ġ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 . al gor and . android . nft . domain . use case Ċ Ċ import Ġcom . al gor and . android . models . Simple Collect ible Detail Ċ import Ġcom . al gor and . android . nft . data . repository . Simple Collect ible Repository Ċ import Ġcom . al gor and . android . utils . Cache Result Ċ import Ġjavax . inject . Inject Ċ import Ġkotlinx . coroutines . flow . State Flow Ċ Ċ class ĠSimple Collect ible UseCase Ġ@ Inject Ġconstructor ( ĊĠĠĠ Ġprivate Ġval Ġcollect ible Repository : ĠSimple Collect ible Repository Ċ ) Ġ{ ĊĊĠĠĠ Ġfun Ġis Collect ible Cached ( collect ible Asset Id : ĠLong ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġcollect ible Repository . get Cached Collect ible ById ( collect ible Asset Id ) Ġ!= Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Cached Collect ible List () Ġ= Ġcollect ible Repository . get Collect ibles Cache Flow (). value ĊĊĠĠĠ Ġfun Ġget Cached Collect ible List Flow (): ĠState Flow < HashMap < Long , ĠCache Result < Simple Collect ible Detail >>> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġcollect ible Repository . get Collect ibles Cache Flow () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Cached Collect ible List ( collect ible IdList : ĠList < Long >): ĠList < Cache Result < Simple Collect ible Detail >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġcollect ible Repository . get Collect ibles Cache Flow (). value . filter Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcollect ible IdList . contains ( it . key ) ĊĠĠĠĠĠĠĠ Ġ}. values . toList () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Cached Collect ible ById ( nft Asset Id : ĠLong ): ĠCache Result < Simple Collect ible Detail >? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġcollect ible Repository . get Cached Collect ible ById ( nft Asset Id ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġsuspend Ġfun Ġcache Collect ible Detail ( collect ible : ĠCache Result . Success < Simple Collect ible Detail >) Ġ{ ĊĠĠĠĠĠĠĠ Ġcollect ible Repository . cache Collect ible ( collect ible ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġsuspend Ġfun Ġcache All Collect ibles ( collect ibles : ĠList < Pair < Long , ĠCache Result < Simple Collect ible Detail >> >) Ġ{ ĊĠĠĠĠĠĠĠ Ġcollect ible Repository . cache All Collect ibles ( collect ibles ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġsuspend Ġfun Ġclear Collect ible Cache () Ġ{ ĊĠĠĠĠĠĠĠ Ġcollect ible Repository . clear Collect ible Cache () ĊĠĠĠ Ġ} Ċ } Ċ