package Ġcom . social . com . view . ui . common Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġcom . are l lo mobile . mvp . M vp AppCompatActivity Ċ import Ġcom . social . com . Android Application Ċ import Ġcom . social . com . di . Has Component Ċ import Ġcom . social . com . di . components . Activity Component Ċ import Ġcom . social . com . di . components . Application Component Ċ import Ġcom . social . com . di . components . D agger Activity Component Ċ import Ġcom . social . com . di . modules . Activity Module Ċ Ċ abstract Ġclass ĠBase Activity Ġ: ĠM vp AppCompatActivity () Ġ{ ĊĊĠĠĠ Ġvar Ġcomponent : ĠActivity Component ? Ġ= Ġnull ĊĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġ// this . getApplication Component (). inject ( this ) ĊĠĠĠĠĠĠĠ Ġinitialize Injector () ĊĠĠĠĠĠĠĠ Ġcomponent ?. inject ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGet Ġthe ĠMain ĠApplication Ġcomponent Ġfor Ġdependency Ġinjection . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprotected Ġfun Ġget Application Component (): ĠApplication Component Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ( application Ġas ĠAndroid Application ). application Component ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġfun Ġ< C > Ġget Component ( component Type : ĠClass < C >): ĠC Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġcomponent Type . cast (( this Ġas ĠHas Component < *> ). component ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGet Ġan ĠActivity Ġmodule Ġfor Ġdependency Ġinjection . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprotected Ġfun ĠgetActivity Module (): ĠActivity Module Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠActivity Module ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinitialize Injector () Ġ{ ĊĠĠĠĠĠĠĠ Ġcomponent Ġ= ĠD agger Activity Component . builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. application Component ( getApplication Component ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. activity Module ( getActivity Module ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠ Ġ} Ċ } Ċ