package Ġtm . f antom . si app . ui . main Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroid . view . MenuItem Ċ import Ġorg . green robot . event bus . EventBus Ċ import Ġorg . green robot . event bus . Subscribe Ċ import Ġorg . green robot . event bus . Thread Mode Ċ import Ġtm . f antom . si app . R Ċ import Ġtm . f antom . si app . di . component . D agger Activity Component Ċ import Ġtm . f antom . si app . di . module . Activity Module Ċ import Ġtm . f antom . si app . event .* Ċ import Ġtm . f antom . si app . repo . Repository Ċ import Ġtm . f antom . si app . ui . edit . Edit Fragment Ċ import Ġtm . f antom . si app . ui . list . List Fragment Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠMainActivity Ġ: ĠAppCompatActivity (), ĠMain Contract . View Ġ{ ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġpresenter : ĠMain Contract . Presenter ĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġrepository : ĠRepository ĊĊĠĠĠ Ġoverride Ġfun Ġshow Add Fragment () Ġ{ ĊĠĠĠĠĠĠĠ Ġsupport FragmentManager . beginTransaction () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Custom Animations ( R . anim . slide _ in _ right , ĠR . anim . slide _ out _ left , ĠR . anim . slide _ in _ left , ĠR . anim . slide _ out _ right ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. replace ( android . R . id . content , ĠEdit Fragment . newInstance ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. addTo Back Stack ( null ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. commit () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow List Fragment () Ġ{ ĊĠĠĠĠĠĠĠ Ġsupport FragmentManager . beginTransaction () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add ( android . R . id . content , ĠList Fragment . newInstance ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. commit () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġinject Dependency () ĊĠĠĠĠĠĠĠ ĠEvent Bus . getDefault (). register ( this ) ĊĠĠĠĠĠĠĠ Ġpresenter . init Repo ( repository ) ĊĠĠĠĠĠĠĠ Ġpresenter . attach ( this ) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinject Dependency () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġactivity Component Ġ= ĠD agger Activity Component . builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. activity Module ( Activity Module ( this )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠ Ġactivity Component . inject ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Subscribe ( thread Mode Ġ= ĠThread Mode . MAIN , Ġsticky Ġ= Ġtrue ) ĊĠĠĠ Ġfun Ġon Event ( event : ĠItem Update Event ) Ġ{ ĊĠĠĠĠĠĠĠ Ġpresenter . update Item ( event . contact ) ĊĠĠĠĠĠĠĠ Ġon Back Pressed () ĊĠĠĠĠĠĠĠ Ġsupport ActionBar !!. set Display Home As Up Enabled ( false ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Subscribe ( thread Mode Ġ= ĠThread Mode . MAIN , Ġsticky Ġ= Ġtrue ) ĊĠĠĠ Ġfun Ġon Event ( event : ĠItem Get Event ) Ġ{ ĊĠĠĠĠĠĠĠ Ġpresenter . edit Item ( event . id Item ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Subscribe ( thread Mode Ġ= ĠThread Mode . MAIN , Ġsticky Ġ= Ġtrue ) ĊĠĠĠ Ġfun Ġon Event ( event : ĠItem Delete Event ) Ġ{ ĊĠĠĠĠĠĠĠ Ġpresenter . delete Item ( event . contact ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Subscribe ( thread Mode Ġ= ĠThread Mode . MAIN , Ġsticky Ġ= Ġtrue ) ĊĠĠĠ Ġfun Ġon Event ( event : ĠGet Items Event ) Ġ{ ĊĠĠĠĠĠĠĠ Ġpresenter . getAll Items () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Subscribe ( thread Mode Ġ= ĠThread Mode . MAIN , Ġsticky Ġ= Ġtrue ) ĊĠĠĠ Ġfun Ġon Event ( event : ĠCreate Event ) Ġ{ ĊĠĠĠĠĠĠĠ Ġpresenter . edit Item (- 1 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Subscribe ( thread Mode Ġ= ĠThread Mode . MAIN , Ġsticky Ġ= Ġtrue ) ĊĠĠĠ Ġfun Ġon Event ( event : ĠShow Home ActionBar ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsupport ActionBar !!. set Display Home As Up Enabled ( event . is Show ) ĊĠĠĠĠĠĠĠ Ġsupport ActionBar !!. title Ġ= Ġevent . text ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun Ġon Options ItemSelected ( item : ĠMenuItem ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( item !!. itemId ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġandroid . R . id . home Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Back Pressed () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġreturn Ġsuper . on Options ItemSelected ( item ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠ ĠEvent Bus . getDefault (). unregister ( this ) ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy () ĊĠĠĠ Ġ} Ċ } Ċ