package Ġcom . th under dog ge . q read . presentation . main Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . MenuItem Ċ import Ġcom . github . ter r ak ok . c icer one . Navigator Holder Ċ import Ġcom . github . ter r ak ok . c icer one . android x . App Navigator Ċ import Ġcom . th under dog ge . mess aggio . Message Dispatcher Ċ import Ġcom . th under dog ge . mess aggio . Message Receiver Ċ import Ġcom . th under dog ge . q read . R Ċ import Ġcom . th under dog ge . q read . presentation . base . Base Activity Ċ import Ġtoo th pick . k tp . delegate . inject Ċ Ċ class ĠMainActivity Ġ: ĠBase Activity ( R . layout . activity _ main ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval ĠviewModel Ġby ĠviewModel < Main ViewModel >() ĊĊĠĠĠ Ġprivate Ġval Ġnavigator Ġ= ĠApp Navigator ( this , ĠR . id . fl Content ) ĊĊĠĠĠ Ġprivate Ġval Ġnavigation Holder Ġby Ġinject < Navigator Holder >() ĊĊĠĠĠ Ġprivate Ġval Ġmessage Receiver Ġ= ĠMessage Receiver ( this ) ĊĊĠĠĠ Ġprivate Ġval Ġmessage Dispatcher Ġby Ġinject < Message Dispatcher >() ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( savedInstanceState Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . onStart () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Resume Fragments () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Resume Fragments () ĊĊĠĠĠĠĠĠĠ Ġnavigation Holder . set Navigator ( navigator ) ĊĠĠĠĠĠĠĠ Ġmessage Dispatcher . attach Receiver ( message Receiver ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Pause () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Pause () ĊĊĠĠĠĠĠĠĠ Ġnavigation Holder . remove Navigator () ĊĠĠĠĠĠĠĠ Ġmessage Dispatcher . detach Receiver () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Back Pressed () Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel . navigate Back () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Options ItemSelected ( item : ĠMenuItem ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( item . itemId Ġ== Ġandroid . R . id . home ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . navigate Back () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġsuper . on Options ItemSelected ( item ) ĊĠĠĠ Ġ} Ċ } Ċ