package Ġcom . app . legend . rum inas u . present ers Ċ Ċ import Ġandroid . database . Database Utils Ċ import Ġcom . app . legend . rum inas u . beans . Com ic Ċ import Ġcom . app . legend . rum inas u . beans . Type Ċ import Ġcom . app . legend . rum inas u . present ers . interfaces . IC omic Info Activity Ċ import Ġcom . app . legend . rum inas u . utils . Database Ċ import Ġcom . app . legend . rum inas u . utils . R umin as u App Ċ import Ġio . reactivex . Observable Ċ import Ġio . reactivex . Observable On Subscribe Ċ import Ġio . reactivex . android . schedul ers . Android Schedulers Ċ import Ġio . reactivex . rx kotlin . subscribe By Ċ import Ġio . reactivex . schedul ers . Schedulers Ċ import Ġnet . ling ala . zip 4 j . Zip File Ċ import Ġjava . io . File Ċ Ċ class ĠCom ic Info Presenter ( activity : ĠI Com ic Info Activity ) Ġ: ĠBase Presenter < IC omic Info Activity >() Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġactivity : IC omic Info Activity ĊĊĊĠĠĠ Ġinit Ġ{ ĊĊĠĠĠĠĠĠĠ Ġattach View ( activity ) ĊĠĠĠĠĠĠĠ Ġthis . activity = Ġthis . getView () !! ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġæł¹æį® æ¼ « çĶ» èİ·åıĸ è¯Ŀ æķ° å¹¶ ç»Ļ æ¯ı ä¸Ģ è¯Ŀ è¿Ľè¡Į åĪĨç±» ï¼Į åı¯ åħĪ å¯¹ åĨħéĥ¨ æķ°åŃĹ è¿Ľè¡Į è¡¥ ä½į ï¼Į æİĴåºı ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun ĠgetType ( com ic : ĠCom ic ){ ĊĊĠĠĠĠĠĠĠ ĠgetType From Database ( com ic ) ĊĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun ĠgetType From Database ( com ic : ĠCom ic ){ ĊĊĠĠĠĠĠĠĠ ĠObservable . create ( Observable On Subscribe < List < Type >> Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġts = ĠDatabase . getDefault ( R umin as u App . context ). getType By Com ic Id ( com ic ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . onNext ( ts ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . onComplete () ĊĊĠĠĠĠĠĠĠ Ġ}). subscribe On ( Schedulers . io ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( Android Schedulers . main Thread ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe By ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Next Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// åĪ¤æĸŃ æĺ¯åĲ¦ ä¸ºç©º ï¼Į æĺ¯ åĪĻ è°ĥçĶ¨ åħ¶ä»ĸ æĸ¹æ³ķ è§£æŀĲ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . isEmpty ()){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġload Type ( com ic ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} else { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . init Pager ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġèİ·åıĸ åĪĨç±» ï¼Į åľ¨ è¿Ļ ä¹ĭåīį ï¼Į åħĪ æĲľç´¢ æķ°æį®åºĵ åĲ§ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġload Type ( com ic : ĠCom ic ){ ĊĊĠĠĠĠĠĠĠ ĠObservable . create ( Observable On Subscribe < List < Type >> Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlist = get Lists ( com ic ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtypes = ArrayList < Type >() ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( t Ġin Ġlist ){ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġs = Type ( 0 , com ic . id , t ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtypes . add ( s ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . onNext ( types ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . onComplete () ĊĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( Schedulers . io ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( Android Schedulers . main Thread ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe By ( ĊĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Next Ġ= Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . init Pager ( it ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġä»İ è¯Ŀ çļĦ åĲįåŃĹ èİ·åıĸ æ¯ı ä¸Ģ è¯Ŀ çļĦ åĪĨç±» ï¼Į èİ·åıĸ åĪĨç±» list ï¼Į çĦ¶åĲİ åĪĿå§ĭåĮĸ çĽ¸åħ³ Fragment ĊĠĠĠĠ Ġ*/ ĊĠĠ Ġprivate Ġfun Ġget Lists ( com ic : ĠCom ic ): List < String >{ ĊĊĠĠĠĠĠĠ Ġval Ġtypes = ArrayList < String >() ĊĊĠĠĠĠĠĠĠ Ġif Ġ( com ic . zip > 0 ){ // zip ĊĊĠĠĠĠĠĠĠĠĠĠ Ġval Ġz Ġ= ĠZip File ( com ic . path ) ĊĊĠĠĠĠĠĠĠĠĠĠ Ġval Ġlist = z . file Headers ĊĊĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( header Ġin Ġlist ){ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( header . fileName . contains ("_ ")){ // æľī ä¸ĭ åĪĴ çº¿ Ċ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġt : String = sl it Name By Tag ("_ ", header . fileName ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! types . contains ( t )){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtypes . add ( t ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠ Ġ} else { // folder ĊĊĠĠĠĠĠĠĠĠĠĠ Ġval Ġfile = ĠFile ( com ic . path ) ĊĊĠĠĠĠĠĠĠĠĠĠ Ġval Ġlist = file . list Files () ĊĊĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( c Ġin Ġlist ){ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( c . name . contains ("_ ")){ Ċ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġt = sl it Name By Tag ("_ ", c . name ) Ċ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! types . contains ( t )){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtypes . add ( t ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠ Ġreturn Ġtypes ĊĊĊĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġs lit Name By Tag ( tag : String , name : String ): String { ĊĊĠĠĠĠĠĠĠ Ġval Ġindex = name . indexOf ( tag ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġname . substring ( 0 , index ) ĊĊĠĠĠ Ġ} Ċ Ċ }