package Ġcom . m hp . super aw so met ask app Ċ Ċ import Ġandroid . app . Application Ċ import Ġandroid . util . Log Ċ import Ġcom . m hp . super aw so met ask app . injection . Aw some Component Ċ import Ġcom . m hp . super aw so met ask app . injection . Aw some Module Ċ import Ġcom . m hp . super aw so met ask app . injection . D agger Aw some Component Ċ Ċ /** Ċ Ġ* ĠCustom Ġimplementation Ġof Ġ[ Application ] Ġthat Ġis Ġregistered Ġin Ġthe Ġmanifest Ġfile Ġof Ġthe Ġproject . Ċ Ġ* ĠThis Ġclass Ġholds Ġan Ġinstance Ġof Ġ[ Aw some Component ] Ġinside Ġa Ġcompanion Ġobject Ġthat Ġcan Ġbe Ġused Ġto Ċ Ġ* Ġtrigger Ġdependency Ġinjection Ġusing ĠD agger . Ċ Ġ*/ Ċ class ĠAw some App Ġ: ĠApplication () Ġ{ ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġcontext Ġ= Ġthis ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun ĠonCreate () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠBuild Ġthe ĠD agger Ġcomponent Ġthat Ġis Ġnecessary Ġfor Ġthe Ġdependency Ġinjection . ĊĠĠĠĠĠĠĠ Ġaw some Component Ġ= ĠD agger Aw some Component . builder (). aw some Module ( Aw some Module ()). build () ĊĠĠĠĠĠĠĠ Ġsuper . onCreate () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġlateinit Ġvar Ġcontext : ĠAw some App ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠThe ĠTag Ġthat Ġcan Ġbe Ġused Ġfor Ġlogging ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġval ĠTAG Ġ= ĠAw some App :: class . java . simple Name ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠCan Ġbe Ġused Ġby Ġother Ġclasses Ġto Ġtrigger Ġdependency Ġinjection Ġusing ĠD agger . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġvar Ġaw some Component : ĠAw some Component ? Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( field Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e ( TAG , Ġ" try ing Ġto Ġget Ġinjection Ġcomponent Ġbefore Ġit Ġwas Ġinitialized ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfield ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }