package Ġcom . ox ford . resume . activities Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . MenuItem Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġcom . ox ford . resume . Resume App Ċ import Ġcom . ox ford . resume . activities . handlers . Back Press Handler Ċ import Ġcom . squareup . otto . Bus Ċ import Ġjavax . inject . Inject Ċ Ċ public Ġabstract Ġclass ĠBase Activity Ġ: ĠAppCompatActivity () Ġ{ ĊĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġprotected Ġlateinit Ġvar Ġm Bus : ĠBus ĊĊĠĠĠ Ġprivate Ġvar Ġm Back Press Handler : ĠBack Press Handler ? Ġ= Ġnull ĊĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġ( application Ġas ĠResume App ). my Component . inject ( this ) ĊĠĠĠĠĠĠĠ Ġm Back Press Handler Ġ= ĠBack Press Handler ( application ) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonStart () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onStart () ĊĠĠĠĠĠĠĠ Ġm Bus . register ( this ) ĊĠĠĠĠĠĠĠ Ġm Back Press Handler ?. register Bus () ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Stop () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Stop () ĊĠĠĠĠĠĠĠ Ġm Bus . unregister ( this ) ĊĠĠĠĠĠĠĠ Ġm Back Press Handler ?. unregister Bus () ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun Ġon Back Pressed () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( m Back Press Handler !!. is Custom Behavior ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Back Press Handler ?. execute Custom Behavior () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Back Pressed () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Options ItemSelected ( item : ĠMenuItem ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( item . itemId ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġandroid . R . id . home Ġ-> Ġm Back Press Handler ?. execute Custom Behavior () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif (! m Back Press Handler !!. is Custom Behavior ()){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Back Pressed () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊ Ċ }