package Ġcom . app . my tax i . ui . base Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . annotation . Layout Res Ċ import Ġandroidx . annotation . String Res Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . lifecycle . Observer Ċ import Ġcom . app . my tax i . My Tax i Application Ċ import Ġcom . app . my tax i . di . component . Activity Component Ċ import Ġcom . app . my tax i . di . component . D agger Activity Component Ċ import Ġcom . app . my tax i . di . module . Activity Module Ċ import Ġjavax . inject . Inject Ċ Ċ /** Ċ Ġ* ĠCreated Ġby ĠA jay ĠDeep ak Ġon Ġ 2 5 - 1 1 - 2 0 1 9 , Ġ 1 1 : 4 7 Ċ Ġ*/ Ċ Ċ abstract Ġclass ĠBase Activity < VM Ġ: ĠBase ViewModel > Ġ: ĠAppCompatActivity () Ġ{ ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar ĠviewModel : ĠVM ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġinject Dependencies ( build Activity Component ()) ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( layout Id ()) ĊĠĠĠĠĠĠĠ ĠsetUp View ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetUp Observer s () ĊĠĠĠĠĠĠĠ ĠviewModel . onCreate () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠsetUp Observer s () Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel . message String . observe ( this , ĠObserver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . data ?. run Ġ{ Ġshow Message ( this ) Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ ĠviewModel . message String Id . observe ( this , ĠObserver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . data ?. run Ġ{ Ġshow Message ( this ) Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġbuild Activity Component () Ġ= ĊĊĠĠĠĠĠĠĠ ĠD agger Activity Component . builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. application Component (( application Ġas ĠMy Tax i Application ). application Component ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. activity Module ( Activity Module ( this )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠ Ġfun Ġshow Message ( message : ĠString ) Ġ= ĊĠĠĠĠĠĠĠ ĠToast . makeText ( application Context , Ġmessage , ĠToast . LENGTH _ SHORT ) ĊĊĠĠĠ Ġfun Ġshow Message (@ String Res Ġres Id : ĠInt ) Ġ= Ġshow Message ( getString ( res Id )) ĊĊĠĠĠ Ġopen Ġfun Ġgo Back () Ġ= Ġon Back Pressed () ĊĊĠĠĠ Ġoverride Ġfun Ġon Back Pressed () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( support FragmentManager . back Stack Entry Count Ġ> Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsupport FragmentManager . pop Back Stack Immediate () ĊĠĠĠĠĠĠĠ Ġelse Ġsuper . on Back Pressed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Layout Res ĊĠĠĠ Ġprotected Ġabstract Ġfun Ġlayout Id (): ĠInt ĊĊĠĠĠ Ġprotected Ġabstract Ġfun Ġinject Dependencies ( activity Component : ĠActivity Component ) ĊĊĠĠĠ Ġprotected Ġabstract Ġfun ĠsetUp View ( savedInstanceState : ĠBundle ?) Ċ } Ċ