package Ġeu . kan ade . t ach iy omi . ui . main Ċ Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . support . v 4 . app . Fragment Ċ import Ġandroid . support . v 4 . app . Task Stack Builder Ċ import Ġandroid . support . v 4 . view . Gravity Compat Ċ import Ġandroid . view . MenuItem Ċ import Ġeu . kan ade . t ach iy omi . R Ċ import Ġeu . kan ade . t ach iy omi . data . preference . Preferences Helper Ċ import Ġeu . kan ade . t ach iy omi . ui . backup . Backup Fragment Ċ import Ġeu . kan ade . t ach iy omi . ui . base . activity . Base Activity Ċ import Ġeu . kan ade . t ach iy omi . ui . catalog ue . Catalog ue Fragment Ċ import Ġeu . kan ade . t ach iy omi . ui . latest _ updates . Latest Updates Fragment Ċ import Ġeu . kan ade . t ach iy omi . ui . download . Download Fragment Ċ import Ġeu . kan ade . t ach iy omi . ui . library . Library Fragment Ċ import Ġeu . kan ade . t ach iy omi . ui . recent _ updates . Recent Chapter s Fragment Ċ import Ġeu . kan ade . t ach iy omi . ui . recent ly _ read . Recent ly Read Fragment Ċ import Ġeu . kan ade . t ach iy omi . ui . setting . Settings Activity Ċ import Ġkotlinx . android . synt hetic . main . activity _ main .* Ċ import Ġkotlinx . android . synt hetic . main . toolbar .* Ċ import Ġu y . ko hes ive . in jekt . inject Lazy Ċ Ċ class ĠMainActivity Ġ: ĠBase Activity () Ġ{ ĊĊĠĠĠ Ġval Ġpreferences : ĠPreferences Helper Ġby Ġinject Lazy () ĊĊĠĠĠ Ġprivate Ġval Ġstart Screen Id Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( preferences . start Screen ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġ-> ĠR . id . nav _ drawer _ library ĊĠĠĠĠĠĠĠĠĠĠĠĠ 2 Ġ-> ĠR . id . nav _ drawer _ recent ly _ read ĊĠĠĠĠĠĠĠĠĠĠĠĠ 3 Ġ-> ĠR . id . nav _ drawer _ recent _ updates ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠR . id . nav _ drawer _ library ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( saved State : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġset App Theme () ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( saved State ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠDo Ġnot Ġlet Ġthe Ġlauncher Ġcreate Ġa Ġnew Ġactivity ĊĠĠĠĠĠĠĠ Ġif Ġ( intent . flags Ġand ĠIntent . FLAG _ ACTIVITY _ BRO UG HT _ TO _ FRONT Ġ!= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠInf late Ġactivity _ main . xml . ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ main ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠHandle ĠToolbar ĊĠĠĠĠĠĠĠ Ġsetup Toolbar ( toolbar , Ġback Navigation Ġ= Ġfalse ) ĊĠĠĠĠĠĠĠ Ġsupport ActionBar ?. set Home As Up Indicator ( R . drawable . ic _ menu _ white _ 2 4 dp ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠSet Ġbehavior Ġof ĠNavigation Ġdrawer ĊĠĠĠĠĠĠĠ Ġnav _ view . set Navigation ItemSelected Listener Ġ{ Ġitem Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠMake Ġinformation Ġview Ġinvisible ĊĠĠĠĠĠĠĠĠĠĠĠ Ġempty _ view . hide () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġid Ġ= Ġitem . itemId ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . nav _ drawer _ library Ġ-> Ġset Fragment ( Library Fragment . newInstance (), Ġid ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . nav _ drawer _ recent _ updates Ġ-> Ġset Fragment ( Recent Chapter s Fragment . newInstance (), Ġid ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . nav _ drawer _ recent ly _ read Ġ-> Ġset Fragment ( Recent ly Read Fragment . newInstance (), Ġid ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . nav _ drawer _ catalog ues Ġ-> Ġset Fragment ( Catalog ue Fragment . newInstance (), Ġid ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . nav _ drawer _ latest _ updates Ġ-> Ġset Fragment ( Latest Updates Fragment . newInstance (), Ġid ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . nav _ drawer _ downloads Ġ-> Ġset Fragment ( Download Fragment . newInstance (), Ġid ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . nav _ drawer _ settings Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( this , ĠSettings Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity For Result ( intent , ĠREQUEST _ OPEN _ SETTINGS ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . nav _ drawer _ backup Ġ-> Ġset Fragment ( Backup Fragment . newInstance (), Ġid ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdrawer . close Drawer ( Gravity Compat . START ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( saved State Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠSet Ġstart Ġscreen ĊĠĠĠĠĠĠĠĠĠĠĠ ĠsetSelected Drawer Item ( start Screen Id ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠShow Ġchangelog Ġif Ġneeded ĊĠĠĠĠĠĠĠĠĠĠĠ ĠChangelog Dialog Fragment . show ( preferences , Ġsupport FragmentManager ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Options ItemSelected ( item : ĠMenuItem ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( item . itemId ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġandroid . R . id . home Ġ-> Ġdrawer . open Drawer ( Gravity Compat . START ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġreturn Ġsuper . on Options ItemSelected ( item ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Back Pressed () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfragment Ġ= Ġsupport FragmentManager . find Fragment ById ( R . id . frame _ container ) ĊĠĠĠĠĠĠĠ Ġif Ġ( fragment Ġ!= Ġnull Ġ&& Ġfragment . tag . toInt () Ġ!= Ġstart Screen Id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠsetSelected Drawer Item ( start Screen Id ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Back Pressed () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Activity Result ( request Code : ĠInt , ĠresultCode : ĠInt , Ġdata : ĠIntent ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( request Code Ġ== ĠREQUEST _ OPEN _ SETTINGS Ġ&& ĠresultCode Ġ!= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( result Code Ġand ĠSettings Activity . FLAG _ DATABASE _ CLE ARE D Ġ!= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠIf Ġdatabase Ġis Ġcleared Ġavoid Ġundefined Ġbehavior Ġby Ġre creating Ġthe Ġstack . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTask Stack Builder . create ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Next Intent ( Intent ( this , ĠMainActivity :: class . java )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. start Activities () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( result Code Ġand ĠSettings Activity . FLAG _ THEME _ CHANGED Ġ!= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠDelay Ġactivity Ġre creation Ġto Ġavoid Ġfragment Ġle aks . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnav _ view . post Ġ{ Ġrecreate () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Activity Result ( request Code , ĠresultCode , Ġdata ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠsetSelected Drawer Item ( itemId : ĠInt , Ġtrigger Action : ĠBoolean Ġ= Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠ Ġnav _ view . setChecked Item ( itemId ) ĊĠĠĠĠĠĠĠ Ġif Ġ( trigger Action ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnav _ view . menu . perform Identifier Action ( itemId , Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Fragment ( fragment : ĠFragment , ĠitemId : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsupport FragmentManager . beginTransaction () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. replace ( R . id . frame _ container , Ġfragment , Ġ"$ itemId ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. commit () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġupdate Empty View ( show : ĠBoolean , Ġtext Resource : ĠInt , Ġdrawable : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( show ) Ġempty _ view . show ( drawable , Ġtext Resource ) Ġelse Ġempty _ view . hide () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠREQUEST _ OPEN _ SETTINGS Ġ= Ġ 2 0 0 ĊĠĠĠ Ġ} Ċ }