package Ġeu . kan ade . t ach iy omi . source . online . handlers Ċ Ċ import Ġeu . kan ade . t ach iy omi . data . database . Database Helper Ċ import Ġeu . kan ade . t ach iy omi . data . database . models . M anga Ċ import Ġeu . kan ade . t ach iy omi . data . preference . Preferences Helper Ċ import Ġeu . kan ade . t ach iy omi . source . model . M ang as Page Ċ import Ġeu . kan ade . t ach iy omi . source . model . SM anga Ċ import Ġeu . kan ade . t ach iy omi . source . online . utils . Md Util Ċ import Ġorg . json . JSONArray Ċ import Ġrx . Observable Ċ import Ġu y . ko hes ive . in jekt . In jekt Ċ import Ġu y . ko hes ive . in jekt . api . get Ċ import Ġu y . ko hes ive . in jekt . inject Lazy Ċ Ċ class ĠSimilar Handler Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġpreferences : ĠPreferences Helper Ġby Ġinject Lazy () ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġfetch Ġour Ġsimilar Ġm ang as ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġfetch Similar ( manga : ĠM anga ): ĠObservable < M ang as Page > Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ// ĠParse Ġthe ĠM anga dex Ġid Ġfrom Ġthe ĠURL ĊĠĠĠĠĠĠĠ Ġval Ġm ang aid Ġ= ĠMd Util . getM anga Id ( manga . url ). to Long () ĊĊĠĠĠĠĠĠĠ Ġ// ĠGet Ġour Ġcurrent Ġdatabase ĊĠĠĠĠĠĠĠ Ġval Ġdb Ġ= ĠIn jekt . get < Database Helper >() ĊĠĠĠĠĠĠĠ Ġval Ġsimilar M anga Db Ġ= Ġdb . get Similar ( m ang aid ). execute As Blocking () ĊĊĠĠĠĠĠĠĠ Ġ// ĠCheck Ġif Ġwe Ġhave Ġa Ġresult ĊĠĠĠĠĠĠĠ Ġif Ġ( similar M anga Db Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠObservable . just ( M ang as Page ( mutable ListOf (), Ġfalse )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠLoop Ġthrough Ġand Ġcreate Ġa Ġm anga Ġfor Ġeach Ġmatch ĊĠĠĠĠĠĠĠ Ġ// ĠNote : Ġwe Ġsay Ġthis Ġis Ġnot Ġinitialized Ġso Ġthe Ġbrowser Ġpresenter Ġcan Ġload Ġit ĊĠĠĠĠĠĠĠ Ġ// ĠNote : Ġthe Ġbrowser Ġpresenter Ġwill Ġload Ġthe Ġone Ġfrom Ġdb Ġor Ġpull Ġthe Ġlatest Ġdetails ĊĠĠĠĠĠĠĠ Ġval Ġsimilar M anga Titles Ġ= ĠJSONArray ( similar M anga Db . matched _ titles ) ĊĠĠĠĠĠĠĠ Ġval Ġsimilar M anga Ids Ġ= ĠJSONArray ( similar M anga Db . matched _ ids ) ĊĠĠĠĠĠĠĠ Ġval Ġsimilar M ang as Ġ= Ġmutable ListOf < SM anga >() ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġsimilar M anga Ids . length ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmatched M anga Ġ= ĠSM anga . create () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġid Ġ= Ġsimilar M anga Ids . getLong ( i ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmatched M anga . title Ġ= Ġsimilar M anga Titles . getString ( i ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmatched M anga . url Ġ= Ġ"/ manga /$ id /" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmatched M anga . initialized Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsimilar M ang as . add ( matched M anga ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠReturn Ġthe Ġmatches ĊĠĠĠĠĠĠĠ Ġreturn ĠObservable . just ( M ang as Page ( similar M ang as , Ġfalse )) ĊĠĠĠ Ġ} Ċ } Ċ