package Ġcom . tom cl aw . n imp as . screen . lock Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . content . Intent . FLAG _ ACTIVITY _ CLEAR _ TOP Ċ import Ġandroid . content . Intent . FLAG _ ACTIVITY _ SINGLE _ TOP Ċ import Ġandroid . os . Bundle Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġcom . tom cl aw . n imp as . R Ċ import Ġcom . tom cl aw . n imp as . main . getComponent Ċ import Ġcom . tom cl aw . n imp as . screen . book . list . create Book List Activity Intent Ċ import Ġcom . tom cl aw . n imp as . screen . lock . di . Lock Module Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠLock Activity Ġ: ĠAppCompatActivity (), ĠLock Presenter . Lock Router Ġ{ ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġpresenter : ĠLock Presenter ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpresenter State Ġ= ĠsavedInstanceState ?. get Bundle ( KEY _ PRES ENTER _ STATE ) ĊĠĠĠĠĠĠĠ Ġapplication . getComponent () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. lock Component ( Lock Module ( this , Ġpresenter State )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. inject ( activity Ġ= Ġthis ) ĊĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . lock _ activity ) ĊĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= ĠLock View Impl ( window . decor View ) ĊĊĠĠĠĠĠĠĠ Ġpresenter . attach View ( view ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Back Pressed () Ġ{ ĊĠĠĠĠĠĠĠ Ġpresenter . on Back Pressed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonStart () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onStart () ĊĠĠĠĠĠĠĠ Ġpresenter . attach Router ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Stop () Ġ{ ĊĠĠĠĠĠĠĠ Ġpresenter . detach Router () ĊĠĠĠĠĠĠĠ Ġsuper . on Stop () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġpresenter . detach View () ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Save InstanceState ( out State : ĠBundle ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Save InstanceState ( out State ) ĊĠĠĠĠĠĠĠ Ġout State . put Bundle ( KEY _ PRES ENTER _ STATE , Ġpresenter . save State ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon New Intent ( intent : ĠIntent ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on New Intent ( intent ) ĊĠĠĠĠĠĠĠ Ġpresenter . update Book Title () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow Book List Screen () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= Ġcreate Book List Activity Intent ( this ) ĊĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġleave Screen ( is Unlock ed : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġif Ġ( is Unlock ed ) ĠRESULT _ OK Ġelse ĠRESULT _ C ANCE LED ĊĠĠĠĠĠĠĠ Ġset Result ( result ) ĊĠĠĠĠĠĠĠ Ġintent . getTarget Intent ()?. let Ġ{ Ġtarget Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Unlock ed ) ĠstartActivity ( target ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠIntent . getTarget Intent () Ġ= Ġget Parcelable Extra < Intent >( EXTRA _ TARGET _ INT ENT ) Ċ Ċ } Ċ Ċ fun Ġcreate Lock Activity Intent ( context : ĠContext , Ġtarget : ĠIntent ? Ġ= Ġnull ): ĠIntent Ġ= ĊĠĠĠĠĠĠĠ ĠIntent ( context , ĠLock Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. putExtra ( EXTRA _ TARGET _ INT ENT , Ġtarget ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Flags ( FLAG _ ACTIVITY _ CLEAR _ TOP Ġor ĠFLAG _ ACTIVITY _ SINGLE _ TOP ) Ċ Ċ private Ġconst Ġval ĠKEY _ PRES ENTER _ STATE Ġ= Ġ" presenter _ state " Ċ Ċ private Ġconst Ġval ĠEX TRA _ TARGET _ INT ENT Ġ= Ġ" target _ intent " Ċ