/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 1 9 ĠMar os ĠC avo js ky , Ġmp age . sk Ċ Ġ* Ċ Ġ* Ġ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 Ġsk . mp age . ki wi . z ad anie . db Ċ Ċ import Ġandroid . util . Log Ċ import Ġandroidx . lifecycle . LiveData Ċ import Ġsk . mp age . ki wi . z ad anie . model . Flight Ċ import Ġsk . mp age . ki wi . z ad anie . model . Flight Used Ċ import Ġjava . text . SimpleDateFormat Ċ import Ġjava . util .* Ċ import Ġjava . util . concurrent . Executor Ċ Ċ /** Ċ Ġ* ĠClass Ġthat Ġhandles Ġthe ĠDAO Ġlocal Ġdata Ġsource . ĠThis Ġensures Ġthat Ġmethods Ġare Ġtriggered Ġon Ġthe Ċ Ġ* Ġcorrect Ġexecutor . Ċ Ġ*/ Ċ class ĠKi wi Local Cache ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġflight Dao : ĠFlight Dao , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġio Executor : ĠExecutor Ċ ) Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠInsert Ġa Ġlist Ġof Ġfl ights Ġin Ġthe Ġdatabase , Ġon Ġa Ġbackground Ġthread . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġinsert ( fl ights : ĠList < Flight >, Ġinsert Finished : Ġ() Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġio Executor . execute Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġformat Ġ= ĠSimpleDateFormat (" yyyy - MM - dd ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠTO DAY Ġ= Ġformat . format ( Calendar . getInstance (). time ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Log . d (" Ki wi Local Cache ", Ġ" clear ing Ġand Ġinserting Ġ${ fl ights . size } Ġfl ights ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġflight Dao . delete All Fl ights () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġused Ġ= Ġflight Dao . fl ights Used ( TO DAY ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Log . d (" Fl ights Used ", Ġ"" Ġ+ Ġflight Dao . y esterday ( TO DAY ). toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Log . d (" Fl ights Used ", Ġ" all :" Ġ+ Ġflight Dao . fl ights Used All (). toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Log . d (" Fl ights Used ", Ġ" used :" Ġ+ Ġused . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Log . d (" Ki wi Local Cache ", Ġ" fl ights :" Ġ+ Ġfl ights . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Log . d (" Ki wi Local Cache ", Ġ" total Ġ Ġ${ fl ights . size } Ġfl ights ") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsuggestions Ġ= Ġfl ights . filter Not Ġ{ Ġused . contains ( it . city _ to ) Ġ}. sorted By Ġ{ Ġit . price Ġ}. sub List ( 0 , Ġ 5 ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Log . d (" Ki wi Local Cache ", Ġ" fl ights :" Ġ+ Ġsuggestions . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" Ki wi Local Cache ", Ġ" total Ġ Ġ${ suggestions . size } Ġfl ights ") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġflight Dao . insert ( suggestions ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuggestions . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġflight Dao . insert Used ( Flight Used ( it . city _ to , ĠTO DAY )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinsert Finished () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRequest Ġa ĠLive Data < List < Flight >> Ġfrom Ġthe ĠDao . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġfl ights S ug gst ions (): ĠLive Data < List < Flight >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġflight Dao . fl ights Suggestions () ĊĠĠĠ Ġ} Ċ Ċ } Ċ